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
上呼叫 jsonify
。 jsonify
将散列或数组转换为 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 }}
目标
显示 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
上呼叫 jsonify
。 jsonify
将散列或数组转换为 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 }}