summaryrefslogtreecommitdiffstats
path: root/src/tools/docmaker/docmaker.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/docmaker/docmaker.py')
-rw-r--r--src/tools/docmaker/docmaker.py107
1 files changed, 107 insertions, 0 deletions
diff --git a/src/tools/docmaker/docmaker.py b/src/tools/docmaker/docmaker.py
new file mode 100644
index 0000000..d34b6e8
--- /dev/null
+++ b/src/tools/docmaker/docmaker.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python
+#
+# DocMaker (c) 2002, 2004 David Turner <david@freetype.org>
+#
+# This program is a re-write of the original DocMaker took used
+# to generate the API Reference of the FreeType font engine
+# by converting in-source comments into structured HTML.
+#
+# This new version is capable of outputting XML data, as well
+# as accepts more liberal formatting options.
+#
+# It also uses regular expression matching and substitution
+# to speed things significantly.
+#
+
+from sources import *
+from content import *
+from utils import *
+from formatter import *
+from tohtml import *
+
+import utils
+
+import sys, os, time, string, glob, getopt
+
+
+def usage():
+ print "\nDocMaker Usage information\n"
+ print " docmaker [options] file1 [ file2 ... ]\n"
+ print "using the following options:\n"
+ print " -h : print this page"
+ print " -t : set project title, as in '-t \"My Project\"'"
+ print " -o : set output directory, as in '-o mydir'"
+ print " -p : set documentation prefix, as in '-p ft2'"
+ print ""
+ print " --title : same as -t, as in '--title=\"My Project\"'"
+ print " --output : same as -o, as in '--output=mydir'"
+ print " --prefix : same as -p, as in '--prefix=ft2'"
+
+
+def main( argv ):
+ """main program loop"""
+
+ global output_dir
+
+ try:
+ opts, args = getopt.getopt( sys.argv[1:],
+ "ht:o:p:",
+ [ "help", "title=", "output=", "prefix=" ] )
+
+ except getopt.GetoptError:
+ usage()
+ sys.exit( 2 )
+
+ if args == []:
+ usage()
+ sys.exit( 1 )
+
+ # process options
+ #
+ project_title = "Project"
+ project_prefix = None
+ output_dir = None
+
+ for opt in opts:
+ if opt[0] in ( "-h", "--help" ):
+ usage()
+ sys.exit( 0 )
+
+ if opt[0] in ( "-t", "--title" ):
+ project_title = opt[1]
+
+ if opt[0] in ( "-o", "--output" ):
+ utils.output_dir = opt[1]
+
+ if opt[0] in ( "-p", "--prefix" ):
+ project_prefix = opt[1]
+
+ check_output( )
+
+ # create context and processor
+ source_processor = SourceProcessor()
+ content_processor = ContentProcessor()
+
+ # retrieve the list of files to process
+ file_list = make_file_list( args )
+ for filename in file_list:
+ source_processor.parse_file( filename )
+ content_processor.parse_sources( source_processor )
+
+ # process sections
+ content_processor.finish()
+
+ formatter = HtmlFormatter( content_processor, project_title, project_prefix )
+
+ formatter.toc_dump()
+ formatter.index_dump()
+ formatter.section_dump_all()
+
+
+# if called from the command line
+#
+if __name__ == '__main__':
+ main( sys.argv )
+
+
+# eof