Allow specifying CSS class for thumbnails
authorBernie Innocenti <bernie@codewiz.org>
Fri, 1 May 2009 01:52:44 +0000 (10:52 +0900)
committerBernie Innocenti <bernie@codewiz.org>
Fri, 1 May 2009 01:52:44 +0000 (10:52 +0900)
geekigeeki.py

index 368cf8dace07ae045d9580f9616e9370e1b45221..b8aeee89402cddc8bfe65b947e63c12d550cad27 100755 (executable)
@@ -22,6 +22,7 @@ __version__ = '$Id$'[4:12]
 
 from time import clock
 start_time = clock()
+title_done = False
 
 import cgi, sys, os, re, errno, stat
 
@@ -32,8 +33,6 @@ video_re = re.compile(r"^.*\.(ogm|ogg|mkv|mpg|mpeg|mp4|avi|asf|flv|wmv|qt)$", re
 url_re = re.compile(r"^[a-z]{3,8}://[^\s'\"]+\S$")
 ext_re = re.compile(r"\.([^\./]+)$")
 
-title_done = False
-
 # CGI stuff ---------------------------------------------------------
 def script_name():
     return os.environ.get('SCRIPT_NAME', '')
@@ -80,7 +79,7 @@ def permalink(s):
     return re.sub(' ', '-', re.sub('[^a-z0-9_ ]', '', s.lower()).strip())
 
 def humanlink(s):
-    return re.compile('([^:/\.]+)(?:\.[^/:]+|)$').search(s).group(1).replace('_', ' ')
+    return re.search('([^:/\.]+)(?:\.[^/:]+|)$', s).group(1).replace('_', ' ')
 
 # Split arg lists like "blah| blah blah| width=100 | align = center",
 # return a list containing anonymous arguments and a map containing the named arguments
@@ -264,7 +263,6 @@ def handle_fullsearch(query, form):
     print_search_stats(len(hits), len(all_pages))
 
 def handle_titlesearch(query, form):
-    # TODO: check needle is legal -- but probably we can just accept any RE
     needle = form['q'].value
     send_title(None, 'Title search for "' + needle + '"')
 
@@ -417,8 +415,9 @@ class WikiFormatter:
         name = args.pop(0)
         if len(args):
             descr = args.pop(0)
-            # The "extthumb" nonsense works around a limitation of the HTML block model
-            return '<div class="extthumb"><div class="thumb">' \
+            # This double div nonsense works around a limitation of the HTML block model
+            return '<div class="' + kvargs.get('class', 'thumb') + '">' \
+                + '<div class="innerthumb">' \
                 + link_inline(name, descr, kvargs) \
                 + '<div class="caption">' + descr + '</div></div></div>'
         else:
@@ -651,8 +650,8 @@ class Page:
         for filename in page_list(self._filename(), file_re):
             if img_re.match(filename):
                 if image_maxwidth:
-                    maxwidth_arg = '|maxwidth=' + str(image_maxwidth)
-                out += '{{' + self.page_name + '/' + filename + '|' + humanlink(filename) + maxwidth_arg + '}}\n'
+                    maxwidth_arg = ' | maxwidth=' + str(image_maxwidth)
+                out += '{{' + self.page_name + '/' + filename + ' | ' + humanlink(filename) + maxwidth_arg + ' | class=thumbleft}}\n'
             else:
                 out += ' * [[' + self.page_name + '/' + filename + ']]\n'
         return out