0

我正在为播客制作 Jekyll 主题。我已经放置了 RSS 渲染,所以我想使用<audio>标签在页面中添加一个 HTML5 播放器。

在播客帖子的前端,我有以下结构:

    - audio
      - type: typeA
        url: urlA
      - type: typeB
        url: urlB

我想找到一个特定的类型并使用关联的 URL 作为播放器的文件。有没有一种简单的方法来捕捉正确的条目(如果我可以在输入正确之前进行测试)还是应该解析所有的audiofrontmatter条目直到找到我想要的条目?

PS:该页面托管在 Github Pages - http://github.com/hufflepuffbr/hufflepuffbr.github.io

4

1 回答 1

1

你的方式

使用YAML您定义的前面的内容,只能循环遍历列表。这是一个未排序的列表,因此根据定义搜索是 N 阶(即,我们必须遍历整个列表)。

{% assign desired_type = "typeA" %}
{% capture audio_source %}{% for a in page.audio %}{% if a.type == desired_type %}{{ a.url }}{% endif %}{% endfor %}{% endcapture %}
<audio src="{{ audio_source }}">

更好的方法

但是,如果您将YAML前面的内容切换为 map/dictionary/hash 格式,如下所示:

audio:
    typeA: urlA
    typeB: urlB

您可以直接在变量中查找类型:

{% assign desired_type = "typeB" %}
audio src="{{ page.audio[desired_type] }}">

像往常一样,小心包含 的 url :,因为这会破坏YAML解析器。这些可以在".

于 2015-08-14T19:05:16.943 回答