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

Impressum / About Us