From: Bernie Innocenti Date: Mon, 28 Jul 2008 07:01:39 +0000 (+0545) Subject: Implement himg syntax X-Git-Tag: v3.0~15 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;ds=sidebyside;h=6ea5bc45761e688cc888c7a17a6399b31d04bcc7;hp=8bfb01a3223d8ab205a28968703831fc17fba04a;p=geekigeeki.git Implement himg syntax --- diff --git a/geekigeeki.py b/geekigeeki.py index 854c715..dba75a2 100755 --- a/geekigeeki.py +++ b/geekigeeki.py @@ -33,6 +33,7 @@ word_re = re.compile(r"^\b((([A-Z][a-z0-9]+){2,}/)*([A-Z][a-z0-9]+){2,})\b$") file_re = re.compile(r"^\b([A-Za-z0-9_\-][A-Za-z0-9_\.\-/]*)\b$") img_re = re.compile(r"^.*\.(png|gif|jpg|jpeg)$", re.IGNORECASE) url_re = re.compile(r"^[a-z]{3,8}://[^\s'\"]+\S$") +link_re = re.compile("(?:\[\[|{{)([^\s\|]+)(?:\s*\|\s*([^\]]+)|)(?:\]\]|}})") title_done = False @@ -342,20 +343,30 @@ class WikiFormatter: return '<<' + '|'.join(argv) + '>>' def _hurl_repl(self, word): - m = re.compile("\[\[([^\s\|]+)(?:\s*\|\s*([^\]]+)|)\]\]").match(word) + m = link_re.match(word) name = m.group(1) descr = m.group(2) or name if img_re.match(name): - name = relative_url(name) - # The "extthumb" nonsense works around a limitation of the HTML block model - return '
%s
%s
' % (name, name, descr, descr) + # DEPRECATED SYNTAX: use {{foo.jpg|descr}} instead + _inl_repl(self, word) else: if img_re.match(descr): descr = '' return link_tag(name, descr, 'wikilink') + def _inl_repl(self, word): + m = link_re.match(word) + name = m.group(1) + descr = m.group(2) or name + name = relative_url(name) + if descr: + # The "extthumb" nonsense works around a limitation of the HTML block model + return '
%s
%s
' % (name, name, descr, descr) + else: + return '' % (name, name) + def _email_repl(self, word): return '%s' % (word, word)