From 86e5224386fc192e89cafca5b913e80372ecaed9 Mon Sep 17 00:00:00 2001 From: Fred Brennan Date: Sat, 12 Nov 2022 17:25:24 -0500 Subject: [PATCH] DRAFT: HTML support --- packages/markdown/html.lua | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 packages/markdown/html.lua diff --git a/packages/markdown/html.lua b/packages/markdown/html.lua new file mode 100644 index 0000000..7a61d22 --- /dev/null +++ b/packages/markdown/html.lua @@ -0,0 +1,44 @@ +local base = require("packages.base") +local utils = require("packages.markdown.utils") + +local package = pl.class(base) +package._name = "markdown.html" + +local passthroughs = { + "sup", + "sub", + "em", + "strong", + { ["div"] = "hbox" }, + { ["b"] = "strong" }, + { ["i"] = "em" }, +} + +package.registerHTMLcommands = function(self) + self:registerCommand("markdown:html:br", function (_, _) + SU.debug("markdown", "warning: manual linebreak (\\cr) inserted") + SILE.call("cr") + end, "HTML
in Markdown") + + for _, p in pairs(passthroughs) do + local html_name, sile_name + if type(p) == "table" then + html_name, sile_name = next(p), p[next(p)] + else + html_name, sile_name = p, p + end + + self:registerCommand("markdown:html:" .. html_name, function(options, content) + SU.debug("markdown", "info: " .. html_name .. " replaced by \\" .. sile_name) + return utils.createCommand(sile_name, options, content) + end) + end +end + +package.documentation = [[\begin{document} +A helper package for Markdown processing, providing HTML support. + +It is not intended to be used alone. +\end{document}]] + +return package