@zzzzBov 是对的,浏览器需要对要显示的标记中的实体进行编码。
但根据 Chrome 的源代码视图,您的 CMS 似乎在输出标记时可能会再次自动取消转义标记:
在这个来自有同样问题的人的错误报告中,维护者推荐了一个自定义主题函数来解决这个问题:
在 0.9 和 1.0 版本中,帖子和页面的内容在保存到数据库时不会更改,因此如果您输入像文本这样的 html 代码
,它将被呈现为 html,如果您想要对 html 进行编码,则必须将其输入编码为 < b>文本</b>。
为了解决这个问题,您可以使用主题 functions.php 文件中的自定义函数来完全按照您的喜好处理内容。
function mytheme_article_content() {
// if you just want the raw content you saved
return Registry::prop('article', 'html');
// if you want the content to be parsed with markdown
$md = new Markdown;
return $md->transform(Registry::prop('article', 'html'));
// if you want to encode any html in you posts
return htmlentities(Registry::prop('article', 'html'), ENT_NOQUOTES, Config::app('encoding'));
}
所以你有几个选项可以混合使用以获得你想要的输出。在您的模板中,只需将 article_html 替换为 mytheme_article_content。
我敢打赌最后一行 ( return htmlentities
...) 可能是您正在寻找的版本,因此请尝试删除它上面的两行,return
并按照维护者的建议调用mytheme_article_content
您的模板文件。