| 1 |
diff -r --unified tracwikitopdfplugin.orig/0.11/wikitopdf/formats.py tracwikitopdfplugin/0.11/wikitopdf/formats.py |
|---|
| 2 |
--- tracwikitopdfplugin.orig/0.11/wikitopdf/formats.py 2008-09-16 18:25:07.000000000 +0200 |
|---|
| 3 |
+++ tracwikitopdfplugin/0.11/wikitopdf/formats.py 2008-09-19 19:50:13.000000000 +0200 |
|---|
| 4 |
@@ -82,8 +82,10 @@ |
|---|
| 5 |
# htmldoc doesn't support utf-8, we need to use some other input encoding |
|---|
| 6 |
codepage = self.env.config.get('trac', 'default_charset', 'iso-8859-1') |
|---|
| 7 |
base_dir = self.env.config.get('wikitopdf', 'base_dir') |
|---|
| 8 |
- |
|---|
| 9 |
- page = wiki_to_pdf(WikiPage(self.env, pagename).text, self.env, req, base_dir, codepage) |
|---|
| 10 |
+ graphviz_dir = self.env.config.get('wikitopdf', 'graphviz_dir') |
|---|
| 11 |
+ tracmath_dir = self.env.config.get('wikitopdf', 'tracmath_dir') |
|---|
| 12 |
+ |
|---|
| 13 |
+ page = wiki_to_pdf(WikiPage(self.env, pagename).text, self.env, req, base_dir, graphviz_dir, tracmath_dir, codepage) |
|---|
| 14 |
|
|---|
| 15 |
hfile, hfilename = mkstemp('wikitopdf') |
|---|
| 16 |
self.log.debug('WikiToPdf => Writting %s to %s using encoding %s', pagename, hfilename, codepage) |
|---|
| 17 |
diff -r --unified tracwikitopdfplugin.orig/0.11/wikitopdf/wikitopdf.py tracwikitopdfplugin/0.11/wikitopdf/wikitopdf.py |
|---|
| 18 |
--- tracwikitopdfplugin.orig/0.11/wikitopdf/wikitopdf.py 2008-09-16 18:25:07.000000000 +0200 |
|---|
| 19 |
+++ tracwikitopdfplugin/0.11/wikitopdf/wikitopdf.py 2008-09-19 19:58:14.000000000 +0200 |
|---|
| 20 |
@@ -18,17 +18,19 @@ |
|---|
| 21 |
] |
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
-def wiki_to_pdf(text, env, req, base_dir, codepage): |
|---|
| 25 |
+def wiki_to_pdf(text, env, req, base_dir, graphviz_dir, tracmath_dir, codepage): |
|---|
| 26 |
|
|---|
| 27 |
env.log.debug('WikiToPdf => Start function wiki_to_pdf') |
|---|
| 28 |
|
|---|
| 29 |
#Remove exclude expressions |
|---|
| 30 |
for r in EXCLUDE_RES: |
|---|
| 31 |
text = r.sub('', text) |
|---|
| 32 |
- |
|---|
| 33 |
+ |
|---|
| 34 |
env.log.debug('WikiToPdf => Wiki intput for WikiToPdf: %r' % text) |
|---|
| 35 |
|
|---|
| 36 |
page = wiki_to_html(text, env, req) |
|---|
| 37 |
+ env.log.debug('WikiToPdf => original HTML output: %r' % page) |
|---|
| 38 |
+ |
|---|
| 39 |
page = page.replace('raw-attachment', 'attachments') |
|---|
| 40 |
page = page.replace('<img', '<img border="0"') |
|---|
| 41 |
page = page.replace('?format=raw', '') |
|---|
| 42 |
@@ -42,12 +44,37 @@ |
|---|
| 43 |
page = page.replace('</pre>', '</pre></td></tr></table>') |
|---|
| 44 |
page = page.replace('<table class="wiki">', '<table class="wiki" border="1" width="100%">') |
|---|
| 45 |
|
|---|
| 46 |
+ # update image source |
|---|
| 47 |
+ abs_ref = (req or env).abs_href.base |
|---|
| 48 |
+ href = (req or env).href.base |
|---|
| 49 |
+ |
|---|
| 50 |
imgpos = page.find('<img') |
|---|
| 51 |
|
|---|
| 52 |
while imgpos != -1: |
|---|
| 53 |
- addrpos = page.find('src=',imgpos) |
|---|
| 54 |
- page = page[:addrpos+5] + base_dir + page[addrpos+5:] |
|---|
| 55 |
- imgpos = page.find('<img', addrpos) |
|---|
| 56 |
+ addrpos_s = page.find('src="', imgpos) |
|---|
| 57 |
+ addrpos_e = page.find('"', addrpos_s+5) |
|---|
| 58 |
+ src = page[addrpos_s+5:addrpos_e] |
|---|
| 59 |
+ # image source |
|---|
| 60 |
+ if src.find(abs_ref) == 0: |
|---|
| 61 |
+ # graphviz-plugin ? |
|---|
| 62 |
+ if src.startswith('/graphviz', len(abs_ref)): |
|---|
| 63 |
+ src = src.replace(abs_ref+'/graphviz', graphviz_dir) |
|---|
| 64 |
+ # tracmath-plugin ? |
|---|
| 65 |
+ elif src.startswith('/tracmath', len(abs_ref)): |
|---|
| 66 |
+ src = src.replace(abs_ref+'/tracmath', tracmath_dir) |
|---|
| 67 |
+ else: |
|---|
| 68 |
+ src = src.replace(abs_ref, base_dir) |
|---|
| 69 |
+ elif src.find(href) == 0: |
|---|
| 70 |
+ # graphviz-plugin ? |
|---|
| 71 |
+ if src.startswith('/graphviz', len(href)): |
|---|
| 72 |
+ src = src.replace(href+'/graphviz', graphviz_dir) |
|---|
| 73 |
+ # tracmath-plugin ? |
|---|
| 74 |
+ elif src.startswith('/tracmath', len(href)): |
|---|
| 75 |
+ src = src.replace(href+'/tracmath', tracmath_dir) |
|---|
| 76 |
+ else: |
|---|
| 77 |
+ src = src.replace(href, base_dir) |
|---|
| 78 |
+ page = page[:addrpos_s+5] + src + page[addrpos_e:] |
|---|
| 79 |
+ imgpos = page.find('<img', addrpos_e) |
|---|
| 80 |
|
|---|
| 81 |
meta = ('<meta http-equiv="Content-Type" content="text/html; charset=%s"/>' % codepage) |
|---|
| 82 |
|
|---|
| 83 |
@@ -98,8 +125,10 @@ |
|---|
| 84 |
|
|---|
| 85 |
codepage = self.env.config.get('trac', 'default_charset', 'iso-8859-1') |
|---|
| 86 |
base_dir = self.env.config.get('wikitopdf', 'base_dir') |
|---|
| 87 |
+ graphviz_dir = self.env.config.get('wikitopdf', 'graphviz_dir') |
|---|
| 88 |
+ tracmath_dir = self.env.config.get('wikitopdf', 'tracmath_dir') |
|---|
| 89 |
|
|---|
| 90 |
- page = wiki_to_pdf(text, self.env, req, base_dir, codepage) |
|---|
| 91 |
+ page = wiki_to_pdf(text, self.env, req, base_dir, graphviz_dir, tracmath_dir, codepage) |
|---|
| 92 |
|
|---|
| 93 |
hfile, hfilename = mkstemp('wikitopdf') |
|---|
| 94 |
os.write(hfile, page) |
|---|