summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-12-16 21:19:34 +0000
committerKarl Berry <karl@freefriends.org>2021-12-16 21:19:34 +0000
commitd358de4496e1833473023a9fe431880e5fa05336 (patch)
treef2938b6e56d8cd6e835540f5a8b6d4239ffc2acd /Master/texmf-dist/tex/lualatex
parent719a1810d1b4092817411e6ba7b07ccc6e53a2cd (diff)
yamlvars (16dec21)
git-svn-id: svn://tug.org/texlive/trunk@61327 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/lualatex')
-rw-r--r--Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua75
-rw-r--r--Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty10
2 files changed, 66 insertions, 19 deletions
diff --git a/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua b/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua
index e7baaf26f7e..72e4d6ad1a4 100644
--- a/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua
+++ b/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua
@@ -1,5 +1,5 @@
--% Kale Ewasiuk (kalekje@gmail.com)
---% 2021-11-07
+--% 2021-12-15
--% Copyright (C) 2021 Kale Ewasiuk
--%
--% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -51,6 +51,7 @@
YAMLvars = {} -- self table
YAMLvars.xfm = {}
YAMLvars.prc = {}
+YAMLvars.dec = {} -- table of declare function
YAMLvars.varsvals = {}
YAMLvars.varspecs = {}
@@ -66,8 +67,15 @@ YAMLvars.varTemp = ''
YAMLvars.tabmidrule = 'hline'
+YAMLvars.debug = false
+
YAMLvars.yaml = require('tinyyaml')
+function YAMLvars.debugtalk(s, ss)
+ if YAMLvars.debug then
+ help_wrt(s, ss)
+ end
+end
-- xfm functions (transforms) -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function YAMLvars.xfm.addxspace(var, val)
@@ -143,17 +151,56 @@ end
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- dec laration functions, -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+function YAMLvars.dec.gdef(var, dft)
+ YAMLvars.deccmd(var, dft)
+end
+
+function YAMLvars.dec.yvdef(var, dft)
+ YAMLvars.deccmd('yv--'..var, dft)
+end
+
+function YAMLvars.dec.toggle(var, dft)
+ tex.print('\\global\\newtoggle{'..var..'}')
+ YAMLvars.prc.toggle(var, dft)
+end
+
+function YAMLvars.dec.length(var, dft)
+ tex.print('\\global\\newlength{\\'..var..'}')
+ YAMLvars.prc.length(var, dft)
+end
+
-- prc functions (processing) -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function YAMLvars.prc.gdef(var, val)
token.set_macro(var, val, 'global')
+ YAMLvars.debugtalk(var..' = '..val, 'prc gdef')
end
function YAMLvars.prc.yvdef(var, val)
token.set_macro('yv--'..var, val, 'global')
+ YAMLvars.debugtalk('yv--'..var..' = '..val, 'prc yvdef')
+end
+
+function YAMLvars.prc.toggle(t, v) -- requires penlight extras
+ local s = ''
+ if hasval(v) then
+ s = '\\global\\toggletrue{'..t..'}'
+ else
+ s = '\\global\\togglefalse{'..t..'}'
+ end
+ tex.print(s)
+ YAMLvars.debugtalk(s, 'prc toggle')
+end
+
+function YAMLvars.prc.length(t, v)
+ v = v or '0pt'
+ local s = '\\global\\setlength{\\global\\'..t..'}{'..v..'}'
+ tex.print(s)
+ YAMLvars.debugtalk(s, 'prc length')
end
function YAMLvars.prc.PDFtitle(var, val)
@@ -211,13 +258,7 @@ function YAMLvars.prc.setdocvarOpts(var, val)
tex.print(s)
end
-function YAMLvars.prc.toggle(t, v) -- requires penlight extras
- if hasval(v) then
- tex.print('\\global\\toggletrue{'..t..'}')
- else
- tex.print('\\global\\togglefalse{'..t..'}')
- end
-end
+
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -257,7 +298,7 @@ end
function YAMLvars.declareYAMLvarsStr(y)
local t = YAMLvars.yaml.parse(y)
for var, specs in pairs(t) do
- YAMLvars.varspecs[var] = {xfm=YAMLvars.xfrmDefault,prc=YAMLvars.prcDefault,dft=YAMLvars.dftDefault}
+ YAMLvars.varspecs[var] = {xfm=YAMLvars.xfmDefault,prc=YAMLvars.prcDefault,dft=YAMLvars.dftDefault}
if type(specs) == 'string' then
specs = {xfm={specs}}
end
@@ -266,17 +307,17 @@ function YAMLvars.declareYAMLvarsStr(y)
if s == 'xfm' and type(p) ~= 'table' then p = {p} end
YAMLvars.varspecs[var][s] = p -- set property of var
end
- if YAMLvars.varspecs[var]['prc'] == 'gdef' then
- YAMLvars.deccmd(var, YAMLvars.varspecs[var]['dft'])
- elseif YAMLvars.varspecs[var]['prc'] == 'yvdef' then
- YAMLvars.deccmd('yv--'..var, YAMLvars.varspecs[var]['dft'])
- elseif YAMLvars.varspecs[var]['prc'] == 'toggle' then
- tex.print('\\global\\newtoggle{'..var..'}')
- YAMLvars.prc.toggle(var, YAMLvars.varspecs[var]['dft'])
+ if YAMLvars.dec[YAMLvars.varspecs[var].prc] ~= nil then
+ YAMLvars.dec[YAMLvars.varspecs[var].prc](var, YAMLvars.varspecs[var].dft)
+ --else -- actually don't a dec function for all
+ -- -- -- -- tex.print('\\PackageError{YAMLvars}{Declaration function for '..YAMLvarspecs[var].prc..'not found}{}')
end
end
+ YAMLvars.debugtalk(YAMLvars.varspecs, 'declared YAML vars, varspecs')
end
+
+
function YAMLvars.declareYAMLvarsFile(y)
YAMLvars.declareYAMLvarsStr(getYAMLfile(y))
end
diff --git a/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty b/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty
index f7154389d7f..23928006519 100644
--- a/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty
+++ b/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2021-11-07
+% 2021-12-15
% Copyright (C) 2021 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -24,9 +24,13 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{YAMLvars}[2021]
+\ProvidesPackage{YAMLvars}[2021-12-15]
\RequirePackage{luacode}
+\RequirePackage{xspace}
+\RequirePackage{etoolbox}
+\RequirePackage[pl,extras]{penlight}
+
\luadirect{YAMLvars = require('YAMLvars')}
@@ -39,6 +43,8 @@
}
\DeclareOption{allowundeclared}{
\luadirect{YAMLvars.allowUndeclared = true}
+}\DeclareOption{debug}{
+ \luadirect{YAMLvars.debug = true}
}
\DeclareOption*{\PackageWarning{YAMLvars}{Unknown option: '\CurrentOption'}{}}