Update of /cvsroot/happydoc/HappyDoc/happydoclib/formatter
In directory usw-pr-cvs1:/tmp/cvs-serv7623
Modified Files:
formatter_DocBookX.py
Log Message:
- support for base classes
- every file is valid XML file
- file name extension is applied now
- more documentation (should be even more!)
- clean up
Index: formatter_DocBookX.py
===================================================================
RCS file: /cvsroot/happydoc/HappyDoc/happydoclib/formatter/formatter_DocBookX.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** formatter_DocBookX.py 2001/10/29 12:11:32 1.2
--- formatter_DocBookX.py 2002/01/31 18:38:00 1.3
***************
*** 10,13 ****
--- 10,29 ----
"""XML DocBook formatter.
+
+ All files contains XML and doctype declaration, so
+ every document is a valid XML file. This way, it is possible
+ to use every file separately.
+
+ Every index file indicates a chapter.
+ Every module or class document indicates section.
+
+ It was tested with libxml 2.4.10 and libxslt 1.0.6 (http://xmlsoft.org).
+ Use your favourite XML and XSLT processors with XInclude support.
+
+ Example:
+
+ happydoc -T mstruct -F xmldocbook my_module formatter_encoding=utf-8
+
+ xsltproc --xinclude my_custom_docbook_to_html.xsl my_module/index.docb > my_module.html
"""
***************
*** 72,79 ****
apply(happydoclib.formatter.formatter_xml.XMLFormatter.__init__, \
(self, docset, encoding, index_file_name, file_name_ext), conf)
! self.filename_ext='docb'
self.title=title
#
# XMLFormatter class abstract methods implementation.
--- 88,101 ----
apply(happydoclib.formatter.formatter_xml.XMLFormatter.__init__, \
(self, docset, encoding, index_file_name, file_name_ext), conf)
! self.file_name_ext='docb'
self.title=title
+ self.doctypes={
+ INDEX_FILE: 'chapter',
+ MODULE_FILE: 'section',
+ CLASS_FILE: 'section',
+ }
+
#
# XMLFormatter class abstract methods implementation.
***************
*** 83,91 ****
"""XMLFormatter class abstract method implementation.
"""
if rtype==INDEX_FILE:
if stage==START:
- self.writeRaw('<?xml version="1.0" encoding="%s"?>\n' % self.getEncoding(), output)
- self.writeRaw('<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "file:///usr/share/sgml/docbook/xml-dtd-4.1.2/docbookx.dtd">\n', output)
-
self.tag('chapter', output, {'xmlns:xi': 'http://www.w3.org/2001/XInclude'})
if self.title:
--- 105,114 ----
"""XMLFormatter class abstract method implementation.
"""
+ if stage==START:
+ self.writeRaw('<?xml version="1.0" encoding="%s"?>\n' % self.getEncoding(), output)
+ self.writeRaw('<!DOCTYPE %s PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "file:///usr/share/sgml/docbook/xml-dtd-4.1.2/docbookx.dtd">\n' % self.doctypes[rtype], output)
+
if rtype==INDEX_FILE:
if stage==START:
self.tag('chapter', output, {'xmlns:xi': 'http://www.w3.org/2001/XInclude'})
if self.title:
***************
*** 98,106 ****
"""XMLFormatter class abstract method implementation.
"""
- #if stage==START:
- # self.tag('chapter', output)
- # self.writeTaggedText('title', 'Package %s' % info.getName(), output)
- #elif stage==END:
- # self.endTag('chapter', output)
pass
--- 121,124 ----
***************
*** 202,206 ****
"""XMLFormatter class abstract method implementation.
"""
! pass
--- 220,237 ----
"""XMLFormatter class abstract method implementation.
"""
! if stage==PRE:
! self.tag('para', output)
! self.writeText('Derives from:', output)
! self.tag('itemizedlist', output)
! elif stage==START:
! self.tag('listitem', output)
! self.tag('para', output)
! self.writeText(cinfo, output)
! elif stage==END:
! self.endTag('para', output)
! self.endTag('listitem', output)
! elif stage==POST:
! self.endTag('itemizedlist', output)
! self.endTag('para', output)
***************
*** 237,241 ****
"""XMLFormatter class abstract method implementation.
"""
name='%s/%s#%s' \
! % (package_info.getName(), self.getIndexFileName(), 'xpointer(/chapter/section)')
self.emptyTag('xi:include', output, { 'href': name })
--- 268,278 ----
"""XMLFormatter class abstract method implementation.
"""
+ if package_info.getName():
+ pname=package_info.getName()
+ else:
+ pname=package_info.getFileName()
+
name='%s/%s#%s' \
! % (pname, self.getIndexFileName(), 'xpointer(/chapter/section)')
!
self.emptyTag('xi:include', output, { 'href': name })
|