[Lxml-checkins] r54106 - in lxml/trunk: . doc

scoder at codespeak.net scoder at codespeak.net
Thu Apr 24 22:04:23 CEST 2008


Author: scoder
Date: Thu Apr 24 22:04:22 2008
New Revision: 54106

Modified:
   lxml/trunk/   (props changed)
   lxml/trunk/doc/mklatex.py
Log:
 r4057 at delle:  sbehnel | 2008-04-24 10:50:47 +0200
 doc PDF: move changelog and API docs into appendix, some simplification in mklatex.py


Modified: lxml/trunk/doc/mklatex.py
==============================================================================
--- lxml/trunk/doc/mklatex.py	(original)
+++ lxml/trunk/doc/mklatex.py	Thu Apr 24 22:04:22 2008
@@ -2,7 +2,7 @@
 # Testing:
 #    python mklatex.py latex .. 1.0
 
-from docstructure import SITE_STRUCTURE, HREF_MAP, BASENAME_MAP
+from docstructure import SITE_STRUCTURE, BASENAME_MAP
 import os, shutil, re, sys, datetime
 
 try:
@@ -34,10 +34,6 @@
 replace_epydoc_macros = re.compile(r'(,\s*amssymb|dvips\s*,\s*)').sub
 replace_rst_macros = re.compile(r'(\\usepackage\{color}|\\usepackage\[[^]]*]\{hyperref})').sub
 
-FILENAME_MAP = {
-    "@API reference" : "api.tex"
-}
-
 BASENAME_MAP = BASENAME_MAP.copy()
 BASENAME_MAP.update({'api' : 'lxmlapi'})
 
@@ -173,10 +169,6 @@
 
     shutil.copy(pubkey, dirname)
 
-    href_map = HREF_MAP.copy()
-    changelog_basename = 'changes-%s' % release
-    href_map['Release Changelog'] = changelog_basename + '.tex'
-
     # build pygments macros
     build_pygments_macros(os.path.join(dirname, '_part_pygments.tex'))
 
@@ -209,33 +201,20 @@
     have_epydoc_macros = False
     for section, text_files in SITE_STRUCTURE:
         for filename in text_files:
-            special = False
-            if filename in FILENAME_MAP:
-                outname = FILENAME_MAP[filename]
-                if not have_epydoc_macros:
-                    have_epydoc_macros = True
-                    copy_epydoc_macros(
-                        os.path.join(dirname, outname),
-                        os.path.join(dirname, '_part_epydoc.tex'),
-                        set(header))
-                special = True
-            elif filename.startswith('@'):
-                print "Not yet implemented: %s" % filename[1:]
+            if filename.startswith('@'):
                 continue
                 #page_title = filename[1:]
                 #url = href_map[page_title]
                 #build_menu_entry(page_title, url, section_head)
-            else:
-                basename = os.path.splitext(os.path.basename(filename))[0]
-                basename = BASENAME_MAP.get(basename, basename)
-                outname = basename + '.tex'
-            
+
+            basename = os.path.splitext(os.path.basename(filename))[0]
+            basename = BASENAME_MAP.get(basename, basename)
+            outname = basename + '.tex'
             outpath = os.path.join(dirname, outname)
-            print "Creating %s" % outname
+            path = os.path.join(doc_dir, filename)
 
-            if not special:
-                path = os.path.join(doc_dir, filename)
-                rest2latex(script, path, outpath)
+            print "Creating %s" % outname
+            rest2latex(script, path, outpath)
 
             final_name = os.path.join(dirname, os.path.dirname(outname),
                                       "_part_%s" % os.path.basename(outname))
@@ -247,7 +226,19 @@
                 header = hd
             titles[outname] = title
 
-    # also convert CHANGES.txt
+    # integrate generated API docs
+
+    print "Integrating API docs"
+    apidocsname = 'api.tex'
+    apipath = os.path.join(dirname, apidocsname)
+    tex_postprocess(apipath, os.path.join(dirname, "_part_%s" % apidocsname),
+                    process_line=fix_relative_hyperrefs)
+    copy_epydoc_macros(apipath, os.path.join(dirname, '_part_epydoc.tex'),
+                       set(header))
+
+    # convert CHANGES.txt
+
+    print "Integrating ChangeLog"
     find_version_title = re.compile(
         r'(.*\\section\{)([0-9][^\} ]*)\s+\(([^)]+)\)(\}.*)').search
     def fix_changelog(line):
@@ -294,9 +285,7 @@
     for section, text_files in SITE_STRUCTURE:
         master.write("\n\n\\part{%s}\n" % section)
         for filename in text_files:
-            if filename in FILENAME_MAP:
-                outname = FILENAME_MAP[filename]
-            elif filename.startswith('@'):
+            if filename.startswith('@'):
                 continue
                 #print "Not yet implemented: %s" % filename[1:]
                 #page_title = filename[1:]
@@ -308,8 +297,13 @@
                 outname = basename + '.tex'
             write_chapter(master, titles[outname], outname)
 
+    master.write("\\appendix\n")
+    master.write("\\begin{appendix}\n")
+
     write_chapter(master, "Changes", chgname)
+    write_chapter(master, "Generated API documentation", apidocsname)
 
+    master.write("\\end{appendix}\n")
     master.write("\\end{document}\n")
                 
 if __name__ == '__main__':


More information about the lxml-checkins mailing list