diff options
author | Pepijn de Vos <pepijndevos@gmail.com> | 2012-07-16 09:25:03 -0400 |
---|---|---|
committer | Pepijn de Vos <pepijndevos@gmail.com> | 2012-07-16 09:25:03 -0400 |
commit | d86115879e19c7611dd324c3356e9af4adeb0016 (patch) | |
tree | 0c54ca6f9a7eadd46995d9e7ae6d3600e5d11cfd /pygments/formatters/html.py | |
parent | 27aebd7aa86f43eb7d3f75f4d9eced550d2a0972 (diff) | |
download | pygments-d86115879e19c7611dd324c3356e9af4adeb0016.tar.gz |
format url
Diffstat (limited to 'pygments/formatters/html.py')
-rw-r--r-- | pygments/formatters/html.py | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/pygments/formatters/html.py b/pygments/formatters/html.py index e4329b21..27b47708 100644 --- a/pygments/formatters/html.py +++ b/pygments/formatters/html.py @@ -10,6 +10,7 @@ """ import os +import os.path import sys import StringIO @@ -303,12 +304,12 @@ class HtmlFormatter(Formatter): Defaults to True. Determines if links to name definitions should link to other files. - 'tagurlprefix` + 'urlformat` The URL to the root of your project, where the tag file resides. This is prepended to links if `singlepage` is false. `linkfext` - Similar to `tagurlprefix`, but sets the file extension used. + Similar to `urlformat`, but sets the file extension used. Defaults to .html **Subclassing the HTML formatter** @@ -376,9 +377,7 @@ class HtmlFormatter(Formatter): self.cssfile = self._decodeifneeded(options.get('cssfile', '')) self.noclobber_cssfile = get_bool_opt(options, 'noclobber_cssfile', False) self.tagsfile = self._decodeifneeded(options.get('tagsfile', '')) - self.tagurlprefix = self._decodeifneeded(options.get('tagurlprefix', '')) - self.linkfext = self._decodeifneeded(options.get('linkfext', '.html')) - self.singlepage = get_bool_opt(options, 'singlepage', True) + self.urlformat = self._decodeifneeded(options.get('urlformat', '')) if self.tagsfile: try: @@ -679,10 +678,7 @@ class HtmlFormatter(Formatter): escape_table = _escape_html_table tagsfile = self.tagsfile - singlepage = self.singlepage - if not singlepage: - tagurlprefix = self.tagurlprefix - linkfext = self.linkfext + urlformat = self.urlformat lspan = '' line = '' @@ -700,13 +696,13 @@ class HtmlFormatter(Formatter): parts = value.translate(escape_table).split('\n') if tagsfile and ttype in Token.Name: - filename, lineNumber = self._lookup_ctag(value) - if filename: - if singlepage: - parts[0] = "<a href=\"#%s-%s\">%s" % (self.lineanchors, lineNumber, parts[0]) - else: - parts[0] = "<a href=\"%s%s%s#%s-%s\">%s" % (tagurlprefix, filename, linkfext, self.lineanchors, lineNumber, parts[0]) - parts[-1] = "%s</a>" % parts[-1] + filename, linenumber = self._lookup_ctag(value) + if linenumber: + base, filename = os.path.split(filename) + filename, extension = os.path.splitext(filename) + url = urlformat.format(path=base, fname=filename, fext=extension) + parts[0] = "<a href=\"%s#%s-%d\">%s" % (url, self.lineanchors, linenumber, value) + parts[-1] = parts[-1] + "</a>" # for all but the last line for part in parts[:-1]: |