Как я могу автоматически экранировать HTML-контент, используя Jekyll и Markdown? - PullRequest
12 голосов
/ 05 февраля 2011

В 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.

Хорошо, я хочу, чтобы Джекилл автоматически html экранировал символы больше и меньше.Я серьезно устал после сегодняшнего обучения учеников, и мне просто лень вручную убегать от html:> h3 <</p>

Есть ли опция конфигурации или что-то для автоматического экранирования содержимого разметки Jekyll?

1 Ответ

15 голосов
/ 07 февраля 2011

Если бы вы использовали текстиль вместо уценки, был бы способ.

Жидкая разметка имеет textilize & escape фильтры; эти два позволят вам делать то, что вы хотели, но на текстиле. Вам нужно будет сохранить ваши файлы в виде текста (расширение файла: txt), а затем экранировать 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 есть проблема ( Issue 134 ) для добавления фильтра уценки.

EDIT:

Теперь возможно использовать уценку (начиная с jekyll 0.10.1)

{{ page.content | xml_escape | markdownify }}
...