Allow specifying custom <meta> tags in HTML head
[geekigeeki.git] / geekigeeki.py
index a7e99ed10121c9af816cfc76eddc0707edeeec94..1e2b065d05705ba8851177338d651429809590a4 100755 (executable)
@@ -126,6 +126,10 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal
     if not name:
         print ' <meta name="robots" content="noindex,nofollow" />'
 
+    for meta in meta_urls:
+        http_equiv, content = meta
+        print ' <meta http-equiv="%s" content="%s" />' % (http_equiv, relative_url(content))
+
     for link in link_urls:
         rel, href = link
         print ' <link rel="%s" href="%s" />' % (rel, relative_url(href))
@@ -366,7 +370,11 @@ class WikiFormatter:
 
         macro = globals().get('_macro_' + name)
         if not macro:
-            execfile("macros/" + name + ".py", globals())
+            try:
+                execfile("macros/" + name + ".py", globals())
+            except IOError, er:
+                if er.errno == errno.ENOENT:
+                    pass
             macro = globals().get('_macro_' + name)
         if macro:
             return macro(argv)
@@ -511,7 +519,7 @@ class WikiFormatter:
             + r"|(?P<hurl>\[\[([^\s\|]+)(?:\s*\|\s*([^\]]+)|)\]\])"
 
             # Inline HTML
-            + r"|(?P<html><(/|)(br|hr|div|form|iframe|input|span))"
+            + r"|(?P<html><(/|)(br|hr|div|span|form|iframe|input|textarea|a))"
             + r"|(?P<ent>[<>&])"
 
             # Auto links (LEGACY)
@@ -710,7 +718,7 @@ class Page:
         print '<div class="editor"><form name="editform" method="post" enctype="multipart/form-data" action="%s">' % relative_url(self.page_name)
         print '<input type="hidden" name="edit" value="%s">' % (self.page_name)
         print '<input type="input" id="editor" name="changelog" value="Edit page %s" accesskey="c" /><br />' % (self.page_name)
-        print '<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e">%s</textarea>' % (preview or self.get_raw_body())
+        print '<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e">%s</textarea>' % cgi.escape(preview or self.get_raw_body())
         print '<label for="file" accesskey="u">Or Upload a file:</label> <input type="file" name="file" value="%s" />' % file
         print """
             <br />