Mercurial > hg > Members > kono > nitros9-code
changeset 993:57b5e715a417
The make_hp_files.py is a script to extract help (.HP) files from refentries
in DocBook. Can be used for validation etc.
Look inside for how to use it.
author | roug |
---|---|
date | Sun, 23 Feb 2003 16:33:24 +0000 |
parents | 1b5656126ac6 |
children | bef1844de0dc |
files | docs/ccguide/sleep.refentry docs/make_hp_files.py |
diffstat | 2 files changed, 115 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/ccguide/sleep.refentry Sun Feb 23 14:53:55 2003 +0000 +++ b/docs/ccguide/sleep.refentry Sun Feb 23 16:33:24 2003 +0000 @@ -8,7 +8,7 @@ <funcsynopsis> <funcprototype> <funcdef><function>sleep</function></funcdef> - <paramdef>seconds <parameter>seconds</parameter></paramdef> + <paramdef>int <parameter>seconds</parameter></paramdef> </funcprototype> </funcsynopsis> </refsynopsisdiv>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/make_hp_files.py Sun Feb 23 16:33:24 2003 +0000 @@ -0,0 +1,114 @@ +#!/usr/bin/env python +# This script is an attempt to build help-files from Docbook sources +# (It is not finished) +# You call it as: +# ./make_hp_files.py os9guide/os9guide.docbook +# ./make_hp_files.py ccguide/ccguide.docbook +# +# It requires: +# Python 2.0 or later +# +# Author: Soren Roug +# +from sys import argv +import string +from xml.sax import make_parser,handler +import sys +#from types import * + +class HandleParsing(handler.ContentHandler): + """Parse a Docbook file""" + + def __init__(self): + self.__data = '' + + def printdata(self): + print self.__data + self.__data = '' + +#<funcsynopsis> +#<funcprototype> +#<funcdef>char *<function>mktemp</function></funcdef> +# <paramdef>char *<parameter>name</parameter></paramdef> +#</funcprototype> + + def startElement(self, tag, attrs): + if tag == 'refname': + self.__data = '@' + + elif tag == 'funcprototype': + self.__data = '' + + elif tag == 'cmdsynopsis': + self.__data = 'Syntax: ' + + elif tag == 'arg': + self.optional = 0 + if attrs.has_key('choice') and attrs['choice'] == "opt": + self.optional = 1 + self.__data += '[' + + elif tag == 'replaceable': + self.__data += '<' + elif tag in ('parameter','paramdef','funcdef','function', + 'command','option'): + pass + else: + self.__data = '' + + def endElement(self, tag): + if tag == 'funcdef': + self.__data += '()\n' + + elif tag == 'paramdef': + self.__data += ';\n' + + elif tag == 'funcprototype': + self.printdata() + + elif tag == 'refname': + self.printdata() + + elif tag == 'refpurpose': + self.purpose = self.__data + + elif tag == 'refentry': + print "Usage: %s" % self.purpose + + elif tag == 'arg': + if self.optional == 1: + self.__data += ']' + self.optional = 0 + + elif tag == 'cmdsynopsis': + self.printdata() + + elif tag == 'replaceable': + self.__data += '>' + + def characters(self, text): + if not text == '\n': + self.__data += text + +# def handle_charref(self,ref): +# self.handle_data('&#' + ref + ';') + +# def unknown_entityref(self,ref): +# self.handle_data('&' + ref + ';') + +# def syntax_error(self,message): +# pass + +#----------- +parser = make_parser() +chandler = HandleParsing() +parser.setContentHandler(chandler) + +for file in argv[1:]: + f = open(file) + if not f: + raise IOError, "Failure in open %s" % file + parser.parse(f) + f.close() + +