X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=geekigeeki.py;h=38870c8539c1bb39fc29b61be63878cefe0f635d;hb=7bda2ec9a7e1a4869a00b0935ef89afa739b8f44;hp=106250b10c63a627109a333dc7ffbfa9b85bea60;hpb=8c31b4585b45d274d339412f72ba77b944337dbd;p=geekigeeki.git diff --git a/geekigeeki.py b/geekigeeki.py index 106250b..38870c8 100755 --- a/geekigeeki.py +++ b/geekigeeki.py @@ -37,12 +37,17 @@ link_re = re.compile("(?:\[\[|{{)([^\s\|]+)(?:\s*\|\s*([^\]]+)|)(?:\]\]|}})") title_done = False - # CGI stuff --------------------------------------------------------- - def script_name(): return os.environ.get('SCRIPT_NAME', '') +def query_string(): + path_info = os.environ.get('PATH_INFO', '') + if len(path_info) and path_info[0] == '/': + return path_info[1:] or 'FrontPage' + else: + return os.environ.get('QUERY_STRING', '') or 'FrontPage' + def privileged_path(): return privileged_url or script_name() @@ -316,14 +321,14 @@ class WikiFormatter: self.styles = { #wiki html enabled? "//": ["em", False], - "''": ["em", False], "**": ["b", False], - "'''": ["b", False], "##": ["tt", False], - "``": ["tt", False], "__": ["u", False], "^^": ["sup", False], - ",,": ["sub", False] + ",,": ["sub", False], + "''": ["em", False], # OBSOLETE + "'''": ["b", False], # OBSOLETE + "``": ["tt", False], # OBSOLETE } def _b_repl(self, word): @@ -365,7 +370,10 @@ class WikiFormatter: if macro: return macro(argv) else: - return '<<' + '|'.join(argv) + '>>' + msg = '<<' + '|'.join(argv) + '>>' + if not self.in_html: + msg = '' + msg + '' + return msg def _hurl_repl(self, word): m = link_re.match(word) @@ -407,10 +415,13 @@ class WikiFormatter: self.in_html += 1 return word; # Pass through + def _htmle_repl(self, word): + self.in_html -= 1 + return word; # Pass through + def _ent_repl(self, s): - if self.in_html and s == '>': - self.in_html -= 1 - return '>' + if self.in_html: + return s; # Pass through return {'&': '&', '<': '<', '>': '>'}[s] @@ -496,15 +507,16 @@ class WikiFormatter: | (?P \={2,6}) | (?P
\\\\) | (?P ^-{3,}) - | (?P \b(FIXME|TODO|DONE)\b) + | (?P \b( FIXME | TODO | DONE )\b ) # Links | (?P \<\<([^\s\|\>]+)(?:\s*\|\s*([^\>]+)|)\>\>) | (?P \[\[([^\s\|]+)(?:\s*\|\s*([^\]]+)|)\]\]) # Inline HTML - | (?P <(/|)(br|hr|div|span|form|iframe|input|textarea|a|img|h[1-5])[^>]*>) - | (?P [<>&]) + | (?P <(br|hr|div|span|form|iframe|input|textarea|a|img|h[1-5])\b ) + | (?P ( /\s*> | ) ) + | (?P [<>&] ) # Auto links (LEGACY) | (?P \b[a-zA-Z0-9_/-]+\.(png|gif|jpg|jpeg|bmp|ico|ogm|ogg|mkv|mpg|mpeg|mp4|avi|asf|flv|wmv|qt)) @@ -786,12 +798,7 @@ def main(): handler(form[cmd].value) break else: - path_info = os.environ.get('PATH_INFO', '') - if len(path_info) and path_info[0] == '/': - query = path_info[1:] or 'FrontPage' - else: - query = os.environ.get('QUERY_STRING', '') or 'FrontPage' - + query = query_string() if file_re.match(query): if word_re.match(query): Page(query).format()