From: Petter Reinholdtsen Date: Fri, 2 Oct 2015 22:58:31 +0000 (+0200) Subject: Add script to check indexterm ranges. X-Git-Tag: edition-2015-10-10~45 X-Git-Url: https://pere.pagekite.me/gitweb/text-free-culture-lessig.git/commitdiff_plain/750e0b6ba6c352471f7d1f584dc6ac6ddc6d6337 Add script to check indexterm ranges. --- diff --git a/scripts/verify-indexterm-range b/scripts/verify-indexterm-range new file mode 100755 index 0000000..19a31a1 --- /dev/null +++ b/scripts/verify-indexterm-range @@ -0,0 +1,31 @@ +#!/usr/bin/python +# +# Verify the 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()