From 033416a15fe60fe10387119e0e63bb9ed9e8aedd Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Sat, 25 Jul 2009 23:34:13 -0400 Subject: Documentation overhaul. --- scripts/update_doc | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100755 scripts/update_doc (limited to 'scripts/update_doc') diff --git a/scripts/update_doc b/scripts/update_doc new file mode 100755 index 00000000..c3360e43 --- /dev/null +++ b/scripts/update_doc @@ -0,0 +1,104 @@ +#!/usr/bin/lua +-- Copyright 2007-2009 Mitchell mitchellcaladbolg.net. See LICENSE. + +-- Generate LuaDoc. +os.execute('rm -rf ../doc/modules/') +os.execute('cd ../; luadoc -d doc/ --nofiles modules/ core/ lexers/lexer.lua') + +-- Insert Markdown in modules into LuaDoc. +local p = io.popen('grep -r "\\-\\- Markdown:" ../*') +for file in p:lines() do + local module + + -- Open the Lua file and extract the Markdown lines. + local f = io.open(file:match('^[^:]+')) + local markdown, flag = {}, false + for line in f:lines() do + if flag and line:match('^%-%-') then + local match = line:match('^%-%- ([^\n]+)') + markdown[#markdown + 1] = match or '' + elseif flag then -- markdown ended + break + elseif line:match('^%-%- Markdown:') then + flag = true + elseif line:match('^module') then + module = line:match("^module%('([^']+)") + end + end + f:close() + + -- Convert the Markdown into HTML. + markdown = table.concat(markdown, '\n') + f = io.open('tmp', 'w') + f:write(markdown) + f:close() + f = io.popen('perl ../doc/Markdown.pl tmp') + markdown = f:read('*all') + f:close() + os.execute('rm tmp') + + -- Insert the Marked down HTML in the LuaDoc HTML file. + local filename = '../doc/modules/'..module..'.html' + f = io.open(filename) + local contents = f:read('*all') + f:close() + local s = contents:find('

Functions

') + if not s then s = contents:find('

Tables

') end + contents = contents:sub(1, s - 1)..markdown..contents:sub(s) + f = io.open(filename, 'w') + f:write(contents) + f:close() +end +p:close() + +-- Generate the Manual. +p = io.popen('ls -1 ../doc/manual/*.md') +for mdfile in p:lines() do + local htmlfile = mdfile:match('^(.+).md$')..'.html' + html = [[ + + + + Textadept Manual + + + + + +
+
+ +
+ + %content% + +
+
+
+

Valid XHTML 1.0!

+
+
+ + + ]] + + local sidebar_md = io.popen('../doc/Markdown.pl ../doc/sidebar.md') + html = html:gsub('%%sidebar%%', sidebar_md:read('*all')) + sidebar_md:close() + local content_md = io.popen('../doc/Markdown.pl '..mdfile) + html = html:gsub('%%content%%', content_md:read('*all')) + content_md:close() + + local f = io.open(htmlfile, 'w') + f:write(html) + f:close() +end +p:close() + +os.execute("sed -i 's/pre.example/pre, pre.example/;' ../doc/luadoc.css") +os.execute('cd ../; doxygen Doxyfile') -- cgit v1.2.3