Ошибка при попытке реализовать amp-усы
Я пытаюсь повторить этот пример безуспешно. Я хочу добавить список, используя mustache
шаблон, как это:
<ul>
<amp-list width=auto
height=100
layout=fixed-height
src="/assets/popular.json">
<template type="amp-mustache"
id="amp-template-id">
<li>
<a href={{url}}>{{title}}</a>
</li>
</template>
</amp-list>
</ul>
мой /assets/popular.json
файл:
{
"items": [
{
"title": "amp-carousel",
"url": "https://ampbyexample.com/components/amp-carousel"
},
{
"title": "amp-img",
"url": "https://ampbyexample.com/components/amp-img"
},
{
"title": "amp-ad",
"url": "https://ampbyexample.com/components/amp-ad"
},
{
"title": "amp-accordion",
"url": "https://ampbyexample.com/components/amp-accordion"
}
]
}
Но я не могу заставить его работать, ценности в json
не заменяются в шаблоне, я получаю эту ошибку:
Missing URL for attribute 'href' in tag 'a'
Я не знаю, почему значение {{url}}
не заменяется должным образом с содержанием json
,
Я добавил необходимое scripts
в голове.
1 ответ
Решение
Недавно я мигрировал в Хьюго из Джекилла и столкнулся с той же проблемой. Ниже приведены решения для обоих.
Джекил
Это решено сейчас, проблема была я использую jekyll
и так теги {{tag}}
были интерпретированы как liquid tag
, Я решил это, написав код так:
<ul>
<amp-list width=auto
height=100
layout=fixed-height
src="/assets/popular.json">
<template type="amp-mustache"
id="amp-template-id">
<li>
<a href="{% raw %}{{url}}{% endraw %}">{% raw %}{{title}}{% endraw %}</a>
</li>
</template>
</amp-list>
</ul>
Обновление: я написал более подробное объяснение
Хьюго
<ul>
<amp-list width=auto
height=100
layout=fixed-height
src="/assets/popular.json">
<template type="amp-mustache"
id="amp-template-id">
<li>
<a class="card related" id={{"{{id}}"}} {{ printf "href=%q" ""{url}}" | safeHTMLAttr }}>
{{"{{title}}"}}
</a>
</li>
</template>
</amp-list>
</ul>