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