aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dom.server.moon
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dom.server.moon')
-rw-r--r--lib/dom.server.moon13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/dom.server.moon b/lib/dom.server.moon
index 3a7b537..fe6b60c 100644
--- a/lib/dom.server.moon
+++ b/lib/dom.server.moon
@@ -1,5 +1,8 @@
import opairs from require 'lib.ordered'
+void_tags = { 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr' }
+void_tags = { t,t for t in *void_tags }
+
element = (element) -> (...) ->
children = { ... }
@@ -24,9 +27,13 @@ element = (element) -> (...) ->
if #children == 0
children = attributes
- b ..= ">" .. table.concat children, ''
- b ..= "</#{element}>"
- b
+ if void_tags[element]
+ assert #children == 0, "void tag #{element} cannot have children!"
+ b .. ">"
+ else
+ b ..= ">" .. table.concat children, ''
+ b ..= "</#{element}>"
+ b
setmetatable {}, __index: (name) =>
with val = element name