summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/yamlvars/yamlvars.lua
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex/yamlvars/yamlvars.lua')
-rw-r--r--macros/luatex/latex/yamlvars/yamlvars.lua68
1 files changed, 40 insertions, 28 deletions
diff --git a/macros/luatex/latex/yamlvars/yamlvars.lua b/macros/luatex/latex/yamlvars/yamlvars.lua
index b485236d10..a46b47e725 100644
--- a/macros/luatex/latex/yamlvars/yamlvars.lua
+++ b/macros/luatex/latex/yamlvars/yamlvars.lua
@@ -1,5 +1,5 @@
--% Kale Ewasiuk (kalekje@gmail.com)
---% 2022-03-15
+--% 2022-04-16
--% Copyright (C) 2021-2022 Kale Ewasiuk
--%
--% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -92,6 +92,24 @@ function YAMLvars.pkgerr(m)
end
+
+
+-- todo need distinction beyyween table and penlight list ???
+ --val = pl.array2d.map_slice1(_1..'\\\\', val, 1,-2)
+ --return val:join('')
+ --return pl.tablex.reduce(_1.._2, val, '')
+
+function YAMLvars.xfm.markdown(var, val)
+ --return '\\begin{markdown} '..val..'\n \\end{markdown}'
+ pl.tex.help_wrt(val, md)
+ return [[begin markdown ..val..
+
+ par end markdown]]
+end
+
+
+
+
-- xfm functions (transforms) -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function YAMLvars.xfm.addxspace(var, val)
return val .. '\\xspace'
@@ -106,15 +124,14 @@ function YAMLvars.xfm.arrsort2ZA(var, val)
end
function YAMLvars.xfm.addrule2arr(var, val)
- return pl.array2d.map_slice2(_1..'\\\\\\'.. YAMLvars.tabmidrule..' ', val, 1,-1,-2,-1) -- todo make gmidrule
+ return pl.array2d.map_slice2(_1..'\\\\\\'.. YAMLvars.tabmidrule..' ', val, 1,-1,-2,-1)
end
function YAMLvars.xfm.arr2tabular(var, val)
return pl.array2d.toTeX(val)..'\\\\'
end
-
-function YAMLvars.xfm.list2items(var, val) -- todo should be list2item
+function YAMLvars.xfm.list2items(var, val)
return pl.List(val):map('\\item '.._1):join(' ')
end
YAMLvars.xfm.arr2itemize = YAMLvars.xfm.list2items
@@ -140,7 +157,6 @@ function YAMLvars.xfm.arrsortlastnameAZ(var, val)
return val
end
--- todo need distinction beyyween table and penlight list ???
function YAMLvars.xfm.list2nl(var, val)
if type(val) == 'string' then
return val
@@ -155,29 +171,25 @@ function YAMLvars.xfm.list2and(var, val) -- for doc vars like author, publisher
return pl.List(val):join('\\and ')
end
- --val = pl.array2d.map_slice1(_1..'\\\\', val, 1,-2)
- --return val:join('')
- --return pl.tablex.reduce(_1.._2, val, '')
-
-function YAMLvars.xfm.lb2nl(var, val) --linebreak in text 2 new line
+function YAMLvars.xfm.lb2nl(var, val) --linebreak in text 2 newline \\
val, _ = val:gsub('\n','\\\\ ')
return val
end
-function YAMLvars.xfm.lowercase(var, val)
- return val:lower()
+function YAMLvars.xfm.lb2newline(var, val) --linebreak in text 2 newline \\
+ val, _ = val:gsub('\n','\\newline ')
+ return val
end
-
-function YAMLvars.xfm.markdown(var, val)
- --return '\\begin{markdown} '..val..'\n \\end{markdown}'
- pl.tex.help_wrt(val, md)
- return [[begin markdown ..val..
-
- par end markdown]]
+function YAMLvars.xfm.lb2par(var, val) --linebreak in text 2 new l
+ val, _ = val:gsub('\n%s*\n','\\par ')
+ return val
end
+function YAMLvars.xfm.lowercase(var, val)
+ return val:lower()
+end
-- dec laration functions, -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -211,7 +223,6 @@ function YAMLvars.prc.gdef(var, val)
end
function YAMLvars.prc.yvdef(var, val)
- --token.set_macro('yv--'..var, val, 'global') -- todo fix with csname hack?
pl.tex.defmacro('yv--'..var, val)
YAMLvars.debugtalk('yv--'..var..' = '..val, 'prc yvdef')
end
@@ -236,13 +247,11 @@ end
-
function YAMLvars.prc.setATvar(var, val) -- set a @var directly: eg \gdef\@title{val}
pl.tex.defcmdAT('@'..var, val)
end
-
function YAMLvars.prc.setdocvar(var, val) -- call a document var \var{val} = \title{val}
-- YAML syntax options
-- k: v -> \k{v}
@@ -264,10 +273,9 @@ function YAMLvars.prc.setdocvar(var, val) -- call a document var \var{val} = \ti
end
-
function YAMLvars.prc.setPDFdata(var, val)
- --update pdf metat data table
- -- requires a table
+ --update pdf meta data table (via penlight), uses pdfx xmpdata
+ -- requires a table input
for k, v in pairs(val) do
if type(v) == 'table' then
v = pl.List(v):join('\\sep ')
@@ -276,9 +284,6 @@ function YAMLvars.prc.setPDFdata(var, val)
end
end
-
-
-
-- with hyperref package
function YAMLvars.prc.PDFtitle(var, val)
tex.print('\\hypersetup{pdftitle={'..val..'}}')
@@ -288,6 +293,13 @@ function YAMLvars.prc.PDFauthor(var, val)
tex.print('\\hypersetup{pdfauthor={'..val..'}}')
end
+-- --
+
+
+-- ??
+--token.set_macro('yv--'..var, val, 'global') -- todo fix with csname hack?
+
+
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --