From 205c0cf1e1b3eaad8c3e71a7e462002ebd4698aa Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 13 Feb 2024 23:52:44 +0000 Subject: lua-placeholders (14feb24) git-svn-id: svn://tug.org/texlive/trunk@69845 c570f23f-e606-0410-a88d-b1316a301751 --- .../lua-placeholders/lua-placeholders-deps.bib | 22 +++++-- .../example-specification.yaml | 5 +- .../lua-placeholders-example/example.json | 19 ------ .../lua-placeholders-example/example.pdf | Bin 67759 -> 67367 bytes .../lua-placeholders-example/example.tex | 72 +++++++++++++++------ .../lua-placeholders-example/example.yaml | 7 +- .../lua-placeholders/lua-placeholders-manual.pdf | Bin 257529 -> 270175 bytes .../lua-placeholders/lua-placeholders-manual.tex | 36 +++++++++-- 8 files changed, 111 insertions(+), 50 deletions(-) delete mode 100644 Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.json (limited to 'Master/texmf-dist/doc/lualatex') diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-deps.bib b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-deps.bib index c5ecf4484ce..ac441862596 100644 --- a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-deps.bib +++ b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-deps.bib @@ -1,8 +1,12 @@ -@misc{tiny, - title = {lua-tinyyaml}, - note = {Accessed: 23 January, 2024}, - howpublished = {\url{https://ctan.org/pkg/lua-tinyyaml} and \url{https://github.com/api7/lua-tinyyaml}}, +@manual{lua-tinyyaml, + title = {The lua-tinyyaml package}, + subtitle = {A tiny YAML (subset) parser for pure Lua}, + author = {Lee, Zeping}, + url = {https://ctan.org/pkg/lua-tinyyaml}, + urldate = {2024-02-12}, + date = {}, + version = {0.4.3}, } @misc{lyaml, @@ -17,3 +21,13 @@ note = {Accessed: 6 January, 2024}, howpublished = {\url{https://pyyaml.org/wiki/LibYAML} and \url{https://packages.msys2.org/package/mingw-w64-x86_64-libyaml}}, } + +@manual{numprint, + title = {The numprint package}, + subtitle = {Print numbers with separators and exponent if necessary}, + author = {Harders, Harald}, + url = {https://ctan.org/pkg/numprint}, + urldate = {2024-02-12}, + date = {2012}, + version = {1.39}, +} diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example-specification.yaml b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example-specification.yaml index 2d00cecaf3d..fb9e34c296a 100644 --- a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example-specification.yaml +++ b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example-specification.yaml @@ -6,7 +6,7 @@ string example: placeholder: A string number example: type: number - default: -1 + default: -1.21 list example: type: list item type: string @@ -22,6 +22,9 @@ object example: email: type: string placeholder: Your email + grade: + type: number + default: 5.5 table example: type: table columns: diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.json b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.json deleted file mode 100644 index e65389b1aae..00000000000 --- a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bool example": true, - "string example": "PeelInc.", - "number example": 1, - "list example": ["Tomatoes", "Potatoes"], - "object example": { - "name": "John Doe", - "email": "j.doe@example.com" - }, - "table example": [ - { - "description": "Peeling tomatoes", - "price": 50.00 - }, { - "description": "Peeling potatoes", - "price": 25.00 - } - ] -} diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.pdf b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.pdf index 1b9ff4a52f4..35fd39899f2 100644 Binary files a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.pdf and b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.pdf differ diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.tex b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.tex index 805dd2469c8..12d60b796df 100644 --- a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.tex +++ b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.tex @@ -19,10 +19,12 @@ \documentclass{article} \usepackage{gitinfo-lua} -\usepackage{lua-placeholders} +\usepackage{../../tex/lua-placeholders} \usepackage{listings} \usepackage{amsmath} \usepackage{calc} +\usepackage[dutch,english]{babel} +\usepackage[autolanguage]{numprint} \loadrecipe[\jobname]{example-specification.yaml} @@ -66,10 +68,24 @@ Number example:\\ + \lstinline[style=TeX,morekeywords={rawparam}]|\rawparam{\jobname}{number example}| + $\implies$ + \rawparam{\jobname}{number example}\\ + \lstinline[style=TeX,morekeywords={param}]|\param{number example}| $\implies$ + \lstinline[style=TeX,morekeywords={numprint}]|\numprint{|\rawparam{\jobname}{number example}\verb|}| + $\implies$ \param{number example}\\ + \clearpage + + Number in foreign language:\\ + + \lstinline[style=TeX,morekeywords={param,selectlanguage}]|\selectlanguage{dutch}\param{number example}|\\ + $\implies$ + \begingroup\selectlanguage{dutch}\param{number example}\endgroup\\ + List example:\\ \lstinline[style=TeX,morekeywords={param}]|\param{list example}| @@ -92,14 +108,16 @@ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{name}|\\ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{email}|\\ + \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{grade}|\\ $\implies$ \paramfield{object example}{name} - \paramfield{object example}{email}\\ + \paramfield{object example}{email} + \paramfield{object example}{grade}\\ - \begin{lstlisting}[style=TeX,morekeywords={name,email}] + \begin{lstlisting}[style=TeX,morekeywords={name,email,grade}] \newcommand\name{...} \begin{paramobject}{object example} - \name \email + \name \email \grade \end{paramobject} % And here it works again \name @@ -108,26 +126,30 @@ \newcommand\name{...}% \parbox{\linewidth}{ \begin{paramobject}{object example} - \name \email + \name \email \grade \end{paramobject} \name }\\ Table example:\\ - \begin{lstlisting}[style=TeX,morekeywords={formatrow,fortablerow,description,price}] + \begin{lstlisting}[style=TeX,morekeywords={nprounddigits,npnoround,formatrow,fortablerow,description,price}] +\nprounddigits{2} \newcommand\formatrow{\description & \price \\}% \begin{tabular}{l | l} \textbf{Description} & \textbf{Price} \\ \hline \fortablerow{table example}{formatrow} \end{tabular} +\npnoround \end{lstlisting} $\implies$ + \nprounddigits{2} \newcommand\formatrow{\description & \price \\}% \begin{tabular}{l | l} \textbf{Description} & \textbf{Price} \\ \hline \fortablerow{table example}{formatrow} \end{tabular} + \npnoround \section*{After values loaded} @@ -151,10 +173,24 @@ Number example:\\ + \lstinline[style=TeX,morekeywords={rawparam}]|\rawparam{\jobname}{number example}| + $\implies$ + \rawparam{\jobname}{number example}\\ + \lstinline[style=TeX,morekeywords={param}]|\param{number example}| $\implies$ + \lstinline[style=TeX,morekeywords={numprint}]|\numprint{|\rawparam{\jobname}{number example}\verb|}| + $\implies$ \param{number example}\\ + Number in foreign language:\\ + + \lstinline[style=TeX,morekeywords={param,selectlanguage}]|\selectlanguage{dutch}\param{number example}|\\ + $\implies$ + \lstinline[style=TeX,morekeywords={numprint}]|\numprint{|\rawparam{\jobname}{number example}\lstinline|}| + $\implies$ + \begingroup\selectlanguage{dutch}\param{number example}\endgroup\\ + List example:\\ \lstinline[style=TeX,morekeywords={param}]|\param{list example}| @@ -177,14 +213,16 @@ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{name}|\\ \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{email}|\\ + \lstinline[style=TeX,morekeywords={paramfield}]|\paramfield{object example}{grade}|\\ $\implies$ \paramfield{object example}{name} - \paramfield{object example}{email}\\ + \paramfield{object example}{email} + \paramfield{object example}{grade}\\ - \begin{lstlisting}[style=TeX,morekeywords={name,email}] + \begin{lstlisting}[style=TeX,morekeywords={name,email,grade}] \newcommand\name{...} \begin{paramobject}{object example} - \name \email + \name \email \grade \end{paramobject} % And here it works again \name @@ -192,34 +230,32 @@ $\implies$ \parbox{\linewidth}{ \begin{paramobject}{object example} - \name \email + \name \email \grade \end{paramobject} \name }\\ Table example:\\ - \begin{lstlisting}[style=TeX,morekeywords={formatrow,fortablerow,description,price}] + \begin{lstlisting}[style=TeX,morekeywords={nprounddigits,npnoround,formatrow,fortablerow,description,price}] +\nprounddigits{2} \newcommand\formatrow{\description & \price \\}% \begin{tabular}{l | l} \textbf{Description} & \textbf{Price} \\ \hline \fortablerow{table example}{formatrow} \end{tabular} +\npnoround \end{lstlisting} $\implies$ + \nprounddigits{2}% \begin{tabular}{l | l} \textbf{Description} & \textbf{Price} \\ \hline \fortablerow{table example}{formatrow} \end{tabular} - \section*{Specification File} - \lstinputlisting[language=YAML,numbers=left,xleftmargin=15pt,caption={example-specification.yaml},columns=fullflexible]{example-specification.yaml} - - \clearpage - \section*{Payload File} \lstinputlisting[language=YAML,numbers=left,xleftmargin={15pt},caption={example.yaml},columns=fullflexible]{example.yaml} - \section*{Fallback Payload} - \lstinputlisting[language=JSON,numbers=left,xleftmargin={15pt},caption={example.json},columns=fullflexible]{example.json} + \section*{Specification File} + \lstinputlisting[language=YAML,numbers=left,xleftmargin=15pt,caption={example-specification.yaml},columns=fullflexible]{example-specification.yaml} \end{document} diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.yaml b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.yaml index 1806fad8da3..57fc9859b5b 100644 --- a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.yaml +++ b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-example/example.yaml @@ -1,14 +1,15 @@ bool example: true string example: PeelInc. -number example: 1 +number example: 1.21 list example: - Tomatoes - Potatoes object example: name: John Doe email: j.doe@example.com + grade: 9.5 table example: - description: Peeling tomatoes - price: 50.00 + price: 50 - description: Peeling potatoes - price: 25.00 + price: 25 diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.pdf b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.pdf index b9bb4a02381..1a84db82dd2 100644 Binary files a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.pdf and b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.pdf differ diff --git a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.tex b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.tex index c6181466376..4a7d885ea65 100644 --- a/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.tex +++ b/Master/texmf-dist/doc/lualatex/lua-placeholders/lua-placeholders-manual.tex @@ -32,6 +32,7 @@ \usepackage{attachfile2} \usepackage{enumitem} \usepackage{biblatex} +\usepackage[english]{isodate} \DefineBibliographyStrings{english}{% bibliography = {References}, @@ -43,7 +44,6 @@ \embedfile[desc={Parameter Specification Example},filespec=example.pdf]{lua-placeholders-example/example.pdf} \embedfile[desc={Parameter Specification Example (YAML)},filespec=example-specification.yaml]{lua-placeholders-example/example-specification.yaml} \embedfile[desc={Values Specification Example},filespec=example.yaml]{lua-placeholders-example/example.yaml} -\embedfile[desc={Values Fallback Specification Example},filespec=example.json]{lua-placeholders-example/example.json} \def\projecturl{https://github.com/Xerdi/lua-placeholders} @@ -88,13 +88,16 @@ \end{enumerate} \subsection{Prerequisites} + For proper number formatting package \texttt{numprint}\cite{numprint} is required. + + \subsubsection{YAML Support} If you're using JSON as \meta{recipe} and \meta{payload} format, the following requirements are no longer needed, since Lua\TeX{} already supports JSON formats out of the box. For YAML support, however, this package requires the \texttt{lyaml}\cite{lyaml} Lua module for parsing the YAML files. This also includes the \texttt{libYAML}\cite{libYAML} platform dependent library and optionally LuaRocks for installing \texttt{lyaml}. Another requirement is Lua, which version meets the Lua version used by Lua\TeX{}. If no \texttt{LUA\_PATH} is set, and you use LuaRocks, this package tries to call the LuaRocks executable to find the \texttt{LUA\_PATH}. - If \texttt{lyaml} can't be loaded, this package will first try to fall back with \texttt{lua-tinyyaml}\cite{tiny} for lesser YAML support and secondly fall back on accepting JSON files only. + If \texttt{lyaml} can't be loaded, this package will first try to fall back with \texttt{lua-tinyyaml}\cite{lua-tinyyaml} for lesser YAML support and secondly fall back on accepting JSON files only. \clearpage \section{Usage} @@ -155,9 +158,14 @@ \item[number] representing a number, like the number type of Lua. In most cases it's necessary to use \meta{default} instead of \meta{placeholder}, especially when the number is used in calculations, since a placeholder will cause errors in \LaTeX{} calculations.\\ \showexample{7}{7-9}{3}{3-3} + \DescribeMacro{\param} A number type can be used with \cmd{\param}, just like the string type. - \DescribeMacro{\numparam} However, the \cmd{\numparam}\oarg{namespace}\marg{name} command uses \cmd{\numprint} to properly format the number according to the selected language. + In version 1.0.0 there was a special command \cmd{\numparam}, which is now deprecated as it now is the default implementation for number types using \cmd{\param}. + When \cmd{\numprint} is defined, it will use it for display using \cmd{\param}. + When \cmd{\numprint} isn't defined, it will print a warning message and formats the number as is. + The same behavior counts for number types within a \texttt{list}, \texttt{object} or \texttt{table}. Read the documentation of package \texttt{numprint} for more information. + If you need a nonformatted version of the number, use \cmd{\rawparam} instead. \item[list] representing a list of values. The value type is specified by \meta{value type}. A \meta{default} setting can be set. @@ -176,7 +184,7 @@ \item[object] representing a list of key value pairs. This parameter type requires a \meta{fields} specification to be set. Any field must be of type \texttt{bool}, \texttt{number} or \texttt{string}.\\ - \showexample{16}{16-24}{7}{7-9} + \showexample{16}{16-27}{7}{7-10} There is no support for the \cmd{\param} command. \DescribeMacro{\paramfield} In order to show to contents there is the \cmd{\paramfield}\oarg{namespace}\marg{name}\marg{field} command. @@ -190,7 +198,7 @@ This parameter type requires a \meta{columns} specification to be set. The \meta{columns} describes each column by name with its own type specification. Like the object field, only the types \texttt{bool}, \texttt{number} and \texttt{string} are supported column types.\\ - \showexample[20pt]{25}{25}{10}{10} + \showexample[20pt]{28}{28-36}{11}{11-15} \DescribeMacro{\fortablerow} Like the object, the table has no support for \cmd{\param}, but comes with a table specific command \cmd{\fortablerow}\oarg{namespace}\marg{name}\marg{csname}. The control sequence name \meta{csname} is a user-defined command with no arguments, containing any of the column names in a command form. @@ -206,6 +214,24 @@ \printbibliography[heading=bibnumbered] \clearpage + + \section{Changelog} + \newcommand\commitline[3]{\item #1\ifx&% + \else\\[1em] + #3\fi\\\hspace*{1em} — \printdate{#2}} + \newcommand\formatversion[3]{% + \item[#1] + \gittag[(taggerdate)(taggerdate:short)(authordate:short)]{printdate}{#1} + \begin{itemize} + \forgitcommit[s,as,b]{commitline}{#3} + \end{itemize} + }% + \begin{description} + \forgittagseq{formatversion} + \end{description} + + \clearpage + \section{Example} The source file \texttt{example.tex} is a perfect demonstration of all macros in action. -- cgit v1.2.3