[library-web] extract title and description from Mallard documents



commit cc0a5ad77ea248540ade701d95ba06d42858478b
Author: Frédéric Péters <fpeters 0d be>
Date:   Sun Jan 26 11:43:35 2014 +0000

    extract title and description from Mallard documents

 src/modtypes/mallard.py |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/src/modtypes/mallard.py b/src/modtypes/mallard.py
index 2cc43c3..056c67c 100644
--- a/src/modtypes/mallard.py
+++ b/src/modtypes/mallard.py
@@ -49,6 +49,7 @@ class MallardPage:
     id = None
     link_title = None
     sort_title = None
+    desc = None
     info_nodes = None
     sections = None
 
@@ -86,6 +87,15 @@ class MallardPage:
                              'link_title': dup_node(title_tag),
                              'sort_title': dup_node(title_tag)})
 
+        desc_tag = tree.find('//{%s}desc' % MAL_NS)
+        if desc_tag is not None:
+            desc = [desc_tag.text]
+            for child in desc_tag.getchildren():
+                desc.append(child.text)
+                desc.append(child.tail)
+            desc.append(desc_tag.tail)
+            self.desc = ''.join([x for x in desc if x])
+
     def page_info(self, element):
         if element is None:
             return
@@ -280,6 +290,14 @@ class MallardModule(DocModule):
             else:
                 mtime = 0
 
+            index_doc_page = os.path.join(lang_dirname, 'index.page')
+            if os.path.exists(index_doc_page):
+                mallard_page = MallardPage(index_doc_page)
+                if mallard_page.link_title is not None:
+                    doc.title[lang] = mallard_page.link_title.text
+                if mallard_page.desc is not None:
+                    doc.abstract[lang] = mallard_page.desc
+
             if mtime > max(self.mtime_tarball, self.mtime_xslt_files):
                 logging.debug('using already generated doc (lang: %s)' % lang)
                 continue


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]