Kamil Kisiel avatar Kamil Kisiel committed b847611

Initial commit of TracMathJaxPlugin. Basic functionality works.

Comments (0)

Files changed (4)

+^.*.egg-info$
+^.*\.pyc$
+^.*\.pyo$
+from setuptools import find_packages, setup
+
+setup(
+    name='TracMathJax', version='0.1',
+    author="Kamil Kisiel",
+    author_email="kamil@kamilkisiel.net",
+    packages=find_packages(exclude=['*.tests*']),
+    entry_points="""
+    [trac.plugins]
+    tracmathjax = tracmathjax
+    """,
+)

tracmathjax/__init__.py

+from tracmathjax import *

tracmathjax/tracmathjax.py

+from trac.core import Component, implements
+from trac.web.api import IRequestFilter
+from trac.web.chrome import ITemplateProvider, add_script
+
+class TracMathJax(Component):
+    implements(ITemplateProvider, IRequestFilter)
+
+    # ITemplateProvider methods
+    def get_htdocs_dirs(self):
+        mathjax_path = self.config.get('tracmathjax', 'mathjax_path')
+        self.log.debug("MathJax path: %s" % mathjax_path)
+        return [("MathJax", mathjax_path)]
+
+    def get_templates_dirs(self):
+        # we have no templates
+        return []
+
+    # IRequestFilter methods
+    def pre_process_request(self, req, handler):
+        return handler
+
+    def post_process_request(self, req, template, data, content_type):
+        add_script(req, "/chrome/MathJax/MathJax.js")
+        return template, data, content_type
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.