我的代码看起来像这样
的Python:
render = web.template.render('templates/', base="layout")
.
.
.
fileout_text = codecs.open(filename_text, 'r', 'utf-8').read()
text = markdown.markdown(fileout_text)
return render.text_temple(text=text)
text_template.html
:
$def with text
< text>$text < /text>
现在$text
应该包含html标记而不是markdown语法。
我的问题是,当网站显示时,标签会保留为文本 - 为什么会这样?
答案 0 :(得分:0)
您的模板系统正在转发HTML作为安全措施。您需要告诉模板Markdown的HTML输出是&#34;安全&#34;。根据您的代码,我假设您使用的是web.py. web.py docs州:
默认情况下,Templetor使用web.websafe过滤器进行HTML编码。
>>> render.hello("1 < 2") "Hello 1 < 2"
关闭过滤器使用:$。之后。例如:
The following will not be html escaped. $:form.render()
所以在你的模板中试试这个:
$def with text
< text>$:text < /text>
添加冒号($:text
)将告诉模板系统不要转义HTML。
如果我猜错并且您没有使用web.py,请告诉我们您使用的是哪个模板系统,也许我们可以为您指出正确的解决方案。虽然现在您已经知道问题所在,但您可以搜索该模板系统的文档并自己找到答案。
答案 1 :(得分:-1)
打印出您的变量,以确定您没有对html标记进行编码。
可能是&#34; <
&#34;编码为<
和&#34; >
&#34;编码为>
,这就是它在您的浏览器中显示HTML代码的原因。