1

免责声明:这是对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 页面模板,而不会牺牲为内容创建者轻松定制降价内容的能力。

这些方法在现有技术上是否可行,而我只是在文档中遗漏了一些核心概念?理想情况下,我希望能够做的不止一个,这样网站的主页就可以通过简码挑选一些内容列表,但有几个部分会自动分组其子目录的列表。这样,内容创建者可以自由添加小节,而不会牺牲微调主页的能力。

4

1 回答 1

1
  • 您可以制作一个简码,说明.Page.Site.Pages- 但请注意,您可以从您迭代的页面访问的内容存在限制。仅元数据,而不是页面内容本身。我已经调用了这个the chicken or the egg problem
  • Hugo 中没有页面树结构的概念,我也看不出你如何组成一个。
于 2015-10-20T09:30:28.543 回答