mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
min: generate an index page for all man pages
This makes use of python, if it is available
This commit is contained in:
parent
e06c73cc91
commit
9c4fa6ed10
18
Makefile.am
18
Makefile.am
@ -658,14 +658,28 @@ noinst_DATA = \
|
||||
|
||||
CLEANFILES += \
|
||||
$(MANPAGES) \
|
||||
$(MANPAGES_ALIAS)
|
||||
$(MANPAGES_ALIAS) \
|
||||
${XML_FILES:.xml=.html}
|
||||
|
||||
if HAVE_PYTHON
|
||||
noinst_DATA += \
|
||||
man/index.html
|
||||
|
||||
CLEANFILES += \
|
||||
man/index.html
|
||||
|
||||
man/index.html: $(XML_FILES)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/make-man-index.py $(XML_FILES) > $@
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
$(XML_FILES) \
|
||||
${XML_FILES:.xml=.html} \
|
||||
$(MANPAGES) \
|
||||
$(MANPAGES_ALIAS)
|
||||
$(MANPAGES_ALIAS) \
|
||||
make-man-index.py
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
noinst_LTLIBRARIES += \
|
||||
|
@ -79,6 +79,10 @@ if test -z "$GPERF" ; then
|
||||
AC_MSG_ERROR([*** gperf not found])
|
||||
fi
|
||||
|
||||
# we use python only to build the man page index
|
||||
AM_PATH_PYTHON(,, [:])
|
||||
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
|
||||
|
||||
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
|
||||
-pipe \
|
||||
-Wall \
|
||||
|
55
make-man-index.py
Executable file
55
make-man-index.py
Executable file
@ -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)
|
Loading…
Reference in New Issue
Block a user