在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 %}
答案 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