diff options
Diffstat (limited to 'macros/luatex/generic/luaxml/luaxml-htmltemplates.lua')
-rw-r--r-- | macros/luatex/generic/luaxml/luaxml-htmltemplates.lua | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/macros/luatex/generic/luaxml/luaxml-htmltemplates.lua b/macros/luatex/generic/luaxml/luaxml-htmltemplates.lua new file mode 100644 index 0000000000..171d16f1ae --- /dev/null +++ b/macros/luatex/generic/luaxml/luaxml-htmltemplates.lua @@ -0,0 +1,144 @@ + +local luaxml_sty = require "luaxml-sty" +-- try +local xmltransform = luaxml_sty.transformations.html +if not xmltransform then + xmltransform = luaxml_sty.declare_transformer("html") +end + + +xmltransform:add_action("head", [[ +\tableofcontents +]]) + +xmltransform:add_action("img", [[\noindent\includegraphics[max width=\textwidth]{@{src}}]]) + +xmltransform:add_action("h1", [[\addcontentsline{toc}{section}{%s}\section*{%s} +]]) +xmltransform:add_action("h2", [[\addcontentsline{toc}{subsection}{%s}\subsection*{%s} +]]) +-- don't add lower sectioning level than subsection +xmltransform:add_action("h3", [[\addcontentsline{toc}{subsubsection}{%s}\subsubsection*{%s} +]]) +xmltransform:add_action("h4", [[\addcontentsline{toc}{subsubsection}{%s}\subsubsection*{%s} +]]) +xmltransform:add_action("h5", [[\addcontentsline{toc}{subsubsection}{%s}\subsubsection*{%s} +]]) +xmltransform:add_action("h6", [[\addcontentsline{toc}{subsubsection}{%s}\subsubsection*{%s} +]]) + +xmltransform:add_action("i", [[\textit{%s}]]) +xmltransform:add_action("em", [[\emph{%s}]]) +xmltransform:add_action("b", [[\textbf{%s}]]) +xmltransform:add_action("strong", [[\textbf{%s}]]) +xmltransform:add_action("tt", [[\texttt{%s}]]) +xmltransform:add_action("samp", [[\texttt{%s}]]) +xmltransform:add_action("kbd", [[\texttt{%s}]]) +xmltransform:add_action("var", [[\textit{%s}]]) +xmltransform:add_action("dfn", [[\texttt{%s}]]) +xmltransform:add_action("code", [[\texttt{%s}]]) +xmltransform:add_action("a[href]", [[\textit{%s}\protect\footnote{\texttt{@{href}}}]]) + + +local itemize = [[ +\begin{itemize} +%s +\end{itemize} +]] +xmltransform:add_action("ul", itemize) +xmltransform:add_action("menu", itemize) +xmltransform:add_action("ol", [[ +\begin{enumerate} +%s +\end{enumerate} +]]) + +xmltransform:add_action("dl", [[ +\begin{description} +%s +\end{description} +]]) + + +xmltransform:add_action("li", "\\item %s\n") +xmltransform:add_action("dt", "\\item[%s] ") + +local quote = [[ +\begin{quotation} +%s +\end{quotation} +]] + +xmltransform:add_action("blockquote", quote) +xmltransform:add_action("q", "\\enquote{%s}") +xmltransform:add_action("abbr", "%s\\protect\\footnote{@{title}}") +xmltransform:add_action("sup", "\\textsuperscript{%s}") +xmltransform:add_action("sub", "\\textsubscript{%s}") + +xmltransform:add_action("table", [[ +\begin{calstable} +%s +\end{calstable} +]]) + +xmltransform:add_action("tr", "\\brow %s \\erow") +xmltransform:add_action("td", "\\cell{%s}") +xmltransform:add_action("th", "\\cell{%s}") + + +-- this is the original code for verbatim, but I changed LuaXML to not escape characters in verbatim, +-- so we can use the verbatim environment +xmltransform:add_action("pre", [[{\parindent=0pt\obeylines\ttfamily\catcode`\ =\active\def {\ }\catcode`\#=11%% +%s} + +]], {verbatim=true}) +xmltransform:add_action("pre *", [[%s]]) + +-- +xmltransform:add_action("pre", [[ +\begin{verbatim}%s\end{verbatim} +]], {verbatim=true}) + +xmltransform:add_action("details", [[%s +]]) + +xmltransform:add_action("details summary", [[ +\medskip +\noindent %s + +\smallskip +\noindent +]]) + +xmltransform:add_action("figure", [[ +\begin{figure}[hbt!] +\centering + +%s + +\end{figure} +]]) + +xmltransform:add_action("figcaption", [[\caption{%s}]]) + + +xmltransform:add_action("p", [[ + +%s + +]]) + +xmltransform:add_action("br", [[\\]]) + +-- some fixes for weird web pages +xmltransform:add_action("a p", [[%s]]) +xmltransform:add_action("h1 a[href], h2 a[href], h3 a[href], h4 a[href], h5 a[href], h6 a[href]", "%s") + + +-- mathjax is special element added by rmodepdf around LaTeX math +xmltransform:add_action("mathjax",[[%s]], {verbatim=true,collapse_newlines=false}) + +xmltransform:add_action("hyperlink", "\\hyperlink{@{href}}{%s}") +xmltransform:add_action("hypertarget", "\\hypertarget{@{id}}{%s}") + +return xmltransform |