Ключевое изменение заключалось в том, что мне нужен был список тегов, на которые можно ссылаться (которые в теме уже добавлены). внизу каждого сообщения), чтобы он также отображался вверху страницы /tags/ (а также делайте то же самое для категорий и других таксономий). Кроме того, я хотел, чтобы в каждом пузырьке тегов отображалось количество подходящих сообщений.
Итак, я поместил этот код в шаблон /layouts/_default/terms.html :
Код: Выделить всё
{{ $taxonomyObject := cond (eq .Data.Plural "tags") .Site.Taxonomies.tags .Site.Taxonomies.categories }}
{{ .Content }}
[list]
{{ range .Data.Pages }}
[*]
[url={{ .Page.RelPermalink }}]
{{- .Page.Title -}} [b] {{ $taxonomyObject.Count .Page.Title }}[/b]
[/url]
{{ end }}
[/list]
Я также изменил категорию exampleSite, чтобы добавить некоторые теги и категории. Однако, в отличие от того, что показано в большинстве примеров и руководств, я не задавал для всех значений, состоящих из одного слова, строчными буквами (если бы я это сделал, я бы не заметил этой проблемы).
Вот как выглядит результат на macOS (Sonoma 14.4.1, Intel, go v1.22.1, Hugo v0.124.1):

[img]https://i.stack.imgur. com/e1r9P.jpg[/img]
А вот что Hugo генерирует из того же источника в Linux (Alpine 3.18, x86_64, go v1.20.11, Hugo v0.111.3)

< img alt="Categories-Linux" src="

Как видите, различия заключаются в следующем:
- В Linux заголовки таксономии отображаются точно так же, как в исходном коде — с заглавной буквы, только если источник написан с заглавной буквы. MacOS применяет правила капитализации «Название книги» (слова, кроме , , и т. д., пишутся с заглавной буквы).
- Если таксономия если заголовок написан с заглавной буквы или содержит пробел, то в Linux значение равно 0.
Часть найденного мной решения включает изменение записи шаблона следующим образом:
Код: Выделить всё
[*]
{{ $normalizedTerm := replace (lower .Page.Title) " " "-" }}
[url={{ .Page.RelPermalink }}]
{{- .Page.Title -}} [b] {{ $taxonomyObject.Count $normalizedTerm }}[/b]
[/url]
Так почему же это происходит? такое случается, и как мне добиться единообразного создания сайтов независимо от того, в какой ОС я это делаю? Я не вижу способа определить тип ОС внутри шаблона в документации Hugo (некоторые соответствующие функции есть здесь и здесь. И даже если бы это было возможно, это вряд ли идеальное решение:
< ul>
[*]это может быть связано с разными версиями Hugo
[*]это может быть связано с дистрибутивом/версией Linux, который я использую
Хотя одно очевидное отличие состоит в том, что файловая система Linux чувствительна к регистру, это не так просто, поскольку все файлы, которые создает Хьюго, в обеих системах пишутся строчными буквами без пробелов. HTML из одного и того же кода, в зависимости от ОС.
Итак, два вопроса:
- Почему? li>
Что мне изменить, чтобы получить тот же HTML?
Подробнее здесь: https://stackoverflow.com/questions/782 ... ferent-oss