webmcp
diff framework/bin/autodoc.lua @ 381:46ff54bbd10e
Anchor (URI fragment) support for autodoc system
author | jbe |
---|---|
date | Mon Nov 16 16:55:49 2015 +0100 (2015-11-16) |
parents | e81669ae2e4d |
children | a7a335e2db93 |
line diff
1.1 --- a/framework/bin/autodoc.lua Mon Nov 16 01:33:02 2015 +0100 1.2 +++ b/framework/bin/autodoc.lua Mon Nov 16 16:55:49 2015 +0100 1.3 @@ -181,36 +181,41 @@ 1.4 table.sort(keys) 1.5 for idx, key in ipairs(keys) do 1.6 local entry = entries[key] 1.7 - output('<li class="autodoc_entry">\n') 1.8 + local m1, m2 = string.match(key, "<?([A-Za-z0-9_]*)>?([A-Za-z0-9_.:]+)") 1.9 + local anchor = m1 .. m2 1.10 + local ident = anchor:gsub("_", "_USC_"):gsub("%.", "_DOT_"):gsub(":", "_COL_") 1.11 + output('<a name="', anchor, '">') 1.12 + output(' <li class="autodoc_entry">\n') 1.13 output( 1.14 - ' <div class="short_synopsis"', 1.15 + ' <div class="short_synopsis"', 1.16 ' onclick="document.getElementById(\'autodoc_details_', 1.17 - idx, 1.18 + ident, 1.19 '\').style.display = document.getElementById(\'autodoc_details_', 1.20 - idx, 1.21 + ident, 1.22 '\').style.display ? \'\' : \'none\';">\n' 1.23 ) 1.24 - output(' ', encode(entry.func_call), '\n') 1.25 - output(' </div>\n') 1.26 + output(' ', encode(entry.func_call), '\n') 1.27 + output(' </div>\n') 1.28 output( 1.29 - ' <div id="autodoc_details_', 1.30 - idx, 1.31 + ' <div id="autodoc_details_', 1.32 + ident, 1.33 '" class="autodoc_details" style="display: none;">\n' 1.34 ) 1.35 - output(' <div class="autodoc_synopsis">\n') 1.36 + output(' <div class="autodoc_synopsis">\n') 1.37 output_lines(entry.synopsis) 1.38 - output(' </div>\n') 1.39 - output(' <div class="autodoc_comment">') 1.40 + output(' </div>\n') 1.41 + output(' <div class="autodoc_comment">') 1.42 for idx, line in ipairs(entry.comment) do 1.43 output(encode(line)) 1.44 if idx < #entry.comment then 1.45 output('<br/>') 1.46 end 1.47 end 1.48 - output(' </div>\n') 1.49 - output(' <div class="autodoc_source">\n') 1.50 + output('</div>\n') 1.51 + output(' <div class="autodoc_source">\n') 1.52 output_lines(entry.source) 1.53 + output(' </div>\n') 1.54 output(' </div>\n') 1.55 - output(' </div>\n') 1.56 - output('</li>\n') 1.57 + output(' </li>\n') 1.58 + output('</a>') 1.59 end