Merge pull request #188 from mooffie/postprocess_html
Have postprocess_html
This commit is contained in:
commit
3d193b169f
|
@ -1278,6 +1278,9 @@ This needs to be changed if the output format is Markdown, for instance.
|
||||||
- `user_keywords` A list of keywords that will be marked in "prettified" code. Useful if
|
- `user_keywords` A list of keywords that will be marked in "prettified" code. Useful if
|
||||||
you want to display your own functions in a special way. Each keyword may be styled differently
|
you want to display your own functions in a special way. Each keyword may be styled differently
|
||||||
(using CSS). Only works when `pretty` is set to 'lua' (the default).
|
(using CSS). Only works when `pretty` is set to 'lua' (the default).
|
||||||
|
- `postprocess_html` function that allows a last-minute modification to the produced HTML page.
|
||||||
|
The arguments are the raw HTML that's intended to be written out (a string), and the module object.
|
||||||
|
The string this function returns will be what's actually gets written out.
|
||||||
|
|
||||||
_Available functions are:_
|
_Available functions are:_
|
||||||
|
|
||||||
|
|
1
ldoc.lua
1
ldoc.lua
|
@ -234,6 +234,7 @@ local ldoc_contents = {
|
||||||
'no_space_before_args','parse_extra','no_lua_ref','sort_modules','use_markdown_titles',
|
'no_space_before_args','parse_extra','no_lua_ref','sort_modules','use_markdown_titles',
|
||||||
'unqualified', 'custom_display_name_handler', 'kind_names', 'custom_references',
|
'unqualified', 'custom_display_name_handler', 'kind_names', 'custom_references',
|
||||||
'dont_escape_underscore','global_lookup','prettify_files','convert_opt', 'user_keywords',
|
'dont_escape_underscore','global_lookup','prettify_files','convert_opt', 'user_keywords',
|
||||||
|
'postprocess_html',
|
||||||
}
|
}
|
||||||
ldoc_contents = tablex.makeset(ldoc_contents)
|
ldoc_contents = tablex.makeset(ldoc_contents)
|
||||||
|
|
||||||
|
|
|
@ -278,6 +278,24 @@ function ldoc.source_ref (fun)
|
||||||
quit("template not found at '"..args.template.."' Use -l to specify directory containing ldoc.ltp")
|
quit("template not found at '"..args.template.."' Use -l to specify directory containing ldoc.ltp")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Runs a template on a module to generate HTML page.
|
||||||
|
local function templatize(template_str, ldoc, module)
|
||||||
|
local out, err = template.substitute(template_str, {
|
||||||
|
ldoc = ldoc,
|
||||||
|
module = module,
|
||||||
|
_escape = ldoc.template_escape
|
||||||
|
})
|
||||||
|
if not out then
|
||||||
|
quit(("template failed for %s: %s"):format(
|
||||||
|
module and module.name or ldoc.output or "index",
|
||||||
|
err))
|
||||||
|
end
|
||||||
|
if ldoc.postprocess_html then
|
||||||
|
out = ldoc.postprocess_html(out, module)
|
||||||
|
end
|
||||||
|
return cleanup_whitespaces(out)
|
||||||
|
end
|
||||||
|
|
||||||
local css = ldoc.css
|
local css = ldoc.css
|
||||||
ldoc.output = args.output
|
ldoc.output = args.output
|
||||||
ldoc.ipairs = ipairs
|
ldoc.ipairs = ipairs
|
||||||
|
@ -299,13 +317,8 @@ function ldoc.source_ref (fun)
|
||||||
save_and_set_ldoc(ldoc.module.tags.set)
|
save_and_set_ldoc(ldoc.module.tags.set)
|
||||||
end
|
end
|
||||||
set_charset(ldoc)
|
set_charset(ldoc)
|
||||||
local out,err = template.substitute(module_template,{
|
local out = templatize(module_template, ldoc, ldoc.module)
|
||||||
ldoc = ldoc,
|
|
||||||
module = ldoc.module,
|
|
||||||
_escape = ldoc.template_escape
|
|
||||||
})
|
|
||||||
ldoc.root = false
|
ldoc.root = false
|
||||||
if not out then quit("template failed: "..err) end
|
|
||||||
restore_ldoc()
|
restore_ldoc()
|
||||||
|
|
||||||
check_directory(args.dir) -- make sure output directory is ok
|
check_directory(args.dir) -- make sure output directory is ok
|
||||||
|
@ -352,17 +365,8 @@ function ldoc.source_ref (fun)
|
||||||
if ldoc.body and m.postprocess then
|
if ldoc.body and m.postprocess then
|
||||||
ldoc.body = m.postprocess(ldoc.body)
|
ldoc.body = m.postprocess(ldoc.body)
|
||||||
end
|
end
|
||||||
out,err = template.substitute(module_template,{
|
local out = templatize(module_template, ldoc, m)
|
||||||
module=m,
|
writefile(args.dir..lkind..'/'..m.name..args.ext,out)
|
||||||
ldoc = ldoc,
|
|
||||||
_escape = ldoc.template_escape
|
|
||||||
})
|
|
||||||
if not out then
|
|
||||||
quit('template failed for '..m.name..': '..err)
|
|
||||||
else
|
|
||||||
out = cleanup_whitespaces(out)
|
|
||||||
writefile(args.dir..lkind..'/'..m.name..args.ext,out)
|
|
||||||
end
|
|
||||||
restore_ldoc()
|
restore_ldoc()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue