Simplify/generalize linking
authorBernardo Innocenti <bernie@codewiz.org>
Sat, 5 Jan 2008 21:02:00 +0000 (22:02 +0100)
committerBernardo Innocenti <bernie@codewiz.org>
Sat, 5 Jan 2008 21:02:00 +0000 (22:02 +0100)
geekigeeki.py

index 9c9efc16a65e61ce1dc9199df4cec036a141ae7e..84f1db5f3a0305e5f9ef8a39ca101335b75356f6 100755 (executable)
@@ -171,6 +171,8 @@ def link_tag(params, text=None, ss_class=None, privileged=False):
         # Prevent crawlers from following links potentially added by spammers or to generated pages
         if ss_class == 'external' or ss_class == 'navlink':
             classattr += 'rel="nofollow" '
+    elif url_re.match(params):
+        classattr += 'rel="nofollow" '
     return '<a %shref="%s">%s</a>' % (classattr, relative_url(params, privileged=privileged), text)
 
 # Search ---------------------------------------------------
@@ -402,18 +404,14 @@ class PageFormatter:
         if macro:
             return apply(macro, (name, descr))
         elif img_re.match(name):
+            name = relative_url(name)
             # 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, descr, descr)
         else:
             if img_re.match(descr):
                 descr = '<img border="0" src="' + descr + '" />'
 
-            if url_re.match(name):
-                return '<a href="%s" rel="nofollow" class="external">%s</a>' % (name, descr)
-            elif name.startswith('/'):
-                return '<a href="%s">%s</a>' % (name, descr)
-            else:
-                return link_tag(name, descr, 'wikilink')
+            return link_tag(name, descr, 'wikilink')
 
     def _email_repl(self, word):
         return '<a href="mailto:%s">%s</a>' % (word, word)