summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/yamlvars/yamlvars.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex/yamlvars/yamlvars.sty')
-rw-r--r--macros/luatex/latex/yamlvars/yamlvars.sty85
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'}}
+