From 6884b73e19050c1a6d11228886db51e1787df2bb Mon Sep 17 00:00:00 2001 From: Elias Dorneles Date: Mon, 11 May 2015 22:11:30 -0300 Subject: [PATCH] sort settings list by name and wrap it in a bullet list --- docs/_ext/scrapydocs.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/_ext/scrapydocs.py b/docs/_ext/scrapydocs.py index 58d9cd0c7..f0827f2b1 100644 --- a/docs/_ext/scrapydocs.py +++ b/docs/_ext/scrapydocs.py @@ -2,6 +2,7 @@ from docutils.parsers.rst.roles import set_classes from docutils import nodes from sphinx.util.compat import Directive from sphinx.util.nodes import make_refnode +from operator import itemgetter class settingslist_node(nodes.General, nodes.Element): @@ -57,18 +58,24 @@ def make_setting_element(setting_data, app, fromdocname): todocname=setting_data['docname'], targetid=setting_data['refid'], child=nodes.Text(setting_data['setting_name'])) - p = nodes.paragraph() - p.append(refnode) - return p + p += refnode + + item = nodes.list_item() + item += p + return item def replace_settingslist_nodes(app, doctree, fromdocname): env = app.builder.env for node in doctree.traverse(settingslist_node): - node.replace_self([make_setting_element(d, app, fromdocname) - for d in env.scrapy_all_settings if fromdocname != d['docname']]) + settings_list = nodes.bullet_list() + settings_list.extend([make_setting_element(d, app, fromdocname) + for d in sorted(env.scrapy_all_settings, + key=itemgetter('setting_name')) + if fromdocname != d['docname']]) + node.replace_self(settings_list) def setup(app):