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.