changeset 3087:bae6d6881b86

removed ImageLink macro, can be done with moin wiki syntax now (ported from 1.6)
author Thomas Waldmann <tw AT waldmann-edv DOT de>
date Sat, 23 Feb 2008 00:36:17 +0100
parents dafb1b4e75e5
children 9f6fe753d567
files MoinMoin/macro/ImageLink.py
diffstat 1 files changed, 0 insertions(+), 229 deletions(-) [+]
line wrap: on
line diff
--- a/MoinMoin/macro/ImageLink.py	Sat Feb 23 00:32:35 2008 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-"""
-    MoinMoin - ImageLink Macro
-
-    This macro is used to make a link that displays an image (can be given
-    as either attachment or URL) and links to either an URL or a wiki page.
-    Optionally the size of the image can be adjusted.
-    If no target is given the link will point to the image itself.
-
-    Syntax:
-        <<ImageLink(image, [target,] [width=width, [height=height>>)>>
-
-    Parameters:
-        image: image attachment file name or the URL of an image
-        target: link target wiki page or URL (optional)
-
-    Keyword Parameters:
-        width: rendered image width (optional)
-        height: rendered image heigth (optional)
-        alt: text for img tag "alt" attribute
-
-    Examples:
-        <<ImageLink(München.png,München,height=100)>>
-        <<ImageLink(Images/München.png,München,height=100)>>
-        <<ImageLink(http://webcam.portalmuc.de/images/webcam/webcam_marienplatz.jpg,München Marienplatz)>>
-        <<ImageLink(plot.png,width=200)>>
-        <<ImageLink(plot.png,height=200)>>
-        <<ImageLink(plot.png)>>
-        <<ImageLink(http://webcam.portalmuc.de/images/webcam/webcam_marienplatz.jpg,http://www.muenchen.de,width=150)>>
-        <<ImageLink(münchen.png,http://www.muenchen.de,width=50)>>
-        <<ImageLink(http://webcam.portalmuc.de/images/webcam/webcam_marienplatz.jpg)>>
-        <<ImageLink(example.png,alt=whateveryouwant(üöä))>>
-        <<ImageLink(http://moinmoin.wikiwikiweb.de/OliverSiemoneit?action=AttachFile&do=get&target=screenshot.png,width=647,height=517,alt=OliverSiemoneit?action=AttachFile&do=get&target=screenshot,FrontPage)>>
-
-    History:
-        Jeff Kunce:
-            wrote the first published version of this macro in 2001.
-
-        Reimar Bauer:
-            2004 intitial new version for MoinMoin 1.2
-
-        Marcin Zalewski:
-            Implemented wikiutil.link_tag and macro.formatter.pagelink.
-            Added title attribute to the created link. One could generalize that to
-            add arbitrary attributes.
-
-            One could also add class attributes to <a> and/or <img> elements.
-            I do not see the need for such modifications. If however this is
-            to be done in the future one would need to add 'html_class' key to the kw dictionary
-            with a corresponding value to add class to <img> element. To add class to <a> element
-            one needs to add 'css_class' key with a corresponding value to the dictionary passed to
-            pagelink call.
-
-       Reimar Bauer:
-            2004-12-23 Adapted to MoinMoin Version 1.3.1-1
-            2004-12-23 Syntax change Version 1.3.1-2
-                   width and height and probably other keywords must be given as keywords (e.g. height=20)
-            2004-12-31 Version 1.3.1-3 code clean up
-            2005-01-16 Bug fixed in the errorhandler - found and patched by Malte Helmert
-            2005-03-05 Version 1.3.3-5 Bug fixed found by cypress ("If I put <<ImageLink(moinmoin.png)>> it bombs")
-            2005-03-28 Version 1.3.3-6 feature request added by CDPark:
-                       "Can we use an external image? And an external target?"
-            2005-04-16 Version 1.3.3-7 no default alt tag definition as requested by CDPark and AlexanderSchremmer
-
-       Chong-Dae Park:
-            2005-04-17 Version 1.3.3-8 code refactored
-                       IMG with no alt tag is not recommended in the HTML standard.
-                       It keeps a user specified alt tag. If there is none, it tries to make on using the WikiName
-                       or image name instead.
-
-       Reimar Bauer:
-            2005-04-21 Version 1.3.3-9 bug fixed
-                       When the image does not exist yet, it gives you a "Upload Image" link, this link does not
-                       work. I suspect that this only is a problem on sub-pages, caused by incorrect escaping of
-                        "/". -- CraigJohnson
-
-            2005-12-19 Versiom 1.5.0-10 feature added to link to images on different wiki pages
-            2006-02-14 Version 1.5.2-11 bug fixed for filename of attached image is Chinese (encode added)
-            2006-02-22 Version 1.5.2-12 code refactored
-
-      Thomas Waldmann
-            2006-03-10 code refactored
-
-      Reimar Bauer
-             2006-09-22 bug fix of image linked to attachment and inline
-             2006-10-08 patch of DavidLinke added and keys now only lowercase used
-             2006-12-16 interwikilink for pages added
-
-    @copyright: 2001 by Jeff Kunce,
-                2004 by Marcin Zalewski,
-                2006 by MoinMoin:ThomasWaldmann,
-                2004-2007 by MoinMoin:ReimarBauer
-
-    @license: GNU GPL, see COPYING for details.
-"""
-
-from MoinMoin import wikiutil
-from MoinMoin.action import AttachFile
-
-def _is_URL(text):
-    """ Answer true if text is an URL.
-        The method used here is pretty dumb. Improvements are welcome.
-    """
-    return '://' in text
-
-def explore_args(args, kwAllowed):
-    """
-    explore args for positional and keyword parameters
-    """
-    if args:
-        args = args.split(',')
-        args = [arg.strip() for arg in args]
-    else:
-        args = []
-
-    kw_count = 0
-    kw = {} # create a dictionary for the formatter.image call
-    pp = [] # positional parameter
-
-    if not kwAllowed:
-        return pp, 0, kw, 0
-
-    for arg in args:
-        if '=' in arg:
-            key, value = arg.split('=', 1)
-            # avoid that urls with "=" are interpreted as keyword
-            if key.lower() not in kwAllowed:
-                if not kw_count and _is_URL(arg):
-                    # assuming that this is the image
-                    pp.append(wikiutil.escape(arg, quote=1))
-                continue
-            kw_count += 1
-            kw[str(key.lower())] = wikiutil.escape(value, quote=1)
-        else:
-            pp.append(wikiutil.escape(arg, quote=1))
-
-    return pp, len(pp), kw, len(kw)
-
-def execute(macro, args):
-    request = macro.request
-    _ = request.getText
-    formatter = macro.formatter
-
-    kwAllowed = ['width', 'height', 'alt']
-    pp, pp_count, kw, kw_count = explore_args(args, kwAllowed)
-
-    if not pp_count or pp_count and not pp[0]:
-        msg = 'Not enough arguments to ImageLink macro! e.g. <<ImageLink(example.png, WikiName, width=200)>>.'
-        return "%s%s%s" % (formatter.sysmsg(1), formatter.text(msg), formatter.sysmsg(0))
-
-    image = pp[0]
-    if pp_count >= 2 and pp[1]:
-        target = pp[1]
-        if target.startswith('attachment:') or target.startswith('inline:'):
-            if target.startswith('attachment:'):
-                target = (target.split('attachment:'))[1]
-                pagename, attname = AttachFile.absoluteName(target, formatter.page.page_name)
-                target = AttachFile.getAttachUrl(pagename, target, request)
-            elif target.startswith('inline:'):
-                target = (target.split('inline:'))[1]
-                pagename, attname = AttachFile.absoluteName(target, formatter.page.page_name)
-                target = AttachFile.getAttachUrl(pagename, target, request, do='view')
-
-            if not AttachFile.exists(request, pagename, attname):
-                linktext = _('Upload new attachment "%(filename)s"')
-                return wikiutil.link_tag(request,
-                                         ('%s?action=AttachFile&rename=%s' % (
-                                         wikiutil.quoteWikinameURL(pagename),
-                                         wikiutil.url_quote_plus(attname))),
-                                         linktext % {'filename': attname})
-
-            kw['src'] = AttachFile.getAttachUrl(pagename, image, request)
-
-    elif pp_count == 1:
-        pagename, attname = AttachFile.absoluteName(image, formatter.page.page_name)
-        target = AttachFile.getAttachUrl(pagename, image, request)
-    else:
-        target = None
-
-    if _is_URL(image):
-        kw['src'] = image
-    else:
-        pagename, attname = AttachFile.absoluteName(image, formatter.page.page_name)
-        kw['src'] = AttachFile.getAttachUrl(pagename, attname, request)
-        if not AttachFile.exists(request, pagename, attname):
-            linktext = _('Upload new attachment "%(filename)s"')
-            return wikiutil.link_tag(request,
-                                     ('%s?action=AttachFile&rename=%s' % (
-                                         wikiutil.quoteWikinameURL(pagename),
-                                         wikiutil.url_quote_plus(attname))),
-                                         linktext % {'filename': attname})
-
-    if 'alt' not in kw:
-        if target is None or _is_URL(target):
-            if _is_URL(image):
-                # Get image name http://here.com/dir/image.png -> image.png
-                kw['alt'] = wikiutil.taintfilename(formatter.text(image.split('/')[-1]))
-            else:
-                kw['alt'] = attname
-        else:
-            kw['alt'] = target
-
-    if target is None:
-        target = kw['src']
-
-    if pp_count == 1:
-        return "%s%s%s" % (formatter.url(1, kw['src']),
-                           formatter.image(**kw),
-                           formatter.url(0))
-
-    if _is_URL(target) or 'action=AttachFile&do=get&target=' in target or 'action=AttachFile&do=view&target=' in target:
-        return "%s%s%s" % (formatter.url(1, target),
-                           formatter.image(**kw),
-                           formatter.url(0))
-    else:
-        if ":" in target:
-            if target.startswith('wiki:'):
-                target = target[5:]
-            wikiname, pagename = wikiutil.split_interwiki(target)
-            wikitag, wikiurl, wikitail, error = wikiutil.resolve_interwiki(request, wikiname, pagename)
-            url = wikiurl + wikiutil.quoteWikinameURL(wikitail)
-            return "%s%s%s" % (formatter.url(1, url),
-                               formatter.image(**kw),
-                               formatter.url(0))
-        else:
-            return "%s%s%s" % (formatter.pagelink(1, target),
-                               formatter.image(**kw),
-                               formatter.pagelink(0))
-