【问题标题】:Looping over Jekyll collection page's tags - displaying without spaces循环 Jekyll 集合页面的标签 - 显示没有空格
【发布时间】:2018-02-28 18:29:25
【问题描述】:

我正在尝试遍历一个集合,将其页面显示为链接,并且在这些链接上,该页面的每个标签都是不同的类名。除了标签混杂在一起没有任何空格之外,我一切正常。

以下是我在页面前面添加标签的方式:

tags:
- javascript
- jquery
- requires-springshare-auth-server
- client-side

这是我的 html 中的液体:

<ul class="custom-dots">
   {% for libguide in site.libguides %}
     <li class="{{libguide.tags}}">   
        <a href="{{site.baseurl}}{{ libguide.url}}">{{libguide.title}}</a>
     </li>
    {% endfor %}
</ul>

这是通过开发工具查看的渲染 HTML:

<li class="javascriptjqueryrequires-springshare-auth-serverclient-side">  

【问题讨论】:

    标签: ruby jekyll liquid


    【解决方案1】:

    使用Liquid's join filter

    只有一个页面的简单示例:

    ---
    title: blah
    layout: default
    tags:
    - javascript
    - jquery
    - requires-springshare-auth-server
    - client-side
    ---
    
    <li class="{{ page.tags | join: ' ' }}">  
    

    呈现的 HTML:

     <li class="javascript jquery requires-springshare-auth-server client-side">  
    

    【讨论】:

      【解决方案2】:

      {{ libguide.tags }} 返回数组的原始输出,但您可以使用 join 过滤器将元素用空格分隔:

      {{ libguide.tags | join: " " }}.

      【讨论】:

        【解决方案3】:

        尝试将{{libguide.tags}} 替换为{{libguide | tags}}。它将显示以逗号分隔的标签。

        【讨论】:

        • 感谢您的建议。没用。发生的事情是它实际上在我的索引页面上显示了集合页面。它遍历集合并一个接一个地显示集合中的每一页
        • 能不能把标签改成tags: javascript jquery requires-springshare-auth-server client-side(标签名用空格隔开的单行)然后试试。
        • 我试过了,它仍然在做同样的事情。 Idk 如果这很重要,但我在我的 Jekyll 中没有使用任何插件,因为它是 GitHub 页面上的一个站点
        • 最后一件事要尝试。将标记保留在单行中作为先前的注释并运行{% for post in site.posts %} {{ post | tags }} {% endfor %}。我认为不需要插件。
        • 事实证明,一种方法是使用连接过滤器。感谢您的宝贵时间!
        猜你喜欢
        • 2017-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 2020-08-22
        • 1970-01-01
        相关资源
        最近更新 更多