可以在page.url中使用Jekyll 3.0.x _include_ index.html

时间:2017-01-13 09:18:31

标签: jekyll

在Jekyll的先前版本中,有很多问题要求如何省略index.html,但我希望包含它。

是否有任何配置变量或其他使Jekyll 3.0.x包含它?

通过页面,我指的是在做

之类的事情时得到的对象
<ul>
{% for page in site.pages %}
  <li>{{ page.url }}</li>
{% endfor %}
</ul>

不是当前页面。

找到了这个解决方案,但它不太实用:

    {% assign last_url_char = page.url | split: '' | last %}
    {% if last_url_char == '/' %}
    {%    assign page_url = page.url | append: "index.html" %}
    {% else %}
    {%    assign page_url = page.url %}
    {% endif %}

1 个答案:

答案 0 :(得分:1)

您需要在永久链接设置中指定.html扩展名:

 permalink: /blog/:slug.html

然后所有页面都有该扩展名。

更新

创建一个全新的3.0安装:

$ jekyll _3.0_ new mysite
$ cd mysite

修改about.html并删除自定义固定链接,以便在生成包含.html扩展名的网页后查看更改:

---
layout: page
title: About
permalink: /about/    <--- delete
---

_config.yml中为页面帖子指定不同的永久链接:

defaults:
 -   
  scope:
    type: pages
  values:
    permalink: /:path/:basename:output_ext
 -   
  scope:
    type: posts
  values:
    permalink: /:year/:month/:day/:title.html

将以下代码添加到index.html以查看可用的网页及其网址:

<p>Current page: {{page.url}}</p>

{% for my_page in site.pages %}
{% if my_page.title %}
url: {{my_page.url }}
{% endif %}
{% endfor %}

现在投放网站$ jekyll _3.0_ serve并访问http://localhost:4000/index.html