#html #go #hugo
# #HTML #Вперед #hugo
Вопрос:
Я новичок в Hugo, ничего не знаю о GoLang, и я пытаюсь сделать следующее.
Проблема
У меня есть сайт Hugo, и в своих сообщениях я указываю keywords
спереди, например:
---
author: Andrea Tino
keywords:
- language
- image
- fun
---
В моем шаблоне я хочу добавить <meta>
ключевые слова for, поэтому у меня есть:
<head>
<meta charset="utf-8">
{{ if .Keywords }}
<meta name="keywords" content="{{ .Keywords }}">
{{ end }}
<title>{{ .Title }} | {{ .Site.Title }}</title>
</head>
Проблема, конечно, в том, что я получаю это на выходе:
<head>
<meta charset="utf-8">
<meta name="keywords" content="[language image fun]">
<title>{{ .Title }} | {{ .Site.Title }}</title>
</head>
В то время как моя цель — получить:
<meta name="keywords" content="language, image, fun">
Как этого добиться?
Что я пробовал
Просматривая эту документацию, я попытался немного поиграть:
{{ if .Keywords }}
<meta name="keywords" content="{{ .Keywords | println }}">
{{ end }}
Также пробовал:
{{ if .Keywords }}
<meta name="keywords" content="{{ .Keywords | printf "%s" }}">
{{ end }}
Они не работают. Также пробовал:
{{ if .Keywords }}
<meta name="keywords" content="{{ println(strings.Join(.Keywords, ", ")) }}">
{{ end }}
Последнее вызывает ошибку:
Ошибка: «/Users/me/Git/myproj/themes/mytheme/layouts/partials/header.html:7:1″: ошибка синтаксического анализа: template: partials/header.html: 7: неожиданно » (» в операнде
Ответ №1:
Можете ли вы попробовать
<p>Keywords: {{ delimit .Keywords ", " }}</p>
Комментарии:
1. Я собираюсь попробовать. Не могли бы вы помочь мне понять синтаксис? Что такое Go? И с чего начинается Hugo? Я имею в виду, что этот синтаксис {{ xxx }}`, который я понимаю, является Hugo. Безопасно ли понимать, что все, что попадает в эти скобки, является фактическим Go?
Ответ №2:
Выводите мета-тег только тогда, когда ключевые слова находятся на вашем переднем плане:
{{- with delimit .Keywords "," -}}
<meta name="keywords" content="{{.}}">
{{ end }}
Комментарии:
1. Собираюсь попробовать, спасибо. Можете ли вы объяснить разницу между
{{ xxx }}
и{{- xxcx -}}
?2. Обрезка пробелов!
3. Спасибо за ваш ответ. Причина, по которой я выбрал @Sefa, заключается в том, что это однострочник 🙂 Но ваш ценный и позволил мне понять несколько вещей. Спасибо.