十一没有永久链接

Aji*_*ero 2 permalinks eleventy

我正在从 Jekyll 迁移到 Eleventy,以前我的博客文章链接有这种风格的永久链接: /:title/

我想要的:https://example.com/my-blog-post/为了posts/my-blog-post.md

我得到的:https://example.com/posts/my-blog-post/为了posts/my-blog-post.md

我如何在 Eleventy 中配置它?11ty docs 上的官方页面说它采用文件夹的名称,posts在这种情况下。

我想要这个/:title/用于我所有的降价文件。我无法在所有文件中手动设置永久链接。有没有办法对整个posts集合这样做?

我使用这个 repo作为基本主题。

Aji*_*ero 5

所以在搜索了很多(不是文档)之后,我终于在这篇文章中找到了解决方案。

在该部分的最后一部分,使用这个:

// posts.json (or whatever your collection name is)
{
   // ...
   "permalink": "/{{ title | slug }}/"
   // ...
}
Run Code Online (Sandbox Code Playgroud)

摘抄:

使用目录数据管理默认值

默认情况下,Eleventy 将在生成您的站点时维护您的内容文件的结构。在我们的例子中,这意味着/_basic-syntax/lists.md生成为/_basic-syntax/lists/index.html。像 Jekyll 一样,我们可以使用永久链接属性更改文件的保存位置。例如,如果我们希望此页面的 URL 为 /basic-syntax/lists.html,我们可以添加以下内容:

---
title: Lists
syntax-id: lists
api: "no"
permalink: /basic-syntax/lists.html
---
Run Code Online (Sandbox Code Playgroud)

同样,这可能不是我们想要在逐个文件的基础上管理的东西,但同样,Eleventy 具有可以提供帮助的功能:目录数据和永久链接变量。

例如,要为_basic-syntax文件夹中存储的所有内容实现上述目标,我们可以创建一个共享该文件夹名称并位于其中的 JSON 文件,即_basic-syntax/_basic-syntax.json并设置我们的默认值。对于永久链接,我们可以使用 Liquid 模板来构建我们想要的路径:

{
   "layout": "syntax",
   "tag": "basic-syntax",
   "permalink": "basic-syntax/{{ title | slug }}.html"
}
Run Code Online (Sandbox Code Playgroud)