diff options
Diffstat (limited to 'macros/luatex/latex/yamlvars/yamlvars.sty')
-rw-r--r-- | macros/luatex/latex/yamlvars/yamlvars.sty | 85 |
1 files changed, 67 insertions, 18 deletions
diff --git a/macros/luatex/latex/yamlvars/yamlvars.sty b/macros/luatex/latex/yamlvars/yamlvars.sty index b04e7d306f..20ea6d33d1 100644 --- a/macros/luatex/latex/yamlvars/yamlvars.sty +++ b/macros/luatex/latex/yamlvars/yamlvars.sty @@ -1,5 +1,5 @@ % Kale Ewasiuk (kalekje@gmail.com) -% 2022-11-06 +% 2023-07-18 % Copyright (C) 2021-2022 Kale Ewasiuk % % Permission is hereby granted, free of charge, to any person obtaining a copy @@ -25,60 +25,94 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{yamlvars}[2022-11-06] - -\IfFileExists{markdown-tinyyaml.lua}{}{\PackageError{YAMLvars}{This package requires installation of the 'markdown' package, please install it and try again}{}} +\ProvidesPackage{yamlvars}[2023-07-18] \RequirePackage{luacode} \RequirePackage{xspace} \RequirePackage{etoolbox} +\RequirePackage{luakeys} \RequirePackage{penlight} % no option passed here, but extras must be used, error will be thrown if not +%\IfFileExists{tinyyaml.lua}{}{\PackageError{yamlvars}{This package requires installation of the 'tinyyaml' package, please install it and try again}{}} + + \luadirect{YAMLvars = require('YAMLvars')} \DeclareOption{useyv}{ \gdef\yv#1{\csname yv--#1\endcsname} - \luadirect{YAMLvars.prcDefault = 'yvdef'} + \luadirect{YAMLvars.setts.prc = 'yvdef'} + \luadirect{YAMLvars.settsdefault.prc = 'yvdef'} } \DeclareOption{parseCLI}{ \AtBeginDocument{\luadirect{YAMLvars.doYAMLfiles(YAMLvars.getYAMLcli())}} } +\DeclareOption{debug}{ + \luadirect{YAMLvars.debug = true} +} + + + + + + + + + + +%% todo delete below +\newcommand{\lowercasevarYVon}{\luadirect{YAMLvars.lowvasevarall = true}} +\newcommand{\lowercasevarYVoff}{\luadirect{YAMLvars.lowvasevarall = false}} +\newcommand{\AllowUndeclaredYV}{\luadirect{YAMLvars.setts.undeclared = true}} +\newcommand{\ForbidUndeclaredYV}{\luadirect{YAMLvars.setts.undeclared = false}} +\newcommand{\TextualYV}{\luadirect{ +YAMLvars.allowUndeclared = true +YAMLvars.xfmDefault = {'lb2nl','addxspace'} +}} \DeclareOption{allowundeclared}{ - \luadirect{YAMLvars.allowUndeclared = true} + \luadirect{YAMLvars.settsdefault.undeclared = true} } \DeclareOption{overwritedefs}{ - \luadirect{YAMLvars.overwritedefs = true} -} -\DeclareOption{debug}{ - \luadirect{YAMLvars.debug = true} + \luadirect{YAMLvars.settsdefault.overwrite = true} } +%%%%%%%%%%%%%%%%%%%%%% + + + + + -\newcommand{\AllowUndeclaredYV}{\luadirect{YAMLvars.allowUndeclared = true}} -\newcommand{\ForbidUndeclaredYV}{\luadirect{YAMLvars.allowUndeclared = false}} \DeclareOption*{\PackageWarning{YAMLvars}{Unknown option: '\CurrentOption'}{}} \ProcessOptions\relax +\luadirect{YAMLvars.setts2default()} + \newcommand{\declareYAMLvarsFile}[1]{\luadirect{YAMLvars.declareYAMLvarsFile(\luastring{#1})}} -\newcommand{\parseYAMLvarsFile}[1]{\luadirect{YAMLvars.parseYAMLvarsFile(\luastring{#1})}} +\NewDocumentCommand{\parseYAMLvarsFile}{m}{\luadirect{ + YAMLvars.parseYAMLvarsFile(\luastring{#1}) +}} \newenvironment{declareYAMLvars}{\luadirect{_G[__PENLIGHT__].tex.startrecording()}}{\luadirect{_G[__PENLIGHT__].tex.stoprecording()} \luadirect{YAMLvars.declareYAMLvarsStr(_G[__PENLIGHT__].tex.recordedbuf)} } -\newenvironment{parseYAMLvars}{\luadirect{_G[__PENLIGHT__].tex.startrecording()}}{\luadirect{_G[__PENLIGHT__].tex.stoprecording()} -} + +\NewDocumentEnvironment{parseYAMLvars}{}% +{\luadirect{ + _G[__PENLIGHT__].tex.startrecording() +}}% +{\luadirect{ + _G[__PENLIGHT__].tex.stoprecording() +}} \AfterEndEnvironment{parseYAMLvars}{\luadirect{YAMLvars.parseYAMLvarsStr(_G[__PENLIGHT__].tex.recordedbuf)}} % necessary hack to get rohead and lohead to work.. % .. https://tex.stackexchange.com/questions/637018/setting-koma-heading-within-lua/637021?noredirect=1#comment1587387_637021 -\newcommand{\resetYAMLvarsspec}{\luadirect{YAMLvars.varspec = {}}} -\newcommand{\lowercasevarYVon}{\luadirect{YAMLvars.lowvasevarall = true}} -\newcommand{\lowercasevarYVoff}{\luadirect{YAMLvars.lowvasevarall = false}} +\newcommand{\resetYAMLvarsspec}{\luadirect{YAMLvars.varspec = {}}} @@ -89,3 +123,18 @@ } } + + + +\NewDocumentCommand{\setYAMLvars}{s m }{\luadirect{ + YAMLvars.updatesettskv(\luastring{#2}, \luastring{#1}) +}} + +\NewDocumentCommand{\setdefYAMLvars}{ m }{\luadirect{ + YAMLvars.updatesettskv(pl.tex._xFalse, \luastring{#1}, true) +}} + +% \IfBooleanTF{#1}{\luadirect{YAMLvars.setts = pl.tablex.deepcopy(YAMLvars.settsdefault)}}{} % if * return to default first +% \luadirect{pl.tablex.update(YAMLvars.setts, luakeys.parse(\luastring{#2}))} +% \luadirect{YAMLvars.setts.xfm = {'lb2nl', 'addxspace'}} + |