【问题标题】:How to create a HUGO page with no direct links如何创建没有直接链接的 HUGO 页面
【发布时间】:2022-04-02 20:11:38
【问题描述】:

有没有办法创建一个没有直接链接的hugo页面?我希望能够为页面创建一个降价文件,但只允许人们在有直接链接的情况下找到该页面。

【问题讨论】:

    标签: hugo


    【解决方案1】:

    是的,这是可能的。这实际上取决于您如何生成页面。至于现在,我展示了两种方法。

    方式 1:您的 _default/list.html 会生成指向您的内容的链接列表。您可以对其进行自定义以排除链接。观察 if 条件。

    {{ range .RegularPages }}
       {{ if (not in .Title "title of page to exclude") }}
        <li>
            <a href="{{.Permalink}}">{{.Date.Format "2006-01-02"}} | {{.Title}}</a>
        </li>
       {{ end }}
    {{ end }}
    

    方式 2: 或者,您可以将一个 html 文件放在您的 hugo 目录的 static 文件夹中。如果该目录不存在,您可以创建它。除非您从其他地方明确链接到静态内容,否则不会为静态内容生成直接链接。

    【讨论】:

    • 这行得通,只是为了扩展一点。我检查了我正在使用的主题,如果满足此条件,它正在渲染{{ range where .Paginator.Pages "Type" "!=" "page" }} Hugo 为“内容”中的文件分配了一个“类型”。所以比赛/帖子中的文件类型是帖子类型。我只是在名为 content/page/ 的目录中创建了一个页面,除非直接链接,否则我的文件不会呈现。
    • 这不适用于 RSS 和 sitemap.xml,因此您的页面仍然很容易找到。您还必须以相同的方式将它们排除在外。
    【解决方案2】:

    您可以将所有不想列出的页面放入单独的内容子文件夹中,并且不将其包含在菜单中。

    例如我的设置:

    content
    ├── blog
    ├── notes
    └── voice
    

    只有voiceblog 有菜单项,所以notes 中的所有内容都不能通过该站点的链接访问。

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 2017-05-09
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      相关资源
      最近更新 更多