【问题标题】:Hugo (go static site generator) list for specific URLs特定 URL 的 Hugo(静态站点生成器)列表
【发布时间】:2017-02-21 22:31:01
【问题描述】:

假设我有以下结构

content
- blog-folder-1
-- blog-article-1-1.md
-- blog-article-1-2.md
- blog-folder-2
-- blog-article-2-1.md
-- blog-article-2-2.md

然后我还有layouts/_default/list.html 文件,每次访问example.com/example.com/blog-topic-1/example.com/blod-topic-2/ 时都会调用该文件

所以我遇到的问题是我不希望layouts/_default/list.html 文件为这些不同的路径生成相同的内容..

通过将++ displayHomepage = "true" ++ 添加到.md 文件并将{{ range $index, $page := first 50 (where .Site.Pages.ByPublishDate ".Params.displayHomepage" "true") }} 添加到list.html 文件,我克服了仅在主页中显示某些文章的问题,但我不知道如果我不这样做该怎么办'访问example.com/blog-folder-1/时不想显示blog-article-2-1.md

任何帮助将不胜感激

【问题讨论】:

    标签: go hugo


    【解决方案1】:

    在这一点上,文档有点难以订购。我会将重要主题链接到 hugo 文档,以便您能够阅读更多详细信息。看了你的Content Organisation之后有两个Sections

    • blog-folder-1
    • blog-folder-2

    所以在你的主题中你可以define one template for each section。如果没有提供模板,hugo 使用默认的。

    所以在你的 layouts 文件夹中有这样的逻辑:/layouts/SECTION/LAYOUT.html

    对于您的情况,您可以定义默认布局。例如,当 blog-folder-2 需要另一个模板时,您的结构将如下所示:

    layouts/
      ▾ _default/
          single.html
      ▾ blog-folder-2/
          single.html
    

    如果您想过滤掉列表中的一个部分,您需要使用page variables

    在您浏览网站时,您可以添加 where 子句:

     {{ range $i, $p := (.Paginate (where .Data.Pages "Section" "!=" "blog-folder-2")).Pages }}
    

    【讨论】:

    • 啊,这就是他们对这些部分的意思,我认为它与完全不同的东西有关.. 非常感谢!我认为如果更好地强调它与更改特定 .md 文件/内容文件夹的内容有关,这些部分会变得更清晰/更容易理解
    • 嗯,也许我理解错了.. 但是这个方法不能与 list.html 一起使用吗?我尝试在 layouts 文件夹中创建 blog-folder-2 并放置了一个 list.html 文件.. 但它似乎被忽略了?
    • 要做到这一点,你需要这样的范围:` {{ range $i, $p := (.Paginate (where .Data.Pages "Section" "!=" "blog- folder-2")).Pages }}
    • 嗯,感觉很困惑.. 如果我想要所有内容文件夹(x.com/、x.com/blog-folder-1/ 和 x.com/blog-folder-2/ ) 拥有其唯一的 list.html 文件,那么所有规则都应该在 layouts/_default/list.html 文件中定义吗?还是我也应该在 layouts/blog-folder-1/list.html 和 layouts/blog-folder-2/list.html 文件夹中创建 list.html 文件?
    • 例如,在 _defaults/list.html 我有 {{ range $index, $page := first 50 (where .Site.Pages.ByPublishDate ".Params.displayHomepage" "true") } },在 blog-folder-1/list.html 我有 {{ range $index, $page := first 50 (where .Site.Pages.ByPublishDate ".Params.displayBlog1" "true") }} 等。 ?对我来说这是有道理的,但它似乎不起作用..所以我认为所有内容都需要写入 _defaults/list.html 文件中,这使得它非常复杂..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2015-07-22
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多