mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
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 <lfleischer@archlinux.org>
This commit is contained in:
parent
9aa4203c7e
commit
a9ac385cb9
1 changed files with 15 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
import bleach
|
import bleach
|
||||||
import markdown
|
import markdown
|
||||||
|
@ -7,6 +8,19 @@ import markdown
|
||||||
import aurweb.db
|
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):
|
def get_comment(conn, commentid):
|
||||||
cur = conn.execute('SELECT Comments FROM PackageComments WHERE ID = ?',
|
cur = conn.execute('SELECT Comments FROM PackageComments WHERE ID = ?',
|
||||||
[commentid])
|
[commentid])
|
||||||
|
@ -24,7 +38,7 @@ def main():
|
||||||
conn = aurweb.db.Connection()
|
conn = aurweb.db.Connection()
|
||||||
|
|
||||||
text = get_comment(conn, commentid)
|
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']
|
allowed_tags = bleach.sanitizer.ALLOWED_TAGS + ['p', 'br']
|
||||||
html = bleach.clean(html, tags=allowed_tags)
|
html = bleach.clean(html, tags=allowed_tags)
|
||||||
save_rendered_comment(conn, commentid, html)
|
save_rendered_comment(conn, commentid, html)
|
||||||
|
|
Loading…
Add table
Reference in a new issue