В шаблонах Jinja2 (Python Flask) я могу создать статическое навигационное меню, определив список кортежей с кодом, подобным следующему:
{% for item in [('', 'Home'), ('menu1', 'Menu1'), ('menu2', 'Menu2')] %}
<li><a href="{% if item[0] == '' %}/{% else %}{{ '/%s/' % item[0] }}{% endif %}">{{ item[1] }}</a></li>
{%- endfor %}
Я бы хотел создать нечто подобное в шаблонах Go HTML. Я предполагаю, что эквивалентом списка кортежей будет массив / фрагмент массивов строк, то есть что-то вроде
{{ $items := { {"", "Home"}, {"menu1", "Menu1"}, {"menu2", "Menu2"} } }}
{{ range $items }}
<li><a href="{{if .[0] == \"\"}}/{{else}}{{ \"/.[0]/\" }}{{end}}">{{ .[1] }}</a></li>
{{end}}
Однако во время выполнения, особенно когда Go пытается проанализировать файлы шаблона, он паникует с помощью unexpected "{" in command
(раньше он паниковал с unexpected "{" in range
, когда я непосредственно использовал диапазон).
Итак, возможно ли объявить массив массивов строк в шаблоне?