Factor out code to generate inline links
authorBernie Innocenti <bernie@codewiz.org>
Wed, 8 Apr 2009 20:58:08 +0000 (22:58 +0200)
committerBernie Innocenti <bernie@codewiz.org>
Wed, 8 Apr 2009 20:58:30 +0000 (22:58 +0200)
geekigeeki.py

index 081517a64853ee460f3346b59ff04b201d706c8a..f3ce1dcb3268d452e29c997c5a698040a15b58cf 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # Copyright 1999, 2000 Martin Pool <mbp@humbug.org.au>
 # Copyright 2002 Gerardo Poggiali
-# Copyright 2007, 2008 Bernie Innocenti <bernie@codewiz.org>
+# Copyright 2007, 2008, 2009 Bernie Innocenti <bernie@codewiz.org>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -206,6 +206,13 @@ def link_tag(params, text=None, link_class=None, privileged=False):
 
     return '<a %shref="%s">%s</a>' % (classattr, relative_url(params, privileged=privileged), text)
 
+def link_inline(name, descr=None, args=''):
+    if not descr: descr = name
+    if video_re.match(name):
+        return '<video src="%s">Your browser does not support the HTML5 video tag</video>' % name
+    else:
+        return '<a href="%s"><img border="0" src="%s" alt="%s" /></a>' % (name, name + args, descr)
+
 # Search ---------------------------------------------------
 
 def handle_fullsearch(needle):
@@ -392,12 +399,11 @@ class WikiFormatter:
                 args = '?' + '&amp;'.join(argv)
 
             # The "extthumb" nonsense works around a limitation of the HTML block model
-            return '<div class="extthumb"><div class="thumb"><a href="%s"><img border="0" src="%s" alt="%s" /></a><div class="caption">%s</div></div></div>' \
-                    % (name, name + args, descr, descr)
-        elif video_re.match(name):
-            return '<video src="%s">Your browser does not support the HTML5 video tag</video>' % name
+            return '<div class="extthumb"><div class="thumb">' \
+                + link_inline(name, descr, args) \
+                + '<div class="caption">' + descr + '</div></div></div>'
         else:
-            return '<a href="%s"><img border="0" src="%s" /></a>' % (name, name)
+            return link_inline(name, name)
 
     def _html_repl(self, word):
         self.in_html += 1