Simplify link_tag()
authorBernie Innocenti <bernie@codewiz.org>
Fri, 1 May 2009 16:20:27 +0000 (18:20 +0200)
committerBernie Innocenti <bernie@codewiz.org>
Fri, 1 May 2009 16:20:27 +0000 (18:20 +0200)
geekigeeki.py

index 4d50a3af5c0fd4aa29c24ec1918e59f801a2d047..b52d3522c88d0b5b11a5e6c46463b70a1f92ca52 100755 (executable)
@@ -161,24 +161,24 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal
 
     # Navbar
     print('<div class="nav">')
-    print link_tag('FrontPage', site_icon or 'Home', 'navlink')
+    print link_tag('FrontPage', site_icon or 'Home', cssclass='navlink')
     if name:
-        print('  <b>' + link_tag('?fullsearch=' + name, text, 'navlink') + '</b> ')
+        print('  <b>' + link_tag('?fullsearch=' + name, text, cssclass='navlink') + '</b> ')
     else:
         print('  <b>' + text + '</b> ')
-    print(' | ' + link_tag('FindPage', 'Find Page', 'navlink'))
+    print(' | ' + link_tag('FindPage', 'Find Page', cssclass='navlink'))
     if 'history_url' in globals():
         print(' | <a href="' + relative_url(history_url) + '" class="navlink">Recent Changes</a>')
         if name:
             print(' | <a href="' + relative_url(history_url + '?a=history;f=' + name) + '" class="navlink">Page History</a>')
 
     if name:
-        print(' | ' + link_tag('?raw=' + name, 'Raw Text', 'navlink'))
+        print(' | ' + link_tag('?raw=' + name, 'Raw Text', cssclass='navlink'))
         if privileged_url is not None:
             if writable:
-                print(' | ' + link_tag('?a=edit&q=' + name, 'Edit', 'navlink', privileged=True))
+                print(' | ' + link_tag('?a=edit&q=' + name, 'Edit', cssclass='navlink', privileged=True))
             else:
-                print(' | ' + link_tag(name, 'Login', 'navlink', privileged=True))
+                print(' | ' + link_tag(name, 'Login', cssclass='navlink', privileged=True))
 
     else:
         print(' | <i>Immutable Page</i>')
@@ -194,27 +194,28 @@ def send_httperror(status="403 Not Found", query=""):
     send_title(None, msg_text=("%s: on query '%s'" % (status, query)))
     send_footer()
 
-def link_tag(params, text=None, link_class=None, privileged=False, **kvargs):
+def link_tag(dest, text=None, privileged=False, **kvargs):
     if text is None:
-        text = humanlink(params)
+        text = humanlink(dest)
     elif img_re.match(text):
         text = '<img border="0" src="' + relative_url(text) + '" alt="' + text + '" />'
 
+    link_class = kvargs.get('class', kvargs.get('cssclass', None))
     if not link_class:
-        if is_external_url(params):
+        if is_external_url(dest):
             link_class = 'external'
-        elif file_re.match(params) and Page(params).exists():
+        elif file_re.match(dest) and Page(dest).exists():
             link_class = 'wikilink'
         else:
-            params = nonexist_pfx + params
+            text = nonexist_pfx + text
             link_class = 'nonexistent'
 
-    classattr = 'class="%s" ' % link_class
     # Prevent crawlers from following links potentially added by spammers or to generated pages
+    nofollow = ''
     if link_class == 'external' or link_class == 'navlink':
-        classattr += 'rel="nofollow"'
+        nofollow = 'rel="nofollow" '
 
-    return '<a %shref="%s">%s</a>' % (classattr, relative_url(params, privileged=privileged), text)
+    return '<a class="%s" %shref="%s">%s</a>' % (link_class, nofollow, relative_url(dest, privileged=privileged), text)
 
 def link_inline(name, descr=None, kvargs={}):
     if not descr: descr = humanlink(name)