Alec Thomas wrote:
Hi,

I've written a quick and dirty plugin for browsing Python documentation
through Trac:

    http://trac-hacks.swapoff.org/wiki/PyDocPlugin

It even retains the spectacular colour scheme of pydoc's HTML interface.

Alec

That's great. A couple of comments:
* The "Python Documentation" text in the navbar takes too much space, IMO.
  This could be simply "PyDoc"
* The default color scheme is really ... terrible.

Hence a quick patch:




Index: tracpydoc/tracpydoc.py
===================================================================
--- tracpydoc/tracpydoc.py      (revision 279)
+++ tracpydoc/tracpydoc.py      (working copy)
@@ -7,6 +7,7 @@
 from trac.wiki import IWikiSyntaxProvider
 import urllib
 import pydoc
+import re
 
 try:
     from trac.util import Markup
@@ -14,6 +15,9 @@
     def Markup(markup): return markup
 
 class TracDoc(pydoc.HTMLDoc):
+
+    _cleanup_re = re.compile(r'(?:bg)?color="[^"]+"')
+    
     def __init__(self, env):
         self.env = env
 
@@ -40,6 +44,20 @@
             links.append('<a href="%s">%s</a>' % 
(self.env.href.pydoc('.'.join(sofar)), mod))
         return '.'.join(links)
 
+    def heading(self, *args):
+        return self._cleanup('heading', *args)
+        
+    def section(self, *args):
+        return self._cleanup('section', *args)
+
+    def grey(self, *args):
+        return self._cleanup('grey', *args)
+
+    def _cleanup(self, kind, *args):
+        return re.sub(self._cleanup_re, 'class="pydoc%s"'% kind,
+                      getattr(pydoc.HTMLDoc, kind)(self, *args))
+    
+
 class TracPyDocPlugin(Component):
     implements(INavigationContributor, ITemplateProvider, IRequestHandler, 
IWikiSyntaxProvider)
 
@@ -74,7 +92,7 @@
         return 'pydoc'
                 
     def get_navigation_items(self, req):
-        yield 'mainnav', 'pydoc', Markup('<a href="%s">Python 
Documentation</a>' \
+        yield 'mainnav', 'pydoc', Markup('<a href="%s">PyDoc</a>' \
                                   % escape(self.env.href.pydoc()))
 
     # IRequestHandler methods
Index: tracpydoc/htdocs/css/pydoc.css
===================================================================
--- tracpydoc/htdocs/css/pydoc.css      (revision 279)
+++ tracpydoc/htdocs/css/pydoc.css      (working copy)
@@ -1 +1,5 @@
 /* Your CSS goes here */
+
+.pydocheading { background-color: #fff; }
+.pydocsection { background-color: #f6f6f6; }
+.pydocgrey { color: grey; }
_______________________________________________
Trac mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac

Reply via email to