make-directive-index: count how many directives and pages are shown

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-01-14 21:34:19 -05:00
parent eeb019b5b5
commit 0acfdd61ed
1 changed files with 25 additions and 0 deletions

View File

@ -92,9 +92,19 @@ TEMPLATE = '''\
<variablelist id='bootchart-directives' />
</refsect1>
<refsect1>
<title>Colophon</title>
<para id='colophon' />
</refsect1>
</refentry>
'''
COLOPHON = '''\
This index contains {count} entries in {sections} sections,
referring to {pages} individual manual pages.
'''
def _extract_directives(directive_groups, page):
t = tree.parse(page)
section = t.find('./refmeta/manvolnum').text
@ -125,6 +135,19 @@ def _make_section(template, name, directives):
d.text = manvolume
entry.tail = '\n\n'
def _make_colophon(template, groups):
count = 0
pages = set()
for group in groups:
count += len(group)
for pagelist in group.values():
pages |= set(pagelist)
para = template.find(".//para[@id='colophon']")
para.text = COLOPHON.format(count=count,
sections=len(groups),
pages=len(pages))
def _make_page(template, directive_groups):
"""Create an XML tree from directive_groups.
@ -137,6 +160,8 @@ def _make_page(template, directive_groups):
for name, directives in directive_groups.items():
_make_section(template, name, directives)
_make_colophon(template, directive_groups.values())
return template
def make_page(xml_files):