Commit a9ac385c authored by Lukas Fleischer's avatar Lukas Fleischer
Browse files

Reintroduce backwards-compatible hyperlink syntax



Before switching to the new comment rendering script and Markdown, no
special syntax was needed to make URLs clickable. Reintroduce this
feature and automatically detect links in addition to the hyperlink
syntax already supported by Markdown.
Signed-off-by: Lukas Fleischer's avatarLukas Fleischer <lfleischer@archlinux.org>
parent 9aa4203c
#!/usr/bin/python3
import re
import sys
import bleach
import markdown
......@@ -7,6 +8,19 @@ import markdown
import aurweb.db
class LinkifyPreprocessor(markdown.preprocessors.Preprocessor):
_urlre = re.compile(r'(\b(?:https?|ftp):\/\/[\w\/\#~:.?+=&%@!\-;,]+?'
r'(?=[.:?\-;,]*(?:[^\w\/\#~:.?+=&%@!\-;,]|$)))')
def run(self, lines):
return [self._urlre.sub(r'<\1>', line) for line in lines]
class LinkifyExtension(markdown.extensions.Extension):
def extendMarkdown(self, md, md_globals):
md.preprocessors.add('linkify', LinkifyPreprocessor(md), '_end')
def get_comment(conn, commentid):
cur = conn.execute('SELECT Comments FROM PackageComments WHERE ID = ?',
[commentid])
......@@ -24,7 +38,7 @@ def main():
conn = aurweb.db.Connection()
text = get_comment(conn, commentid)
html = markdown.markdown(text, extensions=['nl2br'])
html = markdown.markdown(text, extensions=['nl2br', LinkifyExtension()])
allowed_tags = bleach.sanitizer.ALLOWED_TAGS + ['p', 'br']
html = bleach.clean(html, tags=allowed_tags)
save_rendered_comment(conn, commentid, html)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment