【问题标题】:No permalink in Eleventy十一没有固定链接
【发布时间】:2020-08-16 08:15:56
【问题描述】:

我正在从 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 文档上的 official page 表示它采用文件夹的名称,在本例中为 posts

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

我使用this repo 作为基本主题。

【问题讨论】:

    标签: permalinks eleventy


    【解决方案1】:

    您可以为每个页面或每个集合设置永久链接。假设您创建了一个帖子文件夹,然后添加一个帖子。11tydata.json 文件,其中包含为集合设置基本值的内容。

    {
      "eleventyExcludeFromCollections": false,
      "layout": "post",
      "permalink": "post/{{ title }}/",
      "tags": [
        "posts"
      ]
    }
    

    【讨论】:

      【解决方案2】:

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

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

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

      摘录:

      使用目录数据管理默认值

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

      ---
      title: Lists
      syntax-id: lists
      api: "no"
      permalink: /basic-syntax/lists.html
      ---
      

      同样,这可能不是我们希望逐个文件管理的事情,但 Eleventy 具有可以提供帮助的功能:目录数据和永久链接变量。

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

      {
         "layout": "syntax",
         "tag": "basic-syntax",
         "permalink": "basic-syntax/{{ title | slug }}.html"
      }
      

      【讨论】:

      • 就我而言,除了您的解决方案中的.json 文件外,我还必须在_includes/layouts/post.njk(帖子模板)中添加permalink: "{{ title | slug }}/"
      猜你喜欢
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 2013-12-04
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      相关资源
      最近更新 更多