diff --git a/src/Makefile.am b/src/Makefile.am
index 16cfbf65..6370e2b0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -708,7 +708,7 @@ filters/rclppt.py \
filters/rclps \
filters/rclpst.py \
filters/rclpurple \
-filters/rclpython \
+filters/rclpython.py \
filters/rclrar \
filters/rclrtf.py \
filters/rclscribus \
diff --git a/src/filters/rclpython b/src/filters/rclpython.py
similarity index 79%
rename from src/filters/rclpython
rename to src/filters/rclpython.py
index e1e43dc2..680232b4 100755
--- a/src/filters/rclpython
+++ b/src/filters/rclpython.py
@@ -1,13 +1,9 @@
-#!/usr/bin/env python3
-# -*- coding: iso-8859-1 -*-
-"""
- MoinMoin - Python source parser and colorizer
-"""
+#!/usr/bin/python3
-# Rclpython is verbatim "colorize.py" from:
+# Rclpython is based on "colorize.py" from:
# http://chrisarndt.de/en/software/python/colorize.html
#
-# Based on the code from Jürgen Herman, the following changes where made:
+# Based on the code from Jürgen Herman, the following changes where made:
#
# Mike Brown
\n')
try:
for a,b,c,d,e in tokenize.tokenize(text.readline):
@@ -195,8 +187,8 @@ class Parser:
css_class = _css_classes.get(toktype, 'text')
# send text
- self.out.write(makebytes('' % (css_class,)))
- self.out.write(makebytes(html.escape(toktext)))
+ self.out.write(rclexecm.makebytes('' % (css_class,)))
+ self.out.write(rclexecm.makebytes(html.escape(toktext)))
self.out.write(b'')
@@ -230,23 +222,41 @@ def colorize_file(file=None, outstream=sys.stdout, standalone=True):
source = sourcefile.read()
if standalone:
- outstream.write(makebytes(_HTML_HEADER % {'title': filename}))
+ outstream.write(rclexecm.makebytes(_HTML_HEADER % {'title': filename}))
Parser(source, out=outstream).format()
if standalone:
- outstream.write(makebytes(_HTML_FOOTER))
+ outstream.write(rclexecm.makebytes(_HTML_FOOTER))
if file:
sourcefile.close()
-if __name__ == "__main__":
- import os
- out = sys.stdout.buffer
- if os.environ.get('PATH_TRANSLATED'):
- filepath = os.environ.get('PATH_TRANSLATED')
- print('Content-Type: text/html; charset="iso-8859-1"\n')
- colorize_file(filepath, out)
- elif len(sys.argv) > 1:
- filepath = sys.argv[1]
- colorize_file(filepath, out)
- else:
- colorize_file()
+
+def _htmlwrapplain(txt, title=b"", charset=b"utf-8"):
+ return \
+ b'\n\n' + \
+ title + \
+ b' \n' + \
+ b'\n' + \
+ b'\n\n' + \
+ rclexecm.htmlescape(txt) + \
+ b'
\n\n\n'
+
+class PythonDump(RclBaseHandler):
+ def __init__(self, em):
+ super(PythonDump, self).__init__(em)
+
+ def html_text(self, fn):
+ preview = os.environ.get("RECOLL_FILTER_FORPREVIEW", "no")
+ if preview == "yes":
+ out = io.BytesIO()
+ colorize_file(fn, out)
+ return out.getvalue()
+ else:
+ return _htmlwrapplain(open(fn, 'rb').read())
+
+if __name__ == '__main__':
+ proto = rclexecm.RclExecM()
+ extract = PythonDump(proto)
+ rclexecm.main(proto, extract)