【问题标题】:Jekyll - Parsing and finding some info and pairJekyll - 解析和查找一些信息和配对
【发布时间】:2015-10-03 02:48:05
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: html jekyll github-pages yaml-front-matter


    【解决方案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 前面的内容切换为地图/字典/哈希格式,如下所示:

    audio:
        typeA: urlA
        typeB: urlB
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多