Вы можете написать расширение для уценки. Сохраните этот код как mdx_autolink.py
import markdown
from markdown.inlinepatterns import Pattern
EXTRA_AUTOLINK_RE = r'(?<!"|>)((https?://|www)[-\w./#?%=&]+)'
class AutoLinkPattern(Pattern):
def handleMatch(self, m):
el = markdown.etree.Element('a')
if m.group(2).startswith('http'):
href = m.group(2)
else:
href = 'http://%s' % m.group(2)
el.set('href', href)
el.text = m.group(2)
return el
class AutoLinkExtension(markdown.Extension):
"""
There's already an inline pattern called autolink which handles
<http://www.google.com> type links. So lets call this extra_autolink
"""
def extendMarkdown(self, md, md_globals):
md.inlinePatterns.add('extra_autolink',
AutoLinkPattern(EXTRA_AUTOLINK_RE, self), '<automail')
def makeExtension(configs=[]):
return AutoLinkExtension(configs=configs)
Затем используйте его в своем шаблоне так:
{% load markdown %}
(( content|markdown:'autolink'))
Обновление:
Я обнаружил проблему с этим решением: когда используется стандартный синтаксис ссылки уценки и отображаемая часть соответствует регулярному выражению, например:
[www.google.com](http://www.yahoo.co.uk)
странно становится:
www.google.com
Но кто бы вообще хотел это делать?!