summaryrefslogtreecommitdiff
path: root/make-man-index.py
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-07-16 17:19:39 +0200
committerLennart Poettering <lennart@poettering.net>2012-07-16 17:19:39 +0200
commit9c4fa6ed1069e98db5f01a5d1056b443a04cc7d9 (patch)
treeb78687a62c0a57105d4ab936982fa5c0e0b77417 /make-man-index.py
parente06c73cc91e02a1a3dffdb0976fef754f1109e74 (diff)
min: generate an index page for all man pages
This makes use of python, if it is available
Diffstat (limited to 'make-man-index.py')
-rwxr-xr-xmake-man-index.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/make-man-index.py b/make-man-index.py
new file mode 100755
index 0000000000..1333521a58
--- /dev/null
+++ b/make-man-index.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+from xml.etree.ElementTree import parse, Element, SubElement, tostring
+import sys
+
+index = {}
+
+for p in sys.argv[1:]:
+ t = parse(p)
+ section = t.find('./refmeta/manvolnum').text;
+ for f in t.findall('./refnamediv/refname'):
+ index[f.text] = (p, section)
+
+k = index.keys()
+k.sort(key = str.lower)
+
+
+html = Element('html')
+
+head = SubElement(html, 'head')
+title = SubElement(head, 'title')
+title.text = 'Manual Page Index'
+
+body = SubElement(html, 'body')
+h1 = SubElement(body, 'h1')
+h1.text = 'Manual Page Index'
+
+letter = None
+
+for n in k:
+ path, section = index[n]
+
+ if path.endswith('.xml'):
+ path = path[:-4] + ".html"
+
+ c = path.rfind('/')
+ if c >= 0:
+ path = path[c+1:]
+
+ if letter is None or n[0].upper() != letter:
+ letter = n[0].upper()
+
+ h2 = SubElement(body, 'h1')
+ h2.text = letter
+
+ ul = SubElement(body, 'ul')
+ ul.set('style', 'list-style-type:none')
+
+ li = SubElement(ul, 'li');
+
+ a = SubElement(li, 'a');
+ a.set('href', path)
+ a.text = n + '(' + section + ')'
+
+print tostring(html)