From 7a98e09ae4b424031835cdb8986d93926c7ac0bd Mon Sep 17 00:00:00 2001 From: mitchell <70453897+orbitalquark@users.noreply.github.com> Date: Fri, 4 Sep 2020 23:33:02 -0400 Subject: Moved all top-level .md files into docs/ except README.md. Also fixed lack of header anchors in generated HTML. --- scripts/gen_doc.lua | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'scripts') diff --git a/scripts/gen_doc.lua b/scripts/gen_doc.lua index 1d317935..fff69a12 100755 --- a/scripts/gen_doc.lua +++ b/scripts/gen_doc.lua @@ -1,11 +1,23 @@ #!/usr/bin/lua --- Part of a pipeline that fills in simple {{ variable }} templates when --- generating documentation offline. --- cat file.md | markdown | gen_doc > file.html +-- Filters the given file through markdown, replaces simple {{ variable }} +-- templates, and saves the result to an HTML file of the same name for offline +-- documentation generation. -local html = io.read('*a') -local f = io.open('../docs/_layouts/default.html') -io.write( - f:read('*a'):gsub('{{ page.title }}', html:match('([^<]+)')): - gsub('{{ content }}', (html:gsub('%%', '%%%%')))) +-- Filter the file through markdown using TOC generation in order to get header +-- anchors, but ignore the actual TOC. +local name = arg[1] +local f = io.open(name, 'r') +local markdown = f:read('*a') f:close() +local p = io.popen('markdown -f toc -T ' .. name) +local html = p:read('*a'):match('^.-\n\n(.+)$') +p:close() + +-- Fill in HTML layout with markdown content. +f = io.open('../docs/_layouts/default.html') +html = f:read('*a'):gsub('{{ page.title }}', html:match('([^<]+)')): + gsub('{{ content }}', (html:gsub('%%', '%%%%'))) +f:close() + +-- Write to HTML file. +io.open(name:gsub('^(.+)%.md$', '%1.html'), 'wb'):write(html):close() -- cgit v1.2.3