From d7ac2d284ec61893c4ad271dbb81187ec31ca992 Mon Sep 17 00:00:00 2001 From: june Date: Thu, 25 Jun 2026 15:53:47 +0000 Subject: [PATCH] runtime: handle void elements properly --- src/lua/runtime/h.lua | 23 ++++++++++++++++++----- 1 file(s) changed, 18 insertion(s)(+), 5 deletion(s)(-) diff --git a/src/lua/runtime/h.lua b/src/lua/runtime/h.lua --- a/src/lua/runtime/h.lua +++ b/src/lua/runtime/h.lua @@ -3,12 +3,25 @@ ---@operator call: fun(v: Displayable): string local h = {} h.document = maivi.elem("!DOCTYPE html", { close = false }) -h.meta = maivi.elem("meta", { empty = true }) -h.link = maivi.elem("link", { empty = true }) -h.input = maivi.elem("input", { empty = true }) -h.br = maivi.elem("br", { empty = true }) -h.hr = maivi.elem("hr", { empty = true }) + +-- void elements +-- https://developer.mozilla.org/en-US/docs/Glossary/Void_element +h.area = maivi.elem("area", { close = false }) +h.base = maivi.elem("base", { close = false }) +h.br = maivi.elem("br", { close = false }) +h.col = maivi.elem("col", { close = false }) +h.embed = maivi.elem("embed", { close = false }) +h.hr = maivi.elem("hr", { close = false }) +h.img = maivi.elem("img", { close = false }) +h.input = maivi.elem("input", { close = false }) +h.link = maivi.elem("link", { close = false }) +h.meta = maivi.elem("meta", { close = false }) +h.source = maivi.elem("source", { close = false }) +h.wbr = maivi.elem("wbr", { close = false }) + +-- svg h.path = maivi.elem("path", { empty = true }) + h.stylesheet = function(args) args.rel = "stylesheet" args.type = "text/css" -- tangled.sh