diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-09-01 09:51:27 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-10-16 11:07:30 -0500 |
commit | 61173c1b58efa79c0ba6b08348d2796a249d0186 (patch) | |
tree | 00ebf544db18942e2a1ecfc5e5fa16931127d38f /wiki-to-help/mwlib_mods/docbook_internLinks.py | |
parent | 3dc2e7497f1798ae4ff6c5c8c562666bc10a393c (diff) |
move help structure one directory up
Change-Id: Ie970e39fbb6795a92d9fdd13510409d7dcd071bc
Diffstat (limited to 'wiki-to-help/mwlib_mods/docbook_internLinks.py')
-rw-r--r-- | wiki-to-help/mwlib_mods/docbook_internLinks.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/wiki-to-help/mwlib_mods/docbook_internLinks.py b/wiki-to-help/mwlib_mods/docbook_internLinks.py new file mode 100644 index 0000000000..2d22edd164 --- /dev/null +++ b/wiki-to-help/mwlib_mods/docbook_internLinks.py @@ -0,0 +1,76 @@ +""" +This enables the conversion of article links to internal links within the docbook output. +Usage: + import docbook_internLinks + docbook_internLinks.apply() +Requires: + docbook_grammar + +Author: Timo Richter +""" + +## Set up nuwiki.adapt +import mwlib.nuwiki +class MyAdapt(mwlib.nuwiki.adapt): + def getParsedArticle(self, title, revision=None): + """ Add the original title to the attributes of each article """ + a = super(MyAdapt,self).getParsedArticle(title,revision) + if a: + a.title = title + return a + def getURL(self, name, revision=None, defaultns=None): + """ Returns raw link targets """ + return name + +def setupAdapt(): + mwlib.nuwiki.adapt = MyAdapt + + +## Set up docbookwriter +import mwlib.docbookwriter +#import lxml.etree +Element = mwlib.docbookwriter.Element +SubElement = mwlib.docbookwriter.SubElement +class MyDocBookWriter(mwlib.docbookwriter.DocBookWriter): + def getTargetId(self,title): + """ Transform "The first article" to "The_first_article" """ + # See mwlib.zipwiki.normalize_title() + return title.replace(" ","_") + + def dbwriteArticle(self, a): + """ + Add id-attribute with original title to all articles. + <article id="a.title"> + """ + e = super(MyDocBookWriter,self).dbwriteArticle(a) + targetId = self.getTargetId(a.title) + e.set("id",targetId) + return e + + def dbwriteArticleLink(self, obj): + a = Element("link") + if obj.target: + a.set("linkend", obj.target) + if not obj.children: + a.text = obj.target + return a + #dbwriteLink = dbwriteURL + #dbwriteNamedURL = dbwriteURL + #dbwriteSpecialLink = dbwriteURL + #dbwriteCategoryLink = dbwriteURL + #dbwriteLangLink = dbwriteURL + #dbwriteArticleLink = dbwriteLink + #dbwriteLangLink = dbwriteLink # FIXME + #dbwriteNamespaceLink = dbwriteLink# FIXME + #dbwriteInterwikiLink = dbwriteLink# FIXME + #dbwriteSpecialLink = dbwriteLink# FIXME + +def setupDocBookWriter(): + mwlib.docbookwriter.DocBookWriter = MyDocBookWriter + +def apply(): + setupAdapt() + #setupGrammar() + setupDocBookWriter() + + |