diff --git a/sandbox/generate-plugin-documentation.py b/sandbox/generate-plugin-documentation.py index 2de9c5366..26e07e99a 100755 --- a/sandbox/generate-plugin-documentation.py +++ b/sandbox/generate-plugin-documentation.py @@ -35,7 +35,6 @@ import imp import sys import os.path import textwrap -import traceback import supybot import supybot.world as world @@ -57,8 +56,10 @@ fd.close() import supybot.registry as registry registry.open(registryFilename) +import supybot.log as log import supybot.conf as conf import supybot.utils as utils +import supybot.irclib as irclib import supybot.callbacks as callbacks commandDict = {} @@ -75,6 +76,7 @@ def genHeader(title, meta=''): %s +
''' % (title, meta) @@ -149,6 +151,63 @@ def prepIndex(): ''' % (genHeader('Supybot Plugin Documentation'), genNavbar('../')))) fd.close() +def genConfigSection(fd, item, toplevel=False): + confVars = item.getValues(getChildren=False, fullNames=False) + if not confVars: + return + fd.write('''''') + +def makeNonPluginDocumentation(): + fd = file(os.path.join('docs', 'config.html'), 'w') + title = 'Non-plugin configuration variables for Supybot' + meta = ''' + + ''' + fd.write(textwrap.dedent(''' + %s +
+ %s +
+ Configuration variables under conf.supybot: + ''' % (genHeader(title, meta), genNavbar('../')))) + genConfigSection(fd, conf.supybot, toplevel=True) + fd.write(textwrap.dedent(''' +
+
+
+
+
+ %s + ''' % (genFooter(),))) + fd.close() + def makePluginDocumentation(pluginWindow): global commandDict global firstChars @@ -253,8 +312,9 @@ def makePluginDocumentation(pluginWindow): default = str(config[1]) if isinstance(config[1]._default, basestring): default = utils.dqrepr(default) - help = config[1]._help + help = config[1].help() help = cgi.escape(help) + default = cgi.escape(default) trClass = trClasses[trClass] fd.write(textwrap.dedent(''' %s%s%s @@ -364,6 +424,7 @@ if __name__ == '__main__': os.mkdir(conf.supybot.directories.conf()) if not os.path.exists(conf.supybot.directories.log()): os.mkdir(conf.supybot.directories.log()) + makeNonPluginDocumentation() prepIndex() plugins = [p for p in genPlugins()] plugins.sort()