texlive[72858] Master/texmf-dist: luaxml (15nov24)
commits+karl at tug.org
commits+karl at tug.org
Fri Nov 15 23:10:55 CET 2024
Revision: 72858
https://tug.org/svn/texlive?view=revision&revision=72858
Author: karl
Date: 2024-11-15 23:10:55 +0100 (Fri, 15 Nov 2024)
Log Message:
-----------
luaxml (15nov24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/luatex/luaxml/README
trunk/Master/texmf-dist/doc/luatex/luaxml/luaxml.pdf
trunk/Master/texmf-dist/doc/luatex/luaxml/luaxml.tex
trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml.sty
Added Paths:
-----------
trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml-htmltemplates.lua
Modified: trunk/Master/texmf-dist/doc/luatex/luaxml/README
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luaxml/README 2024-11-15 16:02:15 UTC (rev 72857)
+++ trunk/Master/texmf-dist/doc/luatex/luaxml/README 2024-11-15 22:10:55 UTC (rev 72858)
@@ -32,7 +32,7 @@
------
Michal Hoftich
Email: michal.h21 at gmail.com
-Version: v0.2a, 2024-10-17
+Version: v0.2b, 2024-11-14
Original authors: Paul Chakravarti and Manoel Campos (http://manoelcampos.com)
Modified: trunk/Master/texmf-dist/doc/luatex/luaxml/luaxml.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/luatex/luaxml/luaxml.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luaxml/luaxml.tex 2024-11-15 16:02:15 UTC (rev 72857)
+++ trunk/Master/texmf-dist/doc/luatex/luaxml/luaxml.tex 2024-11-15 22:10:55 UTC (rev 72858)
@@ -7,7 +7,7 @@
\usepackage{framed}
% Version is defined in the makefile, use default values when compiled directly
\ifdefined\version\else
-\def\version{v0.2a}
+\def\version{v0.2b}
\let\gitdate\date
\fi
\newcommand\modulename[1]{\subsection{#1}\label{sec:#1}}
@@ -17,7 +17,7 @@
\newcommand\functionsummary[1]{#1\\\textbf{Parameters:}\\}
\newcommand\functionparam[2]{\texttt{#1}: #2\\}
\newcommand\functionreturn[1]{\textbf{Return: }\\#1\\}
-\usepackage{luaxml}
+\usepackage[default]{luaxml}
\begin{document}
\title{The \textsc{LuaXML} library}
@@ -791,9 +791,32 @@
an asterisk for inputting HTML documents and without an asterisk for inputting
XML documents.
-\subsection{Example of transformation using \LaTeX\ commands}
+\subsection{Package Options}
+\begin{description}
+ \item[default] -- load HTML templates. They will be available as \verb|html|
+ option in \verb|luaxml.sty| commands and environments.
+\end{description}
+
\begin{verbatim}
+\usepackage[default]{luaxml}
+...
+
+\begin{LXMLCode*}{html}
+ <p>Hello <b>world</b> and some text in <i>italics</i>.</p>
+\end{LXMLCode*}
+\end{verbatim}
+
+\begin{framed}
+\begin{LXMLCode*}{html}
+ <p>Hello <b>world</b> and some text in <i>italics</i>.</p>
+\end{LXMLCode*}
+\end{framed}
+
+
+\subsection{Example of Transformation Using \LaTeX\ Commands}
+
+\begin{verbatim}
\LXMLRule[sample]{h1}|\par\noindent{\large\bfseries %s\par}|
\LXMLRule[sample]{p}|%s\par|
\LXMLRule[sample]{a[href]}|\href{@{href}}{%s}|
Added: trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml-htmltemplates.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml-htmltemplates.lua (rev 0)
+++ trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml-htmltemplates.lua 2024-11-15 22:10:55 UTC (rev 72858)
@@ -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
Property changes on: trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml-htmltemplates.lua
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml.sty 2024-11-15 16:02:15 UTC (rev 72857)
+++ trunk/Master/texmf-dist/tex/luatex/luaxml/luaxml.sty 2024-11-15 22:10:55 UTC (rev 72858)
@@ -1,4 +1,5 @@
-\ProvidesPackage{luaxml}[2024-10-17 LuaXML package]
+\ProvidesExplPackage{luaxml}{2024-11-14}{v0.2b}{LuaXML package}
+% \ProvidesPackage{luaxml}[2024-11-14 LuaXML package]
\RequirePackage{luacode}
@@ -12,14 +13,23 @@
\ExplSyntaxOn
+% package options
+\bool_new:N\l_luaxml_use_defaults
+\keys_define:nn {luaxml}{
+ default .bool_set:N = \l_luaxml_use_defaults,
+ default .initial:n = false
+}
+\ProcessKeyOptions
+
+% options used in \LXMLRule
\bool_new:N\l_luaxml_verbatim
\tl_new:N \l_luaxml_transformer
-\keys_define:nn{luaxml}{
+\keys_define:nn{luaxmlrule}{
verbatim .bool_set:N = \l_luaxml_verbatim ,
verbatim .initial:n = false,
unknown .code:n = \tl_set_eq:NN\l_luaxml_transformer\l_keys_key_str,
- transformer .tl_set:N = \l_luaxml_transformer
+ transformer .tl_set:N = \l_luaxml_transformer,
}
@@ -44,7 +54,7 @@
\NewDocumentCommand\LXMLRule{O{} m +v}{
% handle keyval options
\group_begin:
- \keys_set:nn {luaxml} { #1 }
+ \keys_set:nn {luaxmlrule} { #1 }
\directlua{luaxml_sty.current.parameters = {}}
\bool_if:NT \l_luaxml_verbatim {\directlua{luaxml_sty.current.parameters.verbatim = true}}
\directlua{
@@ -118,6 +128,15 @@
}
}
+% load default transformation rules
+\NewDocumentCommand\LXMLLoadDefaults{}{
+ \directlua{require "luaxml-htmltemplates"}
+}
+\AtBeginDocument{
+ \bool_if:NT \l_luaxml_use_defaults {\LXMLLoadDefaults}
+}
+
+
\ExplSyntaxOff
\endinput
More information about the tex-live-commits
mailing list.