(examples-for html-tag

("returns a html string"
 (html-tag "div" { class 'yellow style (to-css { border "1px solid blue" font-size "3em" }) }
           (html-tag "h1" nil "Welcome")
           (html-tag "p" { class "yadda" } "blah blah"))
 "<div class='yellow' style='border:1px solid blue;font-size:3em;'><h1>Welcome</h1><p class='yadda'>blah blah</p></div>"))

(examples-for img

("returns an img tag"
 (img "/assets/face.png")
 "<img src='/assets/face.png'/>"))

(examples-for a

("returns an anchor tag"
 (link-to "click here!" "/other-page.html" { class "turbo" })
 "<a href='/other-page.html' class='turbo'>click here!</a>"))

(examples-for link-if-txt

("returns nil if no text"
 (link-if-txt nil "/path" { class "winner" })
 nil)

("returns link if text"
 (link-if-txt "click me" "/path" { class "winner" })
 "<a href='/path' class='winner'>click me</a>"))

(examples-for percent-syntax

("generates a simple html tag"
 (%p "hello, world")
 "<p>hello, world</p>")

("generates a self-closing html tag"
 (%br/)
 "<br/>")

("generates nested html tags"
 (%p "hello " (%b "you") " over " (%i "there"))
 "<p>hello <b>you</b> over <i>there</i></p>")

("generates html tags with classnames"
 (%p "hello " (%b.thick "you") " over " (%i "there"))
 "<p>hello <b class='thick'>you</b> over <i>there</i></p>")

("concatenates content"
 (%p (map λx(%span.hello x) '(a b c)))
 "<p><span class='hello'>a</span><span class='hello'>b</span><span class='hello'>c</span></p>")

("generates html tags with multiple classnames"
 (%p "hello " (%b.thick.dense "you") " over " (%i "there"))
 "<p>hello <b class='thick dense'>you</b> over <i>there</i></p>")

("combine with colon syntax : precompile"
 (pre-compile:car:parse "%th:len")
 (fn args ((fn args (apply html-tag "th" nil args)) (apply len args))))

("combine with colon syntax"
 (%th:len "foobar")
 "<th>6</th>")

("does not insert empty 'brace-list for no attributes"
 (pre-compile '(%p foo))
 ((fn args (apply html-tag "p" nil args)) foo))

(examples-for prefix-list

("generates a simple html tag with attributes"
  (%a(href "/fr/index") "click here")
  "<a href='/fr/index'>click here</a>")

("generates a self-closing html tag with attributes"
  (%img/(src "/smile.png"))
  "<img src='/smile.png'/>")

("generates a self-closing html tag with attributes and classes"
  (%img/.round(src "/smile.png"))
  "<img class='round' src='/smile.png'/>")

("generates nested html tags with attributes"
 (%p(class 'important)
    "read this and "
    (%a(href "/fr/index") "click here")
    "!")
  "<p class='important'>read this and <a href='/fr/index'>click here</a>!</p>")

("generates nested html tags with classnames and other attributes"
 (%p(class 'important)
    "read this and "
    (%a.wow(href "/fr/index") "click here")
    "!")
  "<p class='important'>read this and <a class='wow' href='/fr/index'>click here</a>!</p>"))