gpt4 book ai didi

python - 格式化纯文本时,如何让 python-markdown 附加 "urlify"链接?

转载 作者:太空狗 更新时间:2023-10-30 01:44:07 25 4
gpt4 key购买 nike

Markdown 是将纯文本格式化为漂亮 html 的好工具,但它不会自动将纯文本链接转换为 URL。就像这个:

http://www.google.com/

当我格式化一段文本时,如何获取 markdown 以将标签添加到 URL?

最佳答案

你可以写一个 Markdown 扩展。将此代码保存为 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'))

更新:

我发现此解决方案存在问题:当使用 markdown 的标准链接语法并且显示部分与正则表达式匹配时,例如:

[www.google.com](http://www.yahoo.co.uk)

奇怪地变成: www.google.com

但是谁会愿意这样做呢?!

关于python - 格式化纯文本时,如何让 python-markdown 附加 "urlify"链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/203859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com