mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-23 15:40:14 +08:00
a9d2d7baae
../newlib/libc/libc.xml:22242: element refentry: validity error : ID iconv already defined <refentry id="iconv"> Use a separate namespace for chaper ids, to avoid collision between the ids for the chapter and function 'iconv', now that iconv documentation is generated unconditionally.
46 lines
1.5 KiB
Python
Executable File
46 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# python script to convert the handwritten chapter .texi files, which include
|
|
# the generated files for each function, to DocBook XML
|
|
#
|
|
# all we care about is the content of the refentries, so all this needs to do is
|
|
# convert the @include of the makedoc generated .def files to xi:include of the
|
|
# makedocbook generated .xml files.
|
|
#
|
|
|
|
from __future__ import print_function
|
|
import sys
|
|
import re
|
|
|
|
def main():
|
|
first_node = True
|
|
|
|
print ('<?xml version="1.0" encoding="UTF-8"?>')
|
|
print ('<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">')
|
|
|
|
for l in sys.stdin.readlines():
|
|
l = l.rstrip()
|
|
|
|
# transform @file{foo} to <filename>foo</filename>
|
|
l = re.sub("@file{(.*?)}", "<filename>\\1</filename>", l)
|
|
|
|
if l.startswith("@node"):
|
|
l = l.replace("@node", "", 1)
|
|
l = l.strip()
|
|
l = l.lower()
|
|
if first_node:
|
|
print ('<chapter id="%s_chapter" xmlns:xi="http://www.w3.org/2001/XInclude">' % l.replace(' ', '_'))
|
|
first_node = False
|
|
elif l.startswith("@chapter "):
|
|
l = l.replace("@chapter ", "", 1)
|
|
print ('<title>%s</title>' % l)
|
|
elif l.startswith("@include "):
|
|
l = l.replace("@include ", "", 1)
|
|
l = l.replace(".def", ".xml", 1)
|
|
print ('<xi:include href="%s"/>' % l.strip())
|
|
|
|
print ('</chapter>')
|
|
|
|
if __name__ == "__main__" :
|
|
main()
|