HTMLGen Update, Add runnableExamples, Add HTML Tags center, details, dialog, marquee, picture, slot, summary (#9252)
This commit is contained in:
parent
18023c023d
commit
bc557e4c6a
1 changed files with 42 additions and 5 deletions
|
|
@ -32,7 +32,7 @@ import
|
||||||
|
|
||||||
const
|
const
|
||||||
coreAttr* = " accesskey class contenteditable dir hidden id lang " &
|
coreAttr* = " accesskey class contenteditable dir hidden id lang " &
|
||||||
"spellcheck style tabindex title translate "
|
"spellcheck style tabindex title translate " ## HTML DOM Core Attributes
|
||||||
eventAttr* = "onabort onblur oncancel oncanplay oncanplaythrough onchange " &
|
eventAttr* = "onabort onblur oncancel oncanplay oncanplaythrough onchange " &
|
||||||
"onclick oncuechange ondblclick ondurationchange onemptied onended " &
|
"onclick oncuechange ondblclick ondurationchange onemptied onended " &
|
||||||
"onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload " &
|
"onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload " &
|
||||||
|
|
@ -40,9 +40,9 @@ const
|
||||||
"onmouseleave onmousemove onmouseout onmouseover onmouseup onmousewheel " &
|
"onmouseleave onmousemove onmouseout onmouseover onmouseup onmousewheel " &
|
||||||
"onpause onplay onplaying onprogress onratechange onreset onresize " &
|
"onpause onplay onplaying onprogress onratechange onreset onresize " &
|
||||||
"onscroll onseeked onseeking onselect onshow onstalled onsubmit " &
|
"onscroll onseeked onseeking onselect onshow onstalled onsubmit " &
|
||||||
"onsuspend ontimeupdate ontoggle onvolumechange onwaiting "
|
"onsuspend ontimeupdate ontoggle onvolumechange onwaiting " ## HTML DOM Event Attributes
|
||||||
ariaAttr* = " role "
|
ariaAttr* = " role " ## HTML DOM Aria Attributes
|
||||||
commonAttr* = coreAttr & eventAttr & ariaAttr
|
commonAttr* = coreAttr & eventAttr & ariaAttr ## HTML DOM Common Attributes
|
||||||
|
|
||||||
proc getIdent(e: NimNode): string {.compileTime.} =
|
proc getIdent(e: NimNode): string {.compileTime.} =
|
||||||
case e.kind
|
case e.kind
|
||||||
|
|
@ -203,6 +203,11 @@ macro caption*(e: varargs[untyped]): untyped =
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "caption", commonAttr)
|
result = xmlCheckedTag(e, "caption", commonAttr)
|
||||||
|
|
||||||
|
macro center*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``center`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "center", commonAttr)
|
||||||
|
|
||||||
macro cite*(e: varargs[untyped]): untyped =
|
macro cite*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``cite`` element.
|
## generates the HTML ``cite`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
|
|
@ -243,11 +248,21 @@ macro del*(e: varargs[untyped]): untyped =
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "del", "cite datetime" & commonAttr)
|
result = xmlCheckedTag(e, "del", "cite datetime" & commonAttr)
|
||||||
|
|
||||||
|
macro details*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``details`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "details", commonAttr & "open")
|
||||||
|
|
||||||
macro dfn*(e: varargs[untyped]): untyped =
|
macro dfn*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``dfn`` element.
|
## generates the HTML ``dfn`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "dfn", commonAttr)
|
result = xmlCheckedTag(e, "dfn", commonAttr)
|
||||||
|
|
||||||
|
macro dialog*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``dialog`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "dialog", commonAttr & "open")
|
||||||
|
|
||||||
macro `div`*(e: varargs[untyped]): untyped =
|
macro `div`*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``div`` element.
|
## generates the HTML ``div`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
|
|
@ -428,6 +443,13 @@ macro mark*(e: varargs[untyped]): untyped =
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "mark", commonAttr)
|
result = xmlCheckedTag(e, "mark", commonAttr)
|
||||||
|
|
||||||
|
macro marquee*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``marquee`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "marquee", coreAttr &
|
||||||
|
"behavior bgcolor direction height hspace loop scrollamount " &
|
||||||
|
"scrolldelay truespeed vspace width onbounce onfinish onstart")
|
||||||
|
|
||||||
macro meta*(e: varargs[untyped]): untyped =
|
macro meta*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``meta`` element.
|
## generates the HTML ``meta`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
|
|
@ -487,6 +509,11 @@ macro param*(e: varargs[untyped]): untyped =
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "param", commonAttr, "name value", true)
|
result = xmlCheckedTag(e, "param", commonAttr, "name value", true)
|
||||||
|
|
||||||
|
macro picture*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``picture`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "picture", commonAttr)
|
||||||
|
|
||||||
macro pre*(e: varargs[untyped]): untyped =
|
macro pre*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``pre`` element.
|
## generates the HTML ``pre`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
|
|
@ -554,6 +581,11 @@ macro select*(e: varargs[untyped]): untyped =
|
||||||
result = xmlCheckedTag(e, "select", "autofocus disabled form multiple " &
|
result = xmlCheckedTag(e, "select", "autofocus disabled form multiple " &
|
||||||
"name required size" & commonAttr)
|
"name required size" & commonAttr)
|
||||||
|
|
||||||
|
macro slot*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``slot`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "slot", commonAttr)
|
||||||
|
|
||||||
macro small*(e: varargs[untyped]): untyped =
|
macro small*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``small`` element.
|
## generates the HTML ``small`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
|
|
@ -584,6 +616,11 @@ macro sub*(e: varargs[untyped]): untyped =
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "sub", commonAttr)
|
result = xmlCheckedTag(e, "sub", commonAttr)
|
||||||
|
|
||||||
|
macro summary*(e: varargs[untyped]): untyped =
|
||||||
|
## Generates the HTML ``summary`` element.
|
||||||
|
let e = callsite()
|
||||||
|
result = xmlCheckedTag(e, "summary", commonAttr)
|
||||||
|
|
||||||
macro sup*(e: varargs[untyped]): untyped =
|
macro sup*(e: varargs[untyped]): untyped =
|
||||||
## generates the HTML ``sup`` element.
|
## generates the HTML ``sup`` element.
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
|
|
@ -684,7 +721,7 @@ macro wbr*(e: varargs[untyped]): untyped =
|
||||||
let e = callsite()
|
let e = callsite()
|
||||||
result = xmlCheckedTag(e, "wbr", commonAttr, "", true)
|
result = xmlCheckedTag(e, "wbr", commonAttr, "", true)
|
||||||
|
|
||||||
when isMainModule:
|
runnableExamples:
|
||||||
let nim = "Nim"
|
let nim = "Nim"
|
||||||
assert h1(a(href="http://nim-lang.org", nim)) ==
|
assert h1(a(href="http://nim-lang.org", nim)) ==
|
||||||
"""<h1><a href="http://nim-lang.org">Nim</a></h1>"""
|
"""<h1><a href="http://nim-lang.org">Nim</a></h1>"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue