1
Fork 0

Make metadata accessible from templates

This commit is contained in:
Jake Howard 2018-04-02 23:07:02 +01:00
parent 4d59921aee
commit a6ed61b4eb
1 changed files with 26 additions and 8 deletions

View File

@ -1,23 +1,41 @@
local vars = {}
function fileExists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false end
end
end
local function countWords()
local rawText = pandoc.pipe("pdftotext", {"output.pdf", "-"}, "")
return pandoc.pipe("wc", {"-w"}, rawText)
end
local function getVars(meta)
for k, v in pairs(meta) do
if v.t == 'MetaInlines' then
vars["$" .. k .. "$"] = v
end
end
end
return {
{
Meta = function(meta)
if fileExists("output.pdf") then
meta["wordcount"] = countWords()
meta["secondpass"] = true
Meta = function(meta)
getVars(meta)
if fileExists("output.pdf") then
meta["wordcount"] = countWords()
meta["secondpass"] = true
end
return meta
end,
},
{
Str = function (el)
if vars[el.text] then
return pandoc.Span(vars[el.text])
else
return el
end
end
return meta
end,
}
}