diff options
Diffstat (limited to 'app/notes/mdx_urlize.py')
-rw-r--r-- | app/notes/mdx_urlize.py | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/app/notes/mdx_urlize.py b/app/notes/mdx_urlize.py deleted file mode 100644 index dc8d1d7..0000000 --- a/app/notes/mdx_urlize.py +++ /dev/null @@ -1,81 +0,0 @@ -"""A more liberal autolinker - -Inspired by Django's urlize function. - -Positive examples: - ->>> import markdown ->>> md = markdown.Markdown(extensions=['urlize']) - ->>> md.convert('http://example.com/') -u'<p><a href="http://example.com/">http://example.com/</a></p>' - ->>> md.convert('go to http://example.com') -u'<p>go to <a href="http://example.com">http://example.com</a></p>' - ->>> md.convert('example.com') -u'<p><a href="http://example.com">example.com</a></p>' - ->>> md.convert('example.net') -u'<p><a href="http://example.net">example.net</a></p>' - ->>> md.convert('www.example.us') -u'<p><a href="http://www.example.us">www.example.us</a></p>' - ->>> md.convert('(www.example.us/path/?name=val)') -u'<p>(<a href="http://www.example.us/path/?name=val">www.example.us/path/?name=val</a>)</p>' - ->>> md.convert('go to <http://example.com> now!') -u'<p>go to <a href="http://example.com">http://example.com</a> now!</p>' - -Negative examples: - ->>> md.convert('del.icio.us') -u'<p>del.icio.us</p>' - -""" - -import markdown - -# Global Vars -URLIZE_RE = '(%s)' % '|'.join([ - r'<(?:f|ht)tps?://[^>]*>', - r'\b(?:f|ht)tps?://[^)<>\s]+[^.,)<>\s]', - r'\bwww\.[^)<>\s]+[^.,)<>\s]', - r'[^(<\s]+\.(?:com|net|org)\b', -]) - -class UrlizePattern(markdown.inlinepatterns.Pattern): - """ Return a link Element given an autolink (`http://example/com`). """ - def handleMatch(self, m): - url = m.group(2) - - if url.startswith('<'): - url = url[1:-1] - - text = url - - if not url.split('://')[0] in ('http','https','ftp'): - if '@' in url and not '/' in url: - url = 'mailto:' + url - else: - url = 'http://' + url - - el = markdown.util.etree.Element("a") - el.set('href', url) - el.text = markdown.util.AtomicString(text) - return el - -class UrlizeExtension(markdown.Extension): - """ Urlize Extension for Python-Markdown. """ - - def extendMarkdown(self, md, md_globals): - """ Replace autolink with UrlizePattern """ - md.inlinePatterns['autolink'] = UrlizePattern(URLIZE_RE, md) - -def makeExtension(configs=None): - return UrlizeExtension(configs=configs) - -if __name__ == "__main__": - import doctest - doctest.testmod() |