免责声明:这是对Hugo 论坛上未回答的问题的重新发布。如果这不酷,请告诉我,我会删除/编辑它。
我正在尝试使用Hugo(静态网站生成器)来替换企业营销网站。我可能会解决这个问题,所以在我进入我的黑客解决方案之前,我会尝试表达我的愿望。
我的目标
对于我公司的网站,我们有几类迭代内容,例如“案例研究”和“顾问”。这些类别已经组织在树中。
我想创建 *.md 页面,允许非技术内容创建者自定义页面顶部的标题和一些内容,在此之下,我想添加一系列部分,每个部分列出其中一个子目录的帖子。
示例输出可能如下所示:
<head>
<title>About us</title>
</head>
<body>
<!-- Marketing content generated from /content/about/index.md -->
<h1>About us</h1>
<!-- Leadership team list generated automatically from /content/about/leaders/* -->
<section>
<h2>Leadership team</h2>
<ul>
<li>
<!-- Content from /content/about/leaders/first_last.md* -->
</li>
</ul>
</section>
<!-- Foo list generated automatically from /content/about/foo/* -->
<section>
<h2>Foo</h2>
<ul>
<li>
<!-- Content from /content/about/foo/bar.md* -->
</li>
</ul>
</section>
</body>
我现在怎么做
我正在为每个基于准列表的索引页面创建自定义布局,并且布局使用部分呈现与自定义 .Params.type 匹配的每个页面。所以我的 /content/about/index.md 页面在 /layouts/about.html 文件中进行了大量定制。
我觉得应该有更好的方法来至少执行以下操作之一:
- 使用可以访问 .Site.Pages 对象的简码,因此我的内容创建者可以
{{< list 'leader' >}}
在内容页面的任何位置编写类似内容,以获取所有内容的列表.Params.type = 'leader'
- 使用自定义布局,但遍历该页面的“子”页面,而不是按类型过滤所有页面。
- 使用 list.html 页面模板,而不会牺牲为内容创建者轻松定制降价内容的能力。
这些方法在现有技术上是否可行,而我只是在文档中遗漏了一些核心概念?理想情况下,我希望能够做的不止一个,这样网站的主页就可以通过简码挑选一些内容列表,但有几个部分会自动分组其子目录的列表。这样,内容创建者可以自由添加小节,而不会牺牲微调主页的能力。