diff options
author | Norbert Preining <norbert@preining.info> | 2022-02-26 03:00:34 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-02-26 03:00:34 +0000 |
commit | 740a11f29a3551babe3d7edbb57ac3baa2280a3f (patch) | |
tree | 5d6d449e762f5ab95042e3517d03c5ac3ddaf7c3 /macros/luatex/latex/yamlvars/yamlvars.sty | |
parent | 157cc9e776520d0b7d488317a69a10d4ae4d493b (diff) |
CTAN sync 202202260300
Diffstat (limited to 'macros/luatex/latex/yamlvars/yamlvars.sty')
-rw-r--r-- | macros/luatex/latex/yamlvars/yamlvars.sty | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/macros/luatex/latex/yamlvars/yamlvars.sty b/macros/luatex/latex/yamlvars/yamlvars.sty new file mode 100644 index 0000000000..8e295988fb --- /dev/null +++ b/macros/luatex/latex/yamlvars/yamlvars.sty @@ -0,0 +1,75 @@ +% Kale Ewasiuk (kalekje@gmail.com) +% 2022-02-25 +% Copyright (C) 2021-2022 Kale Ewasiuk +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the "Software"), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in +% all copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +% ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +% TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +% PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +% SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +% ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +% ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +% OR OTHER DEALINGS IN THE SOFTWARE. + + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{YAMLvars}[2022-02-25] + +\IfFileExists{markdown-tinyyaml.lua}{}{\PackageError{YAMLvars}{This package requires installation of the 'markdown' package, please install it and try again}{}} + +\RequirePackage{luacode} +\RequirePackage{xspace} +\RequirePackage{etoolbox} +\RequirePackage[pl,extras]{penlight} + +\luadirect{YAMLvars = require('YAMLvars')} + +\DeclareOption{useyv}{ + \gdef\yv#1{\csname yv--#1\endcsname} + \luadirect{YAMLvars.prcDefault = 'yvdef'} +} +\DeclareOption{parseCLI}{ + \AtBeginDocument{\luadirect{YAMLvars.doYAMLfiles(YAMLvars.getYAMLcli())}} +} +\DeclareOption{allowundeclared}{ + \luadirect{YAMLvars.allowUndeclared = true} +} +\DeclareOption{overwritedefs}{ + \luadirect{YAMLvars.overwritedefs = true} +} +\DeclareOption{debug}{ + \luadirect{YAMLvars.debug = true} +} + +\DeclareOption*{\PackageWarning{YAMLvars}{Unknown option: '\CurrentOption'}{}} +\ProcessOptions\relax + + +\newcommand{\declareYAMLvarsFile}[1]{\luadirect{YAMLvars.declareYAMLvarsFile(\luastring{#1})}} +\newcommand{\parseYAMLvarsFile}[1]{\luadirect{YAMLvars.parseYAMLvarsFile(\luastring{#1})}} + + +\newenvironment{declareYAMLvars}{\luadirect{startrecording()}}{\luadirect{stoprecording()} +\luadirect{YAMLvars.declareYAMLvarsStr(recordedbuf)} +} + +\newenvironment{parseYAMLvars}{\luadirect{startrecording()}}{\luadirect{stoprecording()} +\luadirect{YAMLvars.parseYAMLvarsStr(recordedbuf)} +} + +\newcommand{\resetYAMLvarsspec}{\luadirect{YAMLvars.varspec = {}}} + +\newcommand{\AllowUndeclaredYV}{\luadirect{YAMLvars.allowUndeclared = true}} +\newcommand{\ForbidUndeclaredYV}{\luadirect{YAMLvars.allowUndeclared = false}} |