如何使用Jekyll和Markdown自动转义HTML内容?

13

在foo.markdown中,我有以下内容:

---
layout: default
title: Snarky little Ewok
---

A little Ewok is sometimes referred too as <h3>. But pappa Ewok is called <h1> - if you know what's good for you.

我希望Jekyll自动转义HTML中的大于和小于字符。今天的学徒培训真是让我疲惫不堪,因此我懒得手动进行 HTML 转义: >h3<

是否存在配置选项或其他方法可以自动转义 Jekyll Markdown 内容?

1个回答

16
如果您使用的是Textile而不是Markdown,则有一种方法。
Liquid标记具有textilize&escape过滤器;这两个过滤器可以让您在Textile上实现所需的功能。您需要将文件保存为文本(文件扩展名:txt),然后在进行Textil化之前转义HTML:
---
layout: default
title: Snarky little Ewok
---

This file's extension is .txt

A little Ewok is sometimes referred too as <h3>. But pappa Ewok is called <h1> - if you know what's good for you.

然后在default.html布局中,不要写成:

{{ page.content }}

你会得到这个:
{{ page.content | xml_escape | textilize }}

由于Jekyll上尚未有'markdownify'过滤器,因此您无法使用markdown进行操作。在Jekyll上有一个问题(问题134)需要添加'markdownify'过滤器。

编辑:

现在可以使用markdown(自Jekyll 0.10.1起)

{{ page.content | xml_escape | markdownify }}

2
在编程中,这个“一”就是力量。 - Sandeep
2
不,它是 {{ page.content | markdownify }} -- Liquid 扩展 - Daniel Beardsley
自2011年起,escape已更名为xml_escape。我无法在此提供示例,请如果您仍然感兴趣,请开一个新的问题。 - kikito
如果您只想在Jekyll中删除HTML标签,请考虑使用“strip_html”过滤器。 - czerasz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接