从阅读Jekyll模板数据的文档中,一个人可能会认为访问未渲染内容的方法是通过page.content
,但据我所知,这提供的是已由Markdown解析器呈现的文章内容。
我需要访问原始Markdown内容的解决方案,而不仅仅是尝试将HTML转换回Markdown。
用例背景
我的用例如下:我使用 pandoc插件为我的Jekyll站点呈现Markdown,并使用“mathjax”选项获得漂亮的公式。 但是,Mathjax需要JavaScript,因此这些内容在RSS源中不会显示,我通过循环page.content
生成RSS源。
{% for post in site.posts %}
<entry>
<title>{{ post.title }}</title>
<link href="{{ site.production_url }}{{ post.url }}"/>
<updated>{{ post.date | date_to_xmlschema }}</updated>
<id>{{ site.production_url }}{{ post.id }}</id>
<content type="html">{{ post.content | xml_escape }}</content>
</entry>
{% endfor %}
正如xml_escape
过滤器所暗示的,post.content
在此处呈现为html格式。如果我可以获得原始内容(假设存在post.contentraw
或者类似的东西),那么我就可以轻松地添加一个过滤器,使用pandoc的“webtex”选项来在解析RSS提要时为方程式生成图像,例如:
require 'pandoc-ruby'
module TextFilter
def webtex(input)
PandocRuby.new(input, "webtex").to_html
end
end
Liquid::Template.register_filter(TextFilter)
但是,由于我对已经在html+mathjax中呈现的方程式感到满意,而不是原始的markdown格式,所以我陷入了困境。 回转回去成markdown并没有帮助,因为它不能将mathjax转换(只会使其混乱)。
有什么建议吗? 肯定有一种方法可以调用原始的markdown格式吧?