texlive[61327] Master/texmf-dist: yamlvars (16dec21)

commits+karl at tug.org commits+karl at tug.org
Thu Dec 16 22:19:34 CET 2021


Revision: 61327
          http://tug.org/svn/texlive?view=revision&revision=61327
Author:   karl
Date:     2021-12-16 22:19:34 +0100 (Thu, 16 Dec 2021)
Log Message:
-----------
yamlvars (16dec21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/lualatex/yamlvars/YAMLvars.pdf
    trunk/Master/texmf-dist/doc/lualatex/yamlvars/YAMLvars.tex
    trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua
    trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty

Modified: trunk/Master/texmf-dist/doc/lualatex/yamlvars/YAMLvars.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/yamlvars/YAMLvars.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/yamlvars/YAMLvars.tex	2021-12-16 21:19:17 UTC (rev 61326)
+++ trunk/Master/texmf-dist/doc/lualatex/yamlvars/YAMLvars.tex	2021-12-16 21:19:34 UTC (rev 61327)
@@ -1,5 +1,5 @@
 % Kale Ewasiuk (kalekje at 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
@@ -145,7 +145,13 @@
 \end{verbatim}
 
 
+To change how a variable is declared (initialize), you can modify or add functions in
+\texttt{YAMLvars.dec} table, where the index is the same as the \texttt{prc} name. 
+This function accepts two variables, the var name, and the default value set by dft.
+For lengths and toggles (from etoolbox), these functions are used to initialize lengths
+with newlength and newtoggle.
 
+
 \section{Parsing variables}
 A YAML file to be parsed will contain the variables as the top level keys, similar to declaring.
 The value can be anything you want; as long as you have applied appropriate transform and declaring

Modified: trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua	2021-12-16 21:19:17 UTC (rev 61326)
+++ trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.lua	2021-12-16 21:19:34 UTC (rev 61327)
@@ -1,5 +1,5 @@
 --% Kale Ewasiuk (kalekje at 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.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,19 +151,58 @@
 
 
 
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- 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)
     tex.print('\\hypersetup{pdftitle={'..val..'}}')
     --tex.print('\\setPDFtitle{'..val..'}')
@@ -211,14 +258,8 @@
         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 @@
 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 @@
             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

Modified: trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty	2021-12-16 21:19:17 UTC (rev 61326)
+++ trunk/Master/texmf-dist/tex/lualatex/yamlvars/YAMLvars.sty	2021-12-16 21:19:34 UTC (rev 61327)
@@ -1,5 +1,5 @@
 % Kale Ewasiuk (kalekje at 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,10 +24,14 @@
 
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{YAMLvars}[2021]
+\ProvidesPackage{YAMLvars}[2021-12-15]
 
 \RequirePackage{luacode}
+\RequirePackage{xspace}
+\RequirePackage{etoolbox}
+\RequirePackage[pl,extras]{penlight}
 
+
 \luadirect{YAMLvars = require('YAMLvars')}
 
 \DeclareOption{useyv}{
@@ -39,6 +43,8 @@
 }
 \DeclareOption{allowundeclared}{
         \luadirect{YAMLvars.allowUndeclared = true}
+}\DeclareOption{debug}{
+        \luadirect{YAMLvars.debug = true}
 }
 
 \DeclareOption*{\PackageWarning{YAMLvars}{Unknown option: '\CurrentOption'}{}}



More information about the tex-live-commits mailing list.