JSONIFY 在 Jekyll 中过滤奇怪的行为

JSONIFY Filter Odd Behavior in Jekyll

目标

显示 JSON 来自具有相同类别减去当前页面的链接的类似内容。

"relatedLink": [ "https://example.com/category-slug/page-title.html", "https://example.com/category-slug/page-title.html", "https://example.com/category-slug/page-title.html" ],

代码

{% capture results %}[
{% for category in page.categories %}
{% for post in site.categories[category] %}
{% if post.url != page.url %} 
   {{ post.url | relative_url | prepend: site.url | replace:" ", "," | jsonify  }}{% endif %}{% if forloop.last %}]{% else %}{% endif %}
    {% endfor %}{% endfor %}{% endcapture %}
    "relatedLink": {{ results }},

JSON-LD

中的结果错误
"relatedLink": [ "https://example.com/category-slug/page-title.html" "https://example.com/category-slug/page-title.html" "https://example.com/category-slug/page-title.html" ],

jsonify 没有用逗号分隔数组中的值。

我认为这是预期的行为。您正在 post.url 上呼叫 jsonifyjsonify 将散列或数组转换为 JSON,而不是字符串。

获得你想要的东西的最好方法可能是这样的:

{% capture results %}[
  {% for category in page.categories %}
    {% for post in site.categories[category] %}
      {% if post.url != page.url %} 
        "{{ post.url | relative_url | prepend: site.url }}"{% unless forloop.last %},{% endunless %}
      {% endif %}
    {% endfor %}
  {% endfor %}]
{% endcapture %}

"relatedLink": {{ results }}