具有空格或多个单词的Jekyll标签

Mat*_*ith 5 ruby liquid jekyll

我在Jekyll中将标记用于我的博客文章。以下是我在Markdown文件的最前面声明的标签的示例:

---
tags: [jekyll, tags, user experience]
---
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,“用户体验”是用空格渲染的,这会断开标记的链接。我想知道是否可以使用带有空格或多个单词的标签。

这是我的代码如下所示:

用Ruby标记:

{% if page.tags.size > 0 %}
  <div class="post-tags">
    <ul>
      {% for tag in page.tags %}
        <li><a href="/tags#{{ tag }}">{{ tag }}</a>{% if forloop.last == false %},{% endif %}</li>
      {% endfor %}
    </ul>
  </div>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

有人对我该怎么做有任何想法吗?谢谢!

Chr*_*cht 6

当我在博客中创建标签页面时,我遇到了同样的问题。

我的解决方案只是用破折号替换空格:

---
tags: [jekyll, tags, user-experience]
---
Run Code Online (Sandbox Code Playgroud)

我的一篇文章的前言示例:

tags:
- backup
- bitbucket-backup
- roboshell-backup
- source-control
Run Code Online (Sandbox Code Playgroud)

完成的 HTML看起来像这样:

<p><small>tags:
    <span class="blog_post_categories">
        <a href="/tags/#backup">backup</a>, 
        <a href="/tags/#bitbucket-backup">bitbucket-backup</a>, 
        <a href="/tags/#roboshell-backup">roboshell-backup</a>, 
        <a href="/tags/#source-control">source-control</a>
    </span>
</small></p>
Run Code Online (Sandbox Code Playgroud)

我确信有一个更优雅的解决方案,它实际上将空白显示为空白,但对我来说,破折号就足够了。


Dav*_*uel 5

您可以使用url_encode过滤器:{{ tag | url_encode }}

请注意,url_encode会将空格变成+号,而不是百分比编码的字符。cf. 液体文件