Ресурсы Hugo Page - не удается найти совпадение

Я хочу написать общий шорткод для моего веб-сайта с поддержкой hugo, который добавляет на мои страницы раздел загрузки, в котором перечислены все файлы в папке загрузок.

У меня веб-сайт устроен так:

.
├── 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

2 ответа

Хорошо, это старый, но правильный ответ заключается в том, что для пакетов веток (_index.md) вы можете иметь ресурсы ТОЛЬКО в одной папке.

Для пакетов листьев (index.md) вы можете иметь ресурсы в подпапках.

Я предполагаю, что это потому, что каждая подпапка в пакетах ветвей должна быть страницей с ресурсами (листовой пакет).

Вот исходник https://gohugo.io/content-management/page-bundles/ (см. строку таблицыWhere can the Resources live?)

Я отказался от этого и вместо этого сделал следующее:

.
├── 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>
Другие вопросы по тегам