Jekyll:在site.records中包括记录,但不呈现html页面

时间:2019-03-31 17:17:04

标签: jekyll liquid

我有一个如下所示的Jekyll设置:

_config.yml
_records
  a.html
  b.html
  c.html
...

我想创建一个链接到每个记录的主页。但是,我想将a.htmlb.html渲染为/records/,但是我不想将c.html渲染为/records/,因为将提供HTML。完全从另一个进程到我的服务器。

我尝试在_config.yml中设置以下内容:

exclude:
  _records/c.html

但这也会从c.html中删除site.records,这不是我想要的。我目前拥有的最好的解决方案是阻止我的部署脚本部署_site/records/c.html,但是我宁愿首先避免生成_site/records/c.html

是否可以在c.html中包含site.records以便在主页上创建链接,但不能呈现/records/c.html?他人在此问题上提供的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这就是我的方法。在_records/c.html内,设置最前面的内容:

permalink: '_'
route: /records/c.html

这样做将使我们将页面的html内容呈现到_site/_.html,这是一条永远不会被访问的路线。

然后在index.html中创建指向此页面的route属性的链接,使用:

{% for record in site.records %}
  {% if record.route %}
    {% assign url = record.route %}
  {% else %}
    {% assign url = record.url %}
  {% endif %}
  <a href='{{ url }}'>{{ record.title }}</a>
{% endfor %}