update `pandoc` data dir
parent
ca484be94f
commit
50dedd3578
|
@ -1,8 +1,5 @@
|
||||||
local path = pandoc.path
|
|
||||||
local MetaList = pandoc.MetaList
|
|
||||||
local Link = pandoc.Link
|
|
||||||
|
|
||||||
INPUT_FILES = (function(prog)
|
INPUT_FILES = (function(prog)
|
||||||
|
print("[INFO] bavbavhaus.net: collecting input files")
|
||||||
local insert = table.insert
|
local insert = table.insert
|
||||||
local input_files = {}
|
local input_files = {}
|
||||||
local pfile = io.popen(prog)
|
local pfile = io.popen(prog)
|
||||||
|
@ -14,6 +11,7 @@ INPUT_FILES = (function(prog)
|
||||||
end)("ls -t *.md")
|
end)("ls -t *.md")
|
||||||
|
|
||||||
OUTPUT_FILES = (function(pattern)
|
OUTPUT_FILES = (function(pattern)
|
||||||
|
print("[INFO] bavbavhaus.net: collecting output files")
|
||||||
local split_extension = pandoc.path.split_extension
|
local split_extension = pandoc.path.split_extension
|
||||||
local insert = table.insert
|
local insert = table.insert
|
||||||
local output_files = {}
|
local output_files = {}
|
||||||
|
@ -24,9 +22,9 @@ OUTPUT_FILES = (function(pattern)
|
||||||
return output_files
|
return output_files
|
||||||
end)("public_html/%s.html")
|
end)("public_html/%s.html")
|
||||||
|
|
||||||
print("[INFO] bavbavhaus.net: reading pages")
|
|
||||||
PAGES = (function()
|
PAGES = (function()
|
||||||
local pages = MetaList({})
|
print("[INFO] bavbavhaus.net: reading pages")
|
||||||
|
local pages = pandoc.MetaList({})
|
||||||
function pages:get(input_file)
|
function pages:get(input_file)
|
||||||
return self:find_if(function(page)
|
return self:find_if(function(page)
|
||||||
return page["meta"]["input_file"] == input_file
|
return page["meta"]["input_file"] == input_file
|
||||||
|
@ -45,8 +43,8 @@ PAGES = (function()
|
||||||
return pages
|
return pages
|
||||||
end)()
|
end)()
|
||||||
|
|
||||||
print("[INFO] bavbavhaus.net: updating metadata")
|
|
||||||
do
|
do
|
||||||
|
print("[INFO] bavbavhaus.net: updating pages metadata")
|
||||||
for i,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
local input_file = INPUT_FILES[i]
|
local input_file = INPUT_FILES[i]
|
||||||
local output_file = OUTPUT_FILES[i]
|
local output_file = OUTPUT_FILES[i]
|
||||||
|
@ -62,8 +60,25 @@ do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
print("[INFO] bavbavhaus.net: scanning pages for internal links")
|
do
|
||||||
|
print("[INFO] bavbavhaus.net: processing citations")
|
||||||
|
local csl = "pandoc/csl/chicago-fullnote-sl"
|
||||||
|
local citeproc = pandoc.utils.citeproc
|
||||||
|
for i,page in ipairs(PAGES) do
|
||||||
|
PAGES[i] = page:walk({
|
||||||
|
Meta = function(meta)
|
||||||
|
meta["csl"] = csl
|
||||||
|
return meta
|
||||||
|
end,
|
||||||
|
Pandoc = function(doc)
|
||||||
|
return citeproc(doc)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
BACKLINKS, FORELINKS = (function(pages)
|
BACKLINKS, FORELINKS = (function(pages)
|
||||||
|
print("[INFO] bavbavhaus.net: scanning pages for internal links")
|
||||||
local MetaList = pandoc.MetaList
|
local MetaList = pandoc.MetaList
|
||||||
local MetaMap = pandoc.MetaMap
|
local MetaMap = pandoc.MetaMap
|
||||||
local backlinks = MetaMap({})
|
local backlinks = MetaMap({})
|
||||||
|
@ -92,10 +107,10 @@ BACKLINKS, FORELINKS = (function(pages)
|
||||||
return backlinks, forelinks
|
return backlinks, forelinks
|
||||||
end)(PAGES)
|
end)(PAGES)
|
||||||
|
|
||||||
print("[INFO] bavbavhaus.net: updating index page")
|
|
||||||
do
|
do
|
||||||
|
print("[INFO] bavbavhaus.net: updating index page")
|
||||||
local index = "index.md"
|
local index = "index.md"
|
||||||
FORELINKS[index] = MetaList({})
|
FORELINKS[index] = pandoc.MetaList({})
|
||||||
for i,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
if PAGES[i]["meta"]["input_file"] == index then goto continue end
|
if PAGES[i]["meta"]["input_file"] == index then goto continue end
|
||||||
FORELINKS[index]:insert(page["meta"]["input_file"])
|
FORELINKS[index]:insert(page["meta"]["input_file"])
|
||||||
|
@ -103,11 +118,13 @@ do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
print("[INFO] bavbavhaus.net: updating link targets")
|
|
||||||
do
|
do
|
||||||
|
print("[INFO] bavbavhaus.net: updating link targets")
|
||||||
|
local split_extension = pandoc.path.split_extension
|
||||||
function update_target(target)
|
function update_target(target)
|
||||||
return ("%s.html#start"):format(path.split_extension(target))
|
return ("%s.html#start"):format(split_extension(target))
|
||||||
end
|
end
|
||||||
|
local Link = pandoc.Link
|
||||||
for i,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
PAGES[i] = page:walk({
|
PAGES[i] = page:walk({
|
||||||
Meta = function(meta)
|
Meta = function(meta)
|
||||||
|
@ -123,26 +140,10 @@ do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
print("[INFO] bavbavhaus.net: processing citations")
|
|
||||||
do
|
|
||||||
local csl = "pandoc/csl/chicago-fullnote-sl"
|
|
||||||
local citeproc = pandoc.utils.citeproc
|
|
||||||
for i,page in ipairs(PAGES) do
|
|
||||||
PAGES[i] = page:walk({
|
|
||||||
Meta = function(meta)
|
|
||||||
meta["csl"] = csl
|
|
||||||
return meta
|
|
||||||
end,
|
|
||||||
Pandoc = function(doc)
|
|
||||||
return citeproc(doc)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
SITEMAP = (function()
|
SITEMAP = (function()
|
||||||
print("[INFO] bavbavhaus.net: generating sitemap")
|
print("[INFO] bavbavhaus.net: generating sitemap")
|
||||||
local sitemap = pandoc.MetaList({})
|
local sitemap = pandoc.MetaList({})
|
||||||
|
local Link = pandoc.Link
|
||||||
for _,page in ipairs(PAGES) do
|
for _,page in ipairs(PAGES) do
|
||||||
local meta = page["meta"]
|
local meta = page["meta"]
|
||||||
sitemap:insert(Link(meta["title"], meta["url"]))
|
sitemap:insert(Link(meta["title"], meta["url"]))
|
||||||
|
@ -151,7 +152,7 @@ SITEMAP = (function()
|
||||||
end)()
|
end)()
|
||||||
|
|
||||||
do
|
do
|
||||||
print("[INFO] bavbavhaus.net: updating metadata (sitemap)")
|
print("[INFO] bavbavhaus.net: updating sitemap metadata")
|
||||||
for i,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
PAGES[i] = page:walk({
|
PAGES[i] = page:walk({
|
||||||
Meta = function(meta)
|
Meta = function(meta)
|
||||||
|
@ -163,9 +164,7 @@ do
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
print("[INFO] bavbavhaus.net: writing partial pages")
|
print("[INFO] bavbavhaus.net: updating backlinks metadata")
|
||||||
local write = pandoc.write
|
|
||||||
local WriterOptions = pandoc.WriterOptions
|
|
||||||
local compile = pandoc.template.compile
|
local compile = pandoc.template.compile
|
||||||
local partial_template = (function(filepath)
|
local partial_template = (function(filepath)
|
||||||
local f = io.open(filepath)
|
local f = io.open(filepath)
|
||||||
|
@ -174,7 +173,10 @@ do
|
||||||
f:close()
|
f:close()
|
||||||
return compile(template)
|
return compile(template)
|
||||||
end)("pandoc/templates/bavbavhaus.net.partial.html5")
|
end)("pandoc/templates/bavbavhaus.net.partial.html5")
|
||||||
|
local MetaList = pandoc.MetaList
|
||||||
local RawBlock = pandoc.RawBlock
|
local RawBlock = pandoc.RawBlock
|
||||||
|
local write = pandoc.write
|
||||||
|
local WriterOptions = pandoc.WriterOptions
|
||||||
for i,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
local input_file = page["meta"]["input_file"]
|
local input_file = page["meta"]["input_file"]
|
||||||
if not BACKLINKS[input_file] then goto continue end
|
if not BACKLINKS[input_file] then goto continue end
|
||||||
|
@ -198,6 +200,7 @@ do
|
||||||
})
|
})
|
||||||
::continue::
|
::continue::
|
||||||
end
|
end
|
||||||
|
print("[INFO] bavbavhaus.net: updating forelinks metadata")
|
||||||
for i,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
local input_file = page["meta"]["input_file"]
|
local input_file = page["meta"]["input_file"]
|
||||||
if not FORELINKS[input_file] then goto continue end
|
if not FORELINKS[input_file] then goto continue end
|
||||||
|
@ -221,7 +224,13 @@ do
|
||||||
})
|
})
|
||||||
::continue::
|
::continue::
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
do
|
||||||
print("[INFO] bavbavhaus.net: writing pages")
|
print("[INFO] bavbavhaus.net: writing pages")
|
||||||
|
local compile = pandoc.template.compile
|
||||||
|
local WriterOptions = pandoc.WriterOptions
|
||||||
|
local write = pandoc.write
|
||||||
local wopts = WriterOptions({
|
local wopts = WriterOptions({
|
||||||
table_of_contents = true,
|
table_of_contents = true,
|
||||||
template = (function(filepath)
|
template = (function(filepath)
|
||||||
|
@ -232,7 +241,7 @@ do
|
||||||
return compile(template)
|
return compile(template)
|
||||||
end)("pandoc/templates/bavbavhaus.net.html5")
|
end)("pandoc/templates/bavbavhaus.net.html5")
|
||||||
})
|
})
|
||||||
for _,page in ipairs(PAGES) do
|
for i,page in ipairs(PAGES) do
|
||||||
local f = io.open(page["meta"]["output_file"], "w")
|
local f = io.open(page["meta"]["output_file"], "w")
|
||||||
f:write(write(page, "html", wopts))
|
f:write(write(page, "html", wopts))
|
||||||
f:close()
|
f:close()
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
$if(description-meta)$
|
$if(description-meta)$
|
||||||
<meta name="description" content="$description-meta$" />
|
<meta name="description" content="$description-meta$" />
|
||||||
|
$else$
|
||||||
|
<meta name="description" content="bavbavhaus.net" />
|
||||||
$endif$
|
$endif$
|
||||||
<title>bavbavhaus.net/$title$</title>
|
<title>bavbavhaus.net/$title$</title>
|
||||||
<link rel="icon" href="favicon.svg" />
|
<link rel="icon" href="favicon.svg" />
|
||||||
|
@ -14,8 +16,8 @@ $endif$
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
$if(sitemap)$
|
$if(sitemap)$
|
||||||
<article class="sitemap">
|
<article>
|
||||||
<nav id="sitemap">
|
<nav class="sitemap">
|
||||||
<h1><a href="index.html#start">bavbavhaus.net</a></h1>
|
<h1><a href="index.html#start">bavbavhaus.net</a></h1>
|
||||||
<ul>
|
<ul>
|
||||||
$for(sitemap)$
|
$for(sitemap)$
|
||||||
|
@ -35,7 +37,7 @@ $endif$
|
||||||
<h1><a href="$url$">$title$</a></h1>
|
<h1><a href="$url$">$title$</a></h1>
|
||||||
$endif$
|
$endif$
|
||||||
$if(toc)$
|
$if(toc)$
|
||||||
<nav>
|
<nav class="toc">
|
||||||
$if(toc-title)$
|
$if(toc-title)$
|
||||||
<h2>$toc-title$</h2>
|
<h2>$toc-title$</h2>
|
||||||
$endif$
|
$endif$
|
||||||
|
|
|
@ -2,7 +2,7 @@ $if(title)$
|
||||||
<h1><a href="$url$">$title$</a></h1>
|
<h1><a href="$url$">$title$</a></h1>
|
||||||
$endif$
|
$endif$
|
||||||
$if(toc)$
|
$if(toc)$
|
||||||
<nav>
|
<nav class="toc">
|
||||||
$if(toc-title)$
|
$if(toc-title)$
|
||||||
<h2>$toc-title$</h2>
|
<h2>$toc-title$</h2>
|
||||||
$endif$
|
$endif$
|
||||||
|
|
Loading…
Reference in New Issue