]> pere.pagekite.me Git - text-free-culture-lessig.git/commitdiff
Add script to check indexterm ranges.
authorPetter Reinholdtsen <pere@hungry.com>
Fri, 2 Oct 2015 22:58:31 +0000 (00:58 +0200)
committerPetter Reinholdtsen <pere@hungry.com>
Fri, 2 Oct 2015 22:58:31 +0000 (00:58 +0200)
scripts/verify-indexterm-range [new file with mode: 0755]

diff --git a/scripts/verify-indexterm-range b/scripts/verify-indexterm-range
new file mode 100755 (executable)
index 0000000..19a31a1
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+#
+# Verify the <indexterm> ranges of a docbook document, ensuring
+# endofrange come after startofrange, and the IDs used by startofrange
+# are unique.
+
+from  lxml import etree
+def main():
+    filename = 'freeculture.xml'
+    doc = etree.parse(filename)
+    ids = {}
+    order = 0
+    for it in doc.getroot().xpath('//indexterm'):
+        order = order + 1
+        indextermclass = None
+        id = None
+        if 'class' in it.attrib:
+            indextermclass = it.attrib['class']
+            if 'startofrange' == indextermclass:
+                id=it.attrib['id']
+                if id in ids:
+                    print "error: non-unique indexterm id: %s" % id
+                ids[id] = order
+            if  'endofrange' == indextermclass:
+                id = it.attrib['startref']
+                if id not in ids:
+                    print "error: indexterm id=\"%s\" not listed before endofrange" % id
+            print indextermclass, id
+
+if __name__ == "main":
+    main()