]> granicus.if.org Git - zziplib/commitdiff
overview
authorGuido Draheim <guidod@gmx.de>
Mon, 18 Sep 2006 10:03:38 +0000 (10:03 +0000)
committerGuido Draheim <guidod@gmx.de>
Mon, 18 Sep 2006 10:03:38 +0000 (10:03 +0000)
 (docs/)

docs/makedocs.py
docs/zzipdoc/functionlistreference.py

index e6586c214bd13cc13bd8c3a223aa009dae903d26..07718703254eff639c418abbb947961aebb2aa91 100644 (file)
@@ -12,6 +12,8 @@ from zzipdoc.dbk2htm import *
 
 def _src_to_xml(text):
     return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
+def _email_to_xml(text):
+    return text & Match("<([^<>]*@[^<>]*)>") >> "&lt;\\1&gt;"
 
 class PerFileEntry:
     def __init__(self, header, comment):
@@ -218,8 +220,9 @@ class RefEntryManualPageAdapter:
             if entry:
                 comment = entry.filecomment.xml_text()
         if comment:
-            check = Match(r"(?s)<para>\s*[Aa]uthors*\b:*((?:.(?!</para>))*.)</para>")
-            if comment & check: return _src_to_xml(check[1])
+            check = Match(r"(?s)<para>\s*[Aa]uthors*\b:*"
+                          r"((?:.(?!</para>))*.)</para>")
+            if comment & check: return _email_to_xml(check[1])
         return None
     def get_copyright(self):
         comment = None
@@ -228,8 +231,9 @@ class RefEntryManualPageAdapter:
             if entry:
                 comment = entry.filecomment.xml_text()
         if comment:
-            check = Match(r"(?s)<para>\s*[Cc]opyright\b((?:.(?!</para>))*.)</para>")
-            if comment & check: return check[0]
+            check = Match(r"(?s)<para>\s*[Cc]opyright\b"
+                          r"((?:.(?!</para>))*.)</para>")
+            if comment & check: return _email_to_xml(check[0])
         return None
 
 def makedocs(filenames, o):
@@ -293,6 +297,7 @@ def makedocs(filenames, o):
                                          & func_adapter.src_mainheader()):
                     continue
             man3.add(func_adapter)
+            man3.add_overview(func_adapter)
         man3.cut()
     man3.cut()
     man3_filename = "zziplib"+o.suffix+".docbook"
index 61524f3580ee86dc60beb373b23b0dadeaf09fc4..ec94840df956696a99f493b126eb33822f75ad53 100644 (file)
@@ -1,6 +1,9 @@
 from match import Match
 from htm2dbk import *
 
+def _to_word(text):
+    return text & Match("[^\w]+") >> "_"
+
 class FunctionListReference:
     """ Creating a docbook-style <reference> list of <refentry> parts
     that will each be translated into a unix manual page in a second step """
@@ -13,6 +16,7 @@ class FunctionListReference:
         self.o = o
         self.pages = []
         self.entry = None
+        self.overview = None
     def cut(self):
         if not self.entry: return
         self.pages += [ self.entry ]
@@ -34,11 +38,26 @@ class FunctionListReference:
             for item in entry.list_seealso():
                 if item not in self.entry.seealso_list:
                     self.entry.seealso_list += [ item ]
+    def add_overview(self, entry):
+        if self.overview is None:
+            title = entry.get_mainheader() & Match(".*&lt;(.*)&gt;.*") >> "\\1"
+            self.overview = FunctionListRefEntry(entry, self.o)
+            self.overview.funcsynopsisinfo = entry.get_mainheader()
+            self.overview.refpurpose = self.o.package.strip()
+            self.overview.refentrytitle = title
+            self.overview.refname = _to_word(title)
+        description = entry.get_title().strip() & Match("^[.]+") >> ""
+        funcsynopsis = entry.head_xml_text()
+        self.overview.funcsynopsis_list += [ funcsynopsis ]
+        if description:
+            self.overview.description_list += [
+                "<para> - "+ description +"</para>" ]
     def xml_text(self):
         T = self.doctype
         T += "<reference><title>"+self.o.package+" Function List</title>\n"
         for item in self.pages:
             T += self.sane(item.refentry_text())
+        T += self.sane(self.overview.refentry_text())
         T += "</reference>\n"
         return T
     def sane(self, text):