Hugo(去静态站点生成器)列表中的特定URL

时间:2017-02-21 01:39:55

标签: go hugo

让我们说我有以下结构

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文件,克服了仅在主页中显示某些文章的问题,但我无法理解如果我不想在访问blog-article-2-1.md

时显示example.com/blog-folder-1/该怎么办

非常感谢任何帮助< 3

1 个答案:

答案 0 :(得分:1)

此时文档有点难以订购。我将把重要主题链接到hugo文档,以便您能够阅读更多详细信息。在查看Content Organisation之后,有两个Sections

  • 博客文件夹-1
  • 博客文件夹-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 }}