#!/usr/bin/lua
-- Copyright 2007-2012 Mitchell mitchell.att.foicica.com. See LICENSE.
local all = false
if #arg == 0 then all = true end
local luadoc = all
local manual = all
local doxygen = all
local adeptsense = all
for _, doctype in ipairs(arg) do
if doctype == 'luadoc' then
luadoc = true
elseif doctype == 'manual' then
manual = true
elseif doctype == 'doxygen' then
doxygen = true
elseif doctype == 'adeptsense' then
adeptsense = true
end
end
-- Generate LuaDoc.
if luadoc then
os.execute('rm -r ../doc/api/*')
os.execute('luadoc -d ../doc -doclet markdowndoc '..
'../modules ../core ../lexers/lexer.lua')
end
-- Generate the Manual.
if manual then
local HTML = [[
%(title)
Manual
%(nav)
Contents
%(toc)
%(main)
]]
-- Get manual pages.
local pages = {}
local lfs = require 'lfs'
for file in lfs.dir('../doc/manual/') do
if file:find('^%d+_.-%.md$') then pages[#pages + 1] = file end
end
table.sort(pages)
pages[#pages + 1] = '../../README.md'
pages[#pages + 1] = '../../CHANGELOG.md'
pages[#pages + 1] = '../../THANKS.md'
-- Create the navigation list.
local navfile = '../doc/manual/.nav.md'
local f = io.open(navfile, 'wb')
for _, page in ipairs(pages) do
local name = page:match('^%A+(.-)%.md$'):gsub('(%l)(%u)', '%1 %2')
if page:find('^%.%./') then page = page:match('^%A+(.+)$') end
f:write('* [', name, '](', page:gsub('%.md$', '.html'), ')\n')
end
f:close()
local p = io.popen('markdown "'..navfile..'"')
local nav = p:read('*all')
p:close()
-- Write HTML.
for _, page in ipairs(pages) do
local name = page:match('^%A+(.-)%.md$'):gsub('(%l)(%u)', '%1 %2')
local p = io.popen('markdown -f toc -T "../doc/manual/'..page..'"')
local toc, main = p:read('*all'):match('^(.-\n\n)(.+)$')
p:close()
if page:find('^%.%./') then page = page:match('^%A+(.+)$') end
f = io.open('../doc/manual/'..page:gsub('%.md$', '.html'), 'wb')
local html = HTML:gsub('%%%(([^)]+)%)', {
title = name..' - Textadept Manual', nav = nav, toc = toc, main = main
})
f:write(html)
f:close()
end
end
-- Generate Doxygen documentation.
if doxygen then
os.execute('cd ../; doxygen Doxyfile')
end
-- Create Lua adeptsense for textadept.
if adeptsense then
os.execute('luadoc -d ../modules/lua -doclet adeptsensedoc '..
'../modules ../core ../lexers/lexer.lua')
end