1
Fork 0
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
tex-template-builder/second-pass.lua

49 lines
1.2 KiB
Lua

local vars = {}
local additionalChars = {".", ",", "!", ":", ";"}
function fileExists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false 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
local var_key = "$" .. k .. "$"
local var_value = table.unpack(v)["c"]
vars[var_key] = var_value
for _, char in pairs(additionalChars) do
vars[var_key .. char] = var_value .. char
vars[char .. var_key] = char .. var_value
end
end
end
end
return {
{
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
}
}