import os, re, time, urllib
from Cheetah.Template import Template
-
-# Copied from ZWiki and Gajim
-
-urlchars = r'[A-Za-z0-9/:@_%~#=&\.\-\?\+\$,]+'
-urlendchar = r'[A-Za-z0-9/]'
-url = r'["=]?((about|file|ftp|gopher|http|https|mailto|news|telnet|ed2k|irc|sip|magnet):%s)' % \
- (urlchars+urlendchar)
+url_re = r"(((https?|ftp|gopher|telnet)://|(mailto|file|news|about|ed2k|irc|sip|magnet):)[^' \t<>\"]+|(www|web|w3)[A-Za-z0-9_-]*\.[A-Za-z0-9._-]+\.[^' \t<>\"]+)[A-Za-z0-9/]"
def _url2href(match):
url = match.group(0)
return '<a href="%s">%s</a>' % (url, url)
-
full_dirs = len(os.getcwd().split('/')) + 1
class phd_pp(Template):
return self.rst2html()
def text2html(self):
- body = re.sub(url, _url2href, self.body_text())
+ body = re.sub(url_re, _url2href, self.body_text())
paragraphs = body.split("\n\n")
return "http://www.yandex.ru/yandsearch?text=%s&rpt=rad" % quote_string(query, "cp1251")
def wikipedia(self, query):
- return "http://en.wikipedia.org/wiki/%s" % quote_string(query.replace(' ', '_'))
+ return "http://en.wikipedia.org/wiki/%s" % quote_string(query.replace(' ', '_'), ext_safe=',')
def wikipedia_ru(self, query):
- return "http://ru.wikipedia.org/wiki/%s" % quote_string(query.replace(' ', '_'))
-
+ return "http://ru.wikipedia.org/wiki/%s" % quote_string(query.replace(' ', '_'), ext_safe=',')
-def quote_string(s, to_encoding="utf-8"):
- return urllib.quote(unicode(s, "koi8-r").encode(to_encoding))
+def quote_string(s, to_encoding="utf-8", ext_safe=''):
+ return urllib.quote(unicode(s, "koi8-r").encode(to_encoding), '/' + ext_safe)