如何从单个降价渲染两个文件

时间:2018-02-09 20:06:38

标签: jekyll

我有一系列markdown文件,我想在构建页面时使用两个不同的布局文件在两个不同的文件集中呈现:

- 网站的html文件 - xml文件

有可能这样做吗?似乎markdown文件只能被解析一次。有什么建议?非常感谢

3 个答案:

答案 0 :(得分:0)

使用每个布局浏览文件中的markdown文件,并使用液体过滤器markdownify在不同的上下文中处理相同的内容。

  

Markdownify

     

将Markdown格式的字符串转换为HTML。

     

{{ page.content | markdownify }}

答案 1 :(得分:0)

不需要指向布局文件的降价文件,而是需要两个指向降价帖子文件的页面。

有很多方法可以指向帖子文件。我想使用where过滤器:

{% assign post = site.posts | where:"url", include.url | first %}

现在你有一个post,假设你有fileOne.html你希望将该帖子放入其中。以下是您接近的方式:

---
layout:main
---

<h1>Some html here</h1>

{% assign post = site.posts | where:"url", include.url | first %}
{{ post.content }}

然后你可以在另一个名为fileTwo.html的文件中做同样的事情。

答案 2 :(得分:0)

您可以为此使用Includes

注意:您可以将源Markdown文件存储在_includes文件夹中,然后使用include将它们包含到其他文件中。
或者,将它们直接存储在目标文件所在的文件夹中,然后使用include_relative

我在这里显示第一个选项。

这是文件的内容将在另一个文件中结束的文件:

/_includes/foo.md

**bold**

[Stack Overflow](https://stackoverflow.com)

这是包含foo.md的文件:


a)当是Markdown文件时:

---
layout: default
title: blah
---

This is the "destination file" for the include.

{% include foo.md %}

b)任何不是M​​arkdown的内容:
(如果要渲染foo.md中的降价,则必须手动执行)

---
layout: default
title: blah
---

<p>This is the "destination file" for the include.</p>

{% capture tmp %}{% include foo.md %}{% endcapture %}
{{ tmp | markdownify }}

两种情况下的结果:

<p>This is the "destination file" for the include.</p>

<p><strong>bold</strong></p>

<p><a href="https://stackoverflow.com">Stack Overflow</a></p>