diff --git a/rhodecode/lib/helpers.py b/rhodecode/lib/helpers.py
--- a/rhodecode/lib/helpers.py
+++ b/rhodecode/lib/helpers.py
@@ -5,6 +5,7 @@ available to Controllers. This module is
"""
import random
import hashlib
+import StringIO
from pygments.formatters import HtmlFormatter
from pygments import highlight as code_highlight
from pylons import url, app_globals as g
@@ -217,6 +218,8 @@ class _FilesBreadCrumbs(object):
files_breadcrumbs = _FilesBreadCrumbs()
class CodeHtmlFormatter(HtmlFormatter):
+ """My code Html Formatter for source codes
+ """
def wrap(self, source, outfile):
return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
@@ -224,8 +227,72 @@ class CodeHtmlFormatter(HtmlFormatter):
def _wrap_code(self, source):
for cnt, it in enumerate(source):
i, t = it
- t = '
%s
' % (cnt + 1, t)
+ t = '%s
' % (cnt + 1, t)
yield i, t
+
+ def _wrap_tablelinenos(self, inner):
+ dummyoutfile = StringIO.StringIO()
+ lncount = 0
+ for t, line in inner:
+ if t:
+ lncount += 1
+ dummyoutfile.write(line)
+
+ fl = self.linenostart
+ mw = len(str(lncount + fl - 1))
+ sp = self.linenospecial
+ st = self.linenostep
+ la = self.lineanchors
+ aln = self.anchorlinenos
+ nocls = self.noclasses
+ if sp:
+ lines = []
+
+ for i in range(fl, fl + lncount):
+ if i % st == 0:
+ if i % sp == 0:
+ if aln:
+ lines.append('%*d' %
+ (la, i, mw, i))
+ else:
+ lines.append('%*d' % (mw, i))
+ else:
+ if aln:
+ lines.append('%*d' % (la, i, mw, i))
+ else:
+ lines.append('%*d' % (mw, i))
+ else:
+ lines.append('')
+ ls = '\n'.join(lines)
+ else:
+ lines = []
+ for i in range(fl, fl + lncount):
+ if i % st == 0:
+ if aln:
+ lines.append('%*d' % (la, i, mw, i))
+ else:
+ lines.append('%*d' % (mw, i))
+ else:
+ lines.append('')
+ ls = '\n'.join(lines)
+
+ # in case you wonder about the seemingly redundant here: since the
+ # content in the other cell also is wrapped in a div, some browsers in
+ # some configurations seem to mess up the formatting...
+ if nocls:
+ yield 0, ('
' % self.cssclass +
+ ' | ')
+ else:
+ yield 0, ('' % self.cssclass +
+ ' | ')
+ yield 0, dummyoutfile.getvalue()
+ yield 0, ' | '
+
+
def pygmentize(filenode, **kwargs):
"""pygmentize function using pygments
|