Используйте переменную внутри Hugo контента
Я пытаюсь использовать переменную в содержимом статически сгенерированного сайта Хьюго. Например, содержимое выглядит следующим образом:
- Перейдите по ссылке вашего сайта ({{ .Site.BaseURL }})
- Введите свои учетные данные
- .....(бла бла бла)
Когда это визуализируется, часть {{ .... }} не обрабатывается... она остается такой же, как я описал выше. Я попробовал это с '$' также. Переменные в шаблонах, кажется, работают просто отлично. Нужно ли создавать шорткод для использования на страницах контента?
4 ответа
Похоже, шорткод - это способ сделать это. Для чего я стою, я изменил документ, чтобы он выглядел следующим образом:
- Перейдите на URL своего сайта ({{
}})
В layouts/shortcodes
Я создал файл siteurl.html
, Это выглядит следующим образом:
{{ .Page.Site.BaseURL }}
Мне нужно было добавить туда.Page, чтобы получить доступ к переменным сайта. Смотрите этот отчет о проблемах для более подробной информации.
В Hugo, если вы хотите использовать переменную в файле уценки (.md), вам сначала нужно создать шорткод для этого.
Вы можете выполнить следующие действия:-
создать шорткод
макеты / шорткоды / siteurl.html
{{ .Page.Site.BaseURL }}
Применение
content/post/myblogpost.md
---
# front-matter
---
1. Go to your site's url ({{< siteurl >}})
2. Enter your credentials
3. .....(blah blah blah)
результат
post/myblogpost.html
1. Go to your site's url (https://codingnconcepts.com)
2. Enter your credentials
3. .....(blah blah blah)
Источник: https://codingnconcepts.com/hugo/custom-shortcode-hugo/
Это попытка немного улучшить ответ @minitauros с помощью упрощенного примера поиска подраздела параметра (сайта) (также известного как обход дерева YAML, вывод элемента и т. д.).
Я бы хотел, чтобы у Hugo был синтаксис JSONPath или jq, и, очевидно, этот пример далеко не конкурирует ни с одним из решений.
config.yml
params:
mode: one
support:
mailing: info@example.net
layouts/shortcodes/param.html
{{ $v := .Site.Params }}
{{ range (split (.Get 0) ".") }}{{ $v = index $v (.) }}{{ end }}
{{ $v }}
content/_index.md
We are in mode {{< param "mode" >}}.
In case of turbulence, [reach the support](mailto:{{< param "support.mailing" >}}) for help.
У меня была такая же проблема, и этот пост мне помог.
Я хотел отобразить параметр сайта в содержимом своего сайта и обнаружил, что вы не можете использовать обычные шаблоны внутри файлов содержимого.
В итоге я создал шорткод для загрузки запрошенного параметра сайта. Кто знает, эта информация может кому-то помочь.
/config.yml
params:
appName: My app
/content/about.html
<p>My app's name is {{< param "appName" >}}</p>
/layouts/shortcodes/param.html
{{/* Usage: {{< param "siteParamName" }} */}}
{{ index .Site.Params (.Get 0) }}
Результат
<p>My app's name is My app</p>