Files
Nim/examples/talk/dsl.nim
2017-11-15 21:58:11 +01:00

34 lines
621 B
Nim

import strutils
template html(name, matter: untyped) =
proc name(): string =
result = "<html>"
matter
result.add("</html>")
template nestedTag(tag: untyped) =
template tag(matter: typed) =
result.add("<" & astToStr(tag) & ">")
matter
result.add("</" & astToStr(tag) & ">")
template simpleTag(tag: untyped) =
template tag(matter: untyped) =
result.add("<$1>$2</$1>" % [astToStr(tag), matter])
nestedTag body
nestedTag head
nestedTag ul
simpleTag title
simpleTag li
html mainPage:
head:
title "now look at this"
body:
ul:
li "Nim is quite capable"
echo mainPage()