[Python-modules-commits] [python-odf] 13/118: Plugins for Trac

Wolfgang Borgert debacle at moszumanska.debian.org
Fri Oct 3 21:27:16 UTC 2014


This is an automated email from the git hooks/post-receive script.

debacle pushed a commit to reference refs/remotes/upstream/master
in repository python-odf.

commit 54a0c75d9fc3915b6686745cdcddd7256ca0f7f5
Author: Søren Roug <soren.roug at eea.europa.eu>
Date:   Tue Nov 25 21:30:18 2008 +0000

    Plugins for Trac
---
 contrib/odfrenderer/0.10/odfrenderer/__init__.py   |  1 +
 .../odfrenderer/0.10/odfrenderer/odfrenderer.py    | 52 ++++++++++++++++++++++
 contrib/odfrenderer/0.10/setup.py                  | 13 ++++++
 contrib/odftohtmlplugin/0.10/odftohtml/__init__.py |  1 +
 .../odftohtmlplugin/0.10/odftohtml/odftohtml.py    | 22 +++++++++
 contrib/odftohtmlplugin/0.10/setup.py              | 13 ++++++
 6 files changed, 102 insertions(+)

diff --git a/contrib/odfrenderer/0.10/odfrenderer/__init__.py b/contrib/odfrenderer/0.10/odfrenderer/__init__.py
new file mode 100644
index 0000000..9dfb7c5
--- /dev/null
+++ b/contrib/odfrenderer/0.10/odfrenderer/__init__.py
@@ -0,0 +1 @@
+from odfrenderer import *
diff --git a/contrib/odfrenderer/0.10/odfrenderer/odfrenderer.py b/contrib/odfrenderer/0.10/odfrenderer/odfrenderer.py
new file mode 100644
index 0000000..cd87478
--- /dev/null
+++ b/contrib/odfrenderer/0.10/odfrenderer/odfrenderer.py
@@ -0,0 +1,52 @@
+from trac.core import *
+from trac.mimeview.api import IHTMLPreviewRenderer
+import os
+from tempfile import mkstemp
+from odf.odf2xhtml import ODF2XHTML
+
+class OdfRenderer(Component):
+    """Display OpenDocument as HTML."""
+    implements(IHTMLPreviewRenderer)
+
+    def get_quality_ratio(self, mimetype):
+        self.env.log.debug('Trac checking for %s' % mimetype)
+        if mimetype in ('application/vnd.oasis.opendocument.text',
+            'application/vnd.oasis.opendocument.text-template',
+            'application/vnd.oasis.opendocument.spreadsheet',
+            'application/vnd.oasis.opendocument.presentation'):
+            return 7
+        return 0
+
+    def render(self, req, input_type, content, filename=None, url=None):
+        self.env.log.debug('HTML output for ODF')
+        odhandler = ODF2XHTML()
+        hfile, hfilename = mkstemp('tracodf')
+        if hasattr(content,'read'):
+            os.write(hfile, content.read())
+        else:
+            os.write(hfile, content)
+        os.close(hfile)
+        out = odhandler.odf2xhtml(hfilename).encode('us-ascii','xmlcharrefreplace')
+        os.unlink(hfilename)
+        if out != '':
+            return out
+        return "<h1>HTML preview failed</h1>"
+
+#   def render(self, req, input_type, content, filename=None, url=None):
+#       self.env.log.debug('HTML output for ODF')
+#       hfilename = None
+#       odhandler = ODF2XHTML()
+#       if filename is not None:
+#           infile = filename
+#       else:
+#           hfile, hfilename = mkstemp('tracodf')
+#           if hasattr(content,'read'):
+#               os.write(hfile, content.read())
+#           else:
+#               os.write(hfile, content)
+#           os.close(hfile)
+#           infile = hfilename
+#       out = odhandler.odf2xhtml(infile).encode('us-ascii','xmlcharrefreplace')
+#       if hfilename is not None:
+#           os.unlink(hfilename)
+#       return out
diff --git a/contrib/odfrenderer/0.10/setup.py b/contrib/odfrenderer/0.10/setup.py
new file mode 100644
index 0000000..a12405e
--- /dev/null
+++ b/contrib/odfrenderer/0.10/setup.py
@@ -0,0 +1,13 @@
+from setuptools import setup
+
+PACKAGE = 'OdfRenderer'
+VERSION = '0.1'
+
+setup(name='OdfRenderer',
+      version='0.1',
+      packages=['odfrenderer'],
+      author='Soren Roug',
+      author_email='soren.roug at eea.europa.eu',
+      description='A plugin for viewing ODF pages as HTML',
+      url='http://trac-hacks.org/wiki/OdfRenderer',
+      entry_points={'trac.plugins': ['odfrenderer.odfrenderer=odfrenderer.odfrenderer']})
diff --git a/contrib/odftohtmlplugin/0.10/odftohtml/__init__.py b/contrib/odftohtmlplugin/0.10/odftohtml/__init__.py
new file mode 100644
index 0000000..6dc51bf
--- /dev/null
+++ b/contrib/odftohtmlplugin/0.10/odftohtml/__init__.py
@@ -0,0 +1 @@
+from odftohtml import *
diff --git a/contrib/odftohtmlplugin/0.10/odftohtml/odftohtml.py b/contrib/odftohtmlplugin/0.10/odftohtml/odftohtml.py
new file mode 100644
index 0000000..272e2d5
--- /dev/null
+++ b/contrib/odftohtmlplugin/0.10/odftohtml/odftohtml.py
@@ -0,0 +1,22 @@
+from trac.core import *
+from trac.mimeview.api import IContentConverter
+import os
+import re
+from odf.odf2xhtml import ODF2XHTML
+
+class OdfToHtmlConverter(Component):
+    """Convert OpenDocument to HTML."""
+    implements(IContentConverter)
+
+    # IContentConverter methods
+    def get_supported_conversions(self):
+        yield ('odt', 'OpenDocument Text', 'odt', 'application/vnd.oasis.opendocument.text', 'text/html', 7)
+        yield ('ott', 'OpenDocument Text', 'ott', 'application/vnd.oasis.opendocument.text-template', 'text/html', 7)
+        yield ('ods', 'OpenDocument Spreadsheet', 'ods', 'application/vnd.oasis.opendocument.spreadsheet', 'text/html', 7)
+        yield ('odp', 'OpenDocument Presentation', 'odp', 'application/vnd.oasis.opendocument.presentation', 'text/html', 7)
+
+    def convert_content(self, req, input_type, source, output_type):
+        odhandler = ODF2XHTML()
+        out = odhandler.odf2xhtml(source).encode('us-ascii','xmlcharrefreplace')
+        self.env.log.debug('HTML output for ODF')
+        return (out, 'text/html')
diff --git a/contrib/odftohtmlplugin/0.10/setup.py b/contrib/odftohtmlplugin/0.10/setup.py
new file mode 100644
index 0000000..917e40e
--- /dev/null
+++ b/contrib/odftohtmlplugin/0.10/setup.py
@@ -0,0 +1,13 @@
+from setuptools import setup
+
+PACKAGE = 'OdfToHtml'
+VERSION = '0.1'
+
+setup(name='OdfToHtml',
+      version='0.1',
+      packages=['odftohtml'],
+      author='Soren Roug',
+      author_email='soren.roug at eea.europa.eu',
+      description='A plugin for viewing ODF pages as HTML',
+      url='http://trac-hacks.org/wiki/OdfToHtmlConverter',
+      entry_points={'trac.plugins': ['odftohtml.odftohtml=odftohtml.odftohtml']})

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-odf.git



More information about the Python-modules-commits mailing list