我怎样才能访问哲基尔未呈现(降价)的含量与液体的标签?(How can I access un-re

2019-07-03 11:49发布

从阅读文档哲基尔的模板数据,人们可能认为的方式来访问未呈现的内容将是page.content ; 但据我所知,这是提供为已经由降价分析器提供的帖子内容。

我需要直接访问原始(原降价)内容的解决方案,而不是简单地试图将HTML转换回降价。

背景上使用的情况下,

我使用情况如下:我用的是pandoc插件来呈现降价对我的杰奇的网站,使用“mathjax”选项来获得相当方程。 然而,mathjax需要JavaScript,因此这些不RSS feed中,我通过遍历生成显示page.content像这样:

 {% 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或存在等),那么我可以轻松地添加解析RSS提要,例如,当将使用pandoc与“webtex”选项来生成图像式过滤器:

require 'pandoc-ruby'
module TextFilter
  def webtex(input)
    PandocRuby.new(input, "webtex").to_html
  end
end
Liquid::Template.register_filter(TextFilter)

但我得到的内容与HTML + mathjax代替原料降价已经呈现的方程,我卡住了。 转换回降价没有帮助,因为它不转换mathjax(简单garbles它)。

有什么建议? 肯定有一个方法来调用原始降价呢?

Answer 1:

下面是我认为你将有麻烦: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/convertible.rb https://github.com/mojombo/jekyll/blob/master/ LIB /化身/ site.rb

从我的阅读,对于特定职位/页self.content被替换通过降价和液体convertible.rb运行self.content,在79线的结果:

self.content = Liquid::Template.parse(self.content).render(payload, info)

文章页面,在37-44行和site.rb 197-211见过呈现:

def process
  self.reset
  self.read
  self.generate
  self.render
  self.cleanup
  self.write
end

... ...

def render
  payload = site_payload
  self.posts.each do |post|
    post.render(self.layouts, payload)
  end

  self.pages.each do |page|
    page.render(self.layouts, payload)
  end

  self.categories.values.map { |ps| ps.sort! { |a, b| b <=> a } }
  self.tags.values.map { |ps| ps.sort! { |a, b| b <=> a } }
rescue Errno::ENOENT => e
  # ignore missing layout dir
end

通过你去渲染这个页面的时候,self.content已经被渲染到HTML - 所以它不是阻止它渲染的情况下。 已经完成了。

然而,发电机( https://github.com/mojombo/jekyll/wiki/Plugins )渲染阶段之前运行,所以,据我可以从阅读源告诉,你应该能够很平凡写发生器将重复self.content到一些属性(如self.raw_content)以后可以访问在你的模板原材料降价{{page.raw_content}}。



Answer 2:

我结束了我的重命名.md文件.html ,使他们不要被降价渲染器渲染的。



文章来源: How can I access un-rendered (markdown) content in Jekyll with liquid tags?