我正在将我的网站从https://code4projects.net/迁移到https://sasadangelo.github.io/code4projects/。
旧网站使用的URL结构是这样的:
https://<domain>/<base URL>/:slug/
现在在我的代码中,我将这行修改为:
permalink: /:slug/
添加尾斜杠。似乎它是有效的,但我有很多疑问,因为我不清楚_config.yml
文件中本节的含义:
defaults:
- scope:
path: ""
type: "authors"
values:
layout: "author"
- scope:
path: ""
type: "posts"
values:
layout: "post"
permalink: /:slug
- scope:
path: ""
values:
layout: "default"
我试着阅读文档,但是作用域的概念对我来说不是很清楚。
此外,我希望我的改变只适用于帖子(在_posts文件夹),但我不清楚为什么它也适用于页面(都在根文件夹中)。
为什么Jekyll没有_pages文件夹?此外,在上面的小节中,defaults
数组和类型字段的含义是什么?
我试着搜索信息,但找到的只让我困惑。
collection vs page
Jekyll有集合,您可以为其定义名称,文件夹等。文章(和草稿)也是集合,但是是标准的Jekyll集合。
页面不是一个集合,而是内容的最基本构建块。它们对于独立的内容非常有用,例如索引页面或静态about页面。通常,有些页面存储在根文件夹中。其他页面位于没有下划线的(子)文件夹中,例如页面或文档。
您可以在Jekyll文档起始页的内容部分找到更多信息:https://jekyllrb.com/docs/
<<h3>默认值数组/h3>你也可以在文档中阅读更多关于Front Matter Defaults的信息!
defaults键保存了一个作用域/值对数组,这些值对定义了特定文件路径的默认值,以及该路径中的文件类型。
- scope: path: "" # an empty string here means all files in the project type: "posts" # previously `post` in Jekyll 2.2. values: layout: "default"
现在,这只会为类型为posts的文件设置布局。您可以使用的不同类型是页面,帖子,草稿或您网站中的任何集合。虽然type是可选的,但是在创建作用域/值对时必须为path指定一个值。
页面的默认值
对于页面,选项较少,请参见https://jekyllrb.com/docs/permalinks/#pages
你的网页索引也是一个网页。如果您为页面设置了选项,则需要覆盖站点索引文件中的永久链接。