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">
|
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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue