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:
parent
075b5b6d1d
commit
310e827728
3 changed files with 35 additions and 13 deletions
|
@ -19,7 +19,7 @@
|
|||
condition="objects">
|
||||
<h2 i18n:translate="">Media Objects</h2>
|
||||
<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" />
|
||||
</div>
|
||||
</tal:listing>
|
||||
|
|
|
@ -5,13 +5,25 @@ Standard Wiki Pre-processors
|
|||
($Id$)
|
||||
|
||||
|
||||
MediaWiki Links
|
||||
===============
|
||||
MediaWiki Formatting
|
||||
====================
|
||||
|
||||
>>> from cybertools.wiki.preproc.mediawiki import preprocess
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
>>> src = '''Some text with [[a link]] and
|
||||
... [[link2 | another link]] with separate text.'''
|
||||
|
||||
>>> preprocess(src)
|
||||
'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
|
||||
|
||||
|
|
|
@ -28,16 +28,26 @@ import re
|
|||
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):
|
||||
result = linkPattern.sub(createRstxLink, source)
|
||||
result = linkPattern.sub(processLinkPattern, source)
|
||||
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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue