function max_asciidoc_header(level) return math.min(level, 6) end return { parse("bf", "**$1**"), parse("it", "__$1__"), parse("sp", "^$1^"), parse("sb", "~$1~"), s("tt", fmt( "{}{}{}", { c(1, { t "`", t "`+" }), i(2, "TEXT"), rep(1), })), parse("foot", "footnote:[$1]"), s("link", fmt( "link:{}[{}]", { i(1, "LINK"), rep(1), })), parse("var", ":$1: $2"), parse("audio", "audio::$1[$2]"), parse("video", "video::$1[$2]"), s("img", fmt([[ .{} image::{}[{}, {}] {} ]], { i(1, "CAPTION"), i(2, "IMAGE_PATH"), i(3, "ALT_TEXT"), i(4, "width=100%,height=100%"), i(0), })), s("fmt", fmt("{}{}{}", { c(1, { t "**", t "__", t "`", }), i(2), rep(1), })), s("dt", fmt([[ {}:: {} ]], { i(1, "TERM"), i(2, "DEFINITION"), })), s("src", fmt([[ [source, {}] ---- {} ---- {} ]], { i(1, "LANGUAGE"), i(2, "CODE"), i(0), })), s( { trig = "h(%d)", regTrig = true }, fmt([[ {} {} {} {} ]], { f(function(_, snip) local level = max_asciidoc_header(snip.captures[1]) return string.rep("=", level) end), i(1, "CHAPTER"), d(2, function(_, snip) local nodes = {} table.insert(nodes, t "") local level = max_asciidoc_header(snip.captures[1]) if level == 1 then table.insert(nodes, t ":toc:") end local parent = c(1, nodes) if level > 1 then parent = t "" end return sn(nil, parent) end, {}), i(0), }) ), s( "admon", fmt("{}: {}", { c(1, { t "NOTE", t "TIP", t "IMPORTANT", t "CAUTION", t "WARNING", }), i(0), })), s( "admonB", fmt([[ [{}] ==== {} ==== {} ]], { c(1, { t "NOTE", t "TIP", t "IMPORTANT", t "CAUTION", t "WARNING", }), i(2, "BODY"), i(0), })), }