MediaWiki preprocessor for embeding of images

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@4108 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-12-20 15:44:15 +00:00
parent 075b5b6d1d
commit 310e827728
3 changed files with 35 additions and 13 deletions

View file

@ -19,7 +19,7 @@
condition="objects"> condition="objects">
<h2 i18n:translate="">Media Objects</h2> <h2 i18n:translate="">Media Objects</h2>
<div tal:repeat="obj objects"> <div tal:repeat="obj objects">
<a tal:attributes="href obj/absolute_url" <a tal:attributes="href string:${obj/absolute_url}/@@view"
tal:content="obj/title" /> tal:content="obj/title" />
</div> </div>
</tal:listing> </tal:listing>

View file

@ -5,13 +5,25 @@ Standard Wiki Pre-processors
($Id$) ($Id$)
MediaWiki Links MediaWiki Formatting
=============== ====================
>>> from cybertools.wiki.preproc.mediawiki import preprocess >>> from cybertools.wiki.preproc.mediawiki import preprocess
Links
-----
>>> src = '''Some text with [[a link]] and >>> src = '''Some text with [[a link]] and
... [[link2 | another link]] with separate text.''' ... [[link2 | another link]] with separate text.'''
>>> preprocess(src) >>> preprocess(src)
'Some text with `a link <a link>`__ and\n`another link <link2>`__ with separate text.' 'Some text with `a link <a link>`__ and\n`another link <link2>`__ with separate text.'
Embedding of Images
-------------------
>>> src = '''[[image:media01.jpg]]'''
>>> print preprocess(src)
.. image:: media01.jpg

View file

@ -28,16 +28,26 @@ import re
linkPattern = re.compile(r'\[\[(.+)\]\]') linkPattern = re.compile(r'\[\[(.+)\]\]')
def createRstxLink(match):
value = match.group(1)
parts = value.split('|')
text = name = parts[0].strip()
if len(parts) > 1:
text = parts[-1].strip()
return '`%s <%s>`__' % (text, name)
def preprocess(source): def preprocess(source):
result = linkPattern.sub(createRstxLink, source) result = linkPattern.sub(processLinkPattern, source)
return result return result
def processLinkPattern(match):
value = match.group(1)
parts = value.split('|')
name = parts.pop(0).strip()
if ':' in name:
prefix, name = name.split(':', 1)
return createRstxImage(name, parts, prefix)
else:
return createRstxLink(name, parts)
def createRstxLink(name, parts, prefix=None):
text = parts and parts[-1].strip() or name
return '`%s <%s>`__' % (text, name)
def createRstxImage(name, parts, prefix=None):
return '\n\n.. image:: %s\n\n' % name