diff options
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/yamlvars/yamlvars.sty')
-rw-r--r-- | Master/texmf-dist/tex/lualatex/yamlvars/yamlvars.sty | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/lualatex/yamlvars/yamlvars.sty b/Master/texmf-dist/tex/lualatex/yamlvars/yamlvars.sty new file mode 100644 index 00000000000..8e295988fbf --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/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}} |