Bugfix hurl handling of image links
[geekigeeki.git] / geekigeeki.py
index 341bbad351166596fcad2701f2e2138f869232bc..8de46ab91cbf4d2b14e4ce25753a0848545c311c 100755 (executable)
@@ -125,18 +125,18 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal
     print ' <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />'
     if not name:
         print ' <meta name="robots" content="noindex,nofollow" />'
-    for css in css_url:
-        print ' <link rel="stylesheet" type="text/css" href="%s" />' % relative_url(css)
-    if icon_url:
-        print ' <link rel="icon" href="%s" />' % relative_url(icon_url)
+
+    for link in link_urls:
+        rel, href = link
+        print ' <link rel="%s" href="%s" />' % (rel, relative_url(href))
 
     if name and writable and privileged_url is not None:
-        print ' <link rel="alternate" type="application/x-wiki" title="Edit this page" href="%s" \>' \
+        print ' <link rel="alternate" type="application/x-wiki" title="Edit this page" href="%s" />' \
             % (privileged_path() + '?edit=' + name)
 
     if history_url is not None:
         print ' <link rel="alternate" type="application/rss+xml" title="RSS" href="%s" />' \
-            % (history_url + '?a=rss')
+            % relative_url(history_url + '?a=rss')
 
     print '</head>'
 
@@ -158,9 +158,9 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal
     print ' | ' + link_tag('FrontPage', 'Home', 'navlink')
     print ' | ' + link_tag('FindPage', 'Find Page', 'navlink')
     if 'history_url' in globals():
-        print ' | <a href="' + history_url + '" class="navlink">Recent Changes</a>'
+        print ' | <a href="' + relative_url(history_url) + '" class="navlink">Recent Changes</a>'
         if name:
-            print ' | <a href="' + history_url + '?a=history;f=' + name + '" class="navlink">Page History</a>'
+            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')
@@ -360,12 +360,11 @@ class WikiFormatter:
     def _hurl_repl(self, word):
         m = link_re.match(word)
         name = m.group(1)
-        if m.group(2) is None:
+        descr = m.group(2)
+        if descr is None:
             descr = name
         elif img_re.match(m.group(2)):
             descr = '<img border="0" src="' + descr + '" />'
-        else:
-            descr = m.group(2)
 
         return link_tag(name, descr, 'wikilink')
 
@@ -622,7 +621,7 @@ class Page:
                 self.attrs[m.group(1)] = m.group(2).strip()
                 #print "bernie: attrs[" + m.group(1) + "] = " + m.group(2) + "<br>\n"
         except IOError, er:
-            if er.errno != errno.ENOENT:
+            if er.errno != errno.ENOENT and er.errno != errno.EISDIR:
                 raise er
         return self.attrs
 
@@ -657,9 +656,11 @@ class Page:
             send_guru("Read access denied by ACLs", "notice")
 
     def format(self):
-        #css foo.css bar.css
-        global css_url
-        css_url = self.get_attr("css", "").split() + css_url
+        #css foo.css
+        value = self.get_attr("css", None)
+        if value:
+            global link_urls
+            link_urls += { "stylesheet": value }
 
         send_title(self.page_name, self.split_title(),
             msg_text=self.msg_text, msg_type=self.msg_type, writable=self.can_write())