【发布时间】:2014-01-16 10:55:10
【问题描述】:
我使用 webpy 创建了一个示例博客应用程序。我在这里使用了一些代码(Replace URL with a link using regex in python)来替换 URL,但是当我渲染页面时它不会显示超链接,而只是一个纯文本
在我的模板中:
<p>
<i>$datestr(post.posted_on) by $user</i><br/><br/>
$urlify.formatstring(post.content)
<p>
urlify.py
def formatstring(self, value):
pat1 = re.compile(r"(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL)
pat2 = re.compile(r"(^|[\n ])(((www|ftp)\.[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL)
value = pat1.sub(r'\1<a href="\2" target="_blank">\3</a>', value)
value = pat2.sub(r'\1<a href="http://\2" target="_blank">\3</a>', value)
return value
示例文本:
这个网址会让你的生活变得一团糟!所以不要点击这个。a href="http://www.someurl.com">一些网址/a>.
页面渲染后的预期应该是:
这个网址会让你的生活变得一团糟!所以不要点击这个。some url。
但实际是:
这个网址会让你的生活变得一团糟!所以不要点击这个。a href="http://www.someurl.com">一些网址/a>.
网址未更改为超链接。
编辑:在我的模板中: 而不是 $content,应该是 $:content 将 url 视为超链接。
【问题讨论】:
-
标题中不要写“已解决”。