2

我想为我的 hugo-powered 网站编写一个通用短代码,在我的页面中添加一个下载部分,列出下载文件夹中的所有文件。

我有这样的网站布局:

.
├── content
│   └── press
│       ├── downloads
│       │   ├── presstext.pdf
│       │   └── presskit.zip
│       ├── _index.de.md
│       └── _index.en.md
└── layouts
    └── shortcodes
        └── downloads.html

我的降价文件如下所示:

---
title: "Downloads"
date: 2019-10-26T09:59:26+01:00
draft: true

resources:
- src: downloads/presskit.zip
  title: Presskit
  params:
    icon: pdf
- src: downloads/presstext.pdf
  title: Presstext
  params:
    icon: pdf
---

Look at my awesome downloads:
{{< downloads >}}

我的简码如下所示:

<ul class="downloads">
    {{ range .Page.Resources.Match "downloads/*" }}
    <li>
        <a target="_blank" href="{{ .Permalink }}">
            <i class="far fa-file-{{ .Params.icon }}"></i> {{ .Title }}
        </a>
    </li>
    {{ end }}
</ul>

但是没有文档匹配,所以{{ range .Resources.Match "downloads/*" }}总是返回空。我忽略了什么吗?

我已经尝试过:

{{ range .Resources.Match "downloads/*" }}
{{ range .Resources.Match "/downloads/*" }}
{{ range .Resources.Match "**.zip" }}
{{ range .Resources.Match "**.pdf" }}
{{ range .Resources.Match "press/downloads/*" }}
{{ range .Resources.Match "/press/downloads/*" }}

在 Hugo 0.59.0 上运行

4

1 回答 1

2

我放弃了这一点,最终改为这样做:

.
├── content
│   └── press
│       ├── presstext.pdf
│       ├── presskit.zip
│       ├── _index.de.md
│       └── _index.en.md
└── layouts
    └── shortcodes
        └── downloads.html

我的降价:

---
title: "Downloads"
date: 2019-10-26T09:59:26+01:00
draft: true

resources:
- src: presskit.zip
  title: Press kit
  params:
    icon: archive
    download: true

- src: presstext.pdf
  title: Press text
  params:
    icon: pdf
    download: true

---

Look at my awesome downloads:
{{< downloads >}}

短代码:

<ul class="downloads">
  {{ range .Page.Resources }}
    {{ if isset .Params "download" }}
    <li>
      <a target="_blank" href="{{ .Permalink }}">
        <i class="far fa-file-{{ .Params.icon }}"></i> {{ .Title }}
      </a>
    </li>
    {{ end }}
  {{ end }}
</ul>
于 2019-10-26T16:08:48.297 回答