From 81b0b208278ea8982d6581bda0dc922c466df2a9 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 29 Dec 2017 16:41:51 -0800 Subject: Generate README.md from template and MANUAL.txt. `make README.md` will generate the README.md after changes to MANUAL.txt have been made. --- tools/update-readme.lua | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tools/update-readme.lua (limited to 'tools') diff --git a/tools/update-readme.lua b/tools/update-readme.lua new file mode 100644 index 000000000..916b80881 --- /dev/null +++ b/tools/update-readme.lua @@ -0,0 +1,38 @@ +-- update README.md based on MANUAL.txt +-- assumes that the README.md has a div with id 'description'. +-- this gets replaced by the contents of the 'description' section +-- of the manual. + +function Div(elem) + if elem.classes[1] and elem.classes[1] == 'description' then + local f = assert(io.open("MANUAL.txt", "r")) + local manual = f:read("*all") + f:close() + local description = {} + local i = 1 + local include = false + local mdoc = pandoc.read(manual, "markdown") + local blocks = mdoc.blocks + while blocks[i] do + if include then + table.insert(description, pandoc.walk_block(blocks[i], + -- remove internal links + { Link = function(el) + if el.target:match("^#") then + return el.content + end + end })) + end + if blocks[i].t == 'Header' then + if blocks[i].identifier == 'description' then + include = true + elseif include then + include = false + end + end + i = i + 1 + end + return pandoc.Div(description, pandoc.Attr("description",{},{})) + end +end + -- cgit v1.2.3