Changeset 1654
- Timestamp:
- 12/06/06 02:26:44 (2 years ago)
- Files:
-
- combinewikiplugin/0.10/combinewiki/formats.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
combinewikiplugin/0.10/combinewiki/formats.py
r1648 r1654 1 1 from trac.core import * 2 from trac.config import BoolOption 2 3 from trac.web.api import RequestDone 3 4 from trac.wiki.api import WikiSystem … … 13 14 import re 14 15 import time 16 import urllib2 17 import base64 15 18 16 19 from api import ICombineWikiFormat … … 115 118 implements(ICombineWikiFormat) 116 119 120 inline_images = BoolOption('tiddlywiki', 'inline_images', default=True, doc='Try to inline images directly into the TiddlyWiki output') 121 117 122 STANDALONE_LINK_RE = re.compile(r'<a class="(?:missing )?wiki"[^>]*>([^>]+?)(?:\?)?</a>') 118 123 HR_RE = re.compile(r'<hr />') 119 124 LINK_RE = re.compile(r'<a[^>]* href="([^"]*)"[^>]*>([^>]*)</a>') 125 IMAGE_RE = re.compile(r'(<img[^>]* src=")([^"]*)("[^>]*/>)') 120 126 121 127 def combinewiki_formats(self, req): … … 136 142 href = req.abs_href(href) 137 143 return '[[%s|%s]]'%(label, href) 144 145 def inline_image(md): 146 pre, href, post = md.groups() 147 if href.startswith('/'): 148 href = '%s://%s:%s%s'%(req.scheme, req.server_name, req.server_port, href) 149 try: 150 f = urllib2.urlopen(href) 151 except urllib2.URLError, e: 152 # Fallback to doing nothing 153 self.log.debug('TiddlyWikiOutputFormat: Error while loading URL %s: %s', href, e) 154 return md.group(0) 155 156 encoded = base64.b64encode(f.read()) 157 mime_type = f.info()['content-type'] 158 new_href = 'data:%s;base64,%s'%(mime_type, encoded) 159 return ''.join([pre,new_href,post]) 138 160 139 161 for name in pages: … … 156 178 formatted = self.HR_RE.sub('----', formatted) 157 179 formatted = self.LINK_RE.sub(make_link, formatted) 180 if self.inline_images: 181 formatted = self.IMAGE_RE.sub(inline_image, formatted) 158 182 tiddler['content'] = formatted 159 183