From 0fcadd15d802ab20167cade1608e93caa5072723 Mon Sep 17 00:00:00 2001 From: s-ol Date: Thu, 1 Nov 2018 19:54:46 +1100 Subject: fix server-side void tags --- lib/dom.server.moon | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'lib/dom.server.moon') 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 ..= "" - b + if void_tags[element] + assert #children == 0, "void tag #{element} cannot have children!" + b .. ">" + else + b ..= ">" .. table.concat children, '' + b ..= "" + b setmetatable {}, __index: (name) => with val = element name -- cgit v1.2.3