Modify ↓
Opened 12 years ago
Last modified 12 years ago
#11107 new defect
Trac Wiki to HTML Script Fails with Links
| Reported by: | anonymous | Owned by: | coldpizza |
|---|---|---|---|
| Priority: | normal | Component: | TracWikiToHtmlConverterScript |
| Severity: | normal | Keywords: | link html formatter |
| Cc: | Trac Release: | 1.0 |
Description
The trac2html.py script fails to create an HTML file if any link exist in the wiki. Links of the following format fail.
LINK: http://www.google.com
ERROR:
Traceback (most recent call last):
File "trac2html.py", line 28, in <module>
print HtmlFormatter(env, context, wiki).generate()
UnicodeEncodeError: 'ascii' codec can't encode character u'\u200b' in position 115: ordinal not in range(128)
LINK: [wiki:SomeWikiPage Title]
ERROR:
Traceback (most recent call last):
File "trac2html.py", line 28, in <module>
print HtmlFormatter(env, context, wiki).generate()
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 1501, in generate
escape_newlines)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 1283, in format
result = re.sub(self.wikiparser.rules, self.replace, line)
File "/usr/lib/python2.7/re.py", line 151, in sub
return _compile(pattern, flags).sub(repl, string, count)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 1201, in replace
replacement = self.handle_match(fullmatch)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 1197, in handle_match
return internal_handler(match, fullmatch)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 591, in _lhref_formatter
return self._make_lhref_link(match, fullmatch, rel, ns, target, label)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 626, in _make_lhref_link
fullmatch)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/formatter.py", line 635, in _make_link
fullmatch)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/api.py", line 392, in link_resolver
return self._format_link(formatter, ns, target, label, False)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/api.py", line 412, in _format_link
pagename = self._resolve_scoped_name(pagename, referrer)
File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.1-py2.7.egg/trac/wiki/api.py", line 446, in _resolve_scoped_name
referrer = referrer.split('/')
AttributeError: 'NoneType' object has no attribute 'split'
LINK: SomeWikiPage
ERROR: Very similar error trace as above.
Attachments (0)
Note: See
TracTickets for help on using
tickets.



The code works, it's only that the resource names must be valid Wiki page names, otherwise the engine cannot create correct links.
Ie. this would throw an error:
But this works perfectly:
I have a bunch of pages that I exported from Trac, and as long as I keep the names exactly as they were in Trac, the script works.
I'll be making a whole project that displays your Wikis as Trac would, with identical formatting, etc, only served from static files. I'll post the link here when it's usable.