Jekyll:按标题哈希按字母顺序对页面进行排序,仅当存在时才替换为另一个哈希
Jekyll: Sorting pages alphabetically by the title hash, replaced by another hash only if it exists
我的 YAML 总是有页面的标题哈希。
---
title: Why Green and Black Teas Should be Mixed.
---
YAML 有时对某些页面有 title-override 哈希值。
---
title: Why Green and Black Teas Should be Mixed.
title-override: Best reasons why Green and Black Teas Should be Mixed.
---
这个 title-override 哈希是为了让我可以更改存档中的措辞。
存档具有条件逻辑,如果没有 title-override 哈希,则仅使用标题哈希。它看起来像这样:
<table>
<tbody>
{% assign sorted_by_title = site.pages | sort:'title' %}
{% for page in sorted_by_title %}
<tr>
<td>
<a href="{{ site.url }}{{ page.url }}">
{% if page.title-override %}
{{ page.title-override }}
{% else page.title %}
{{ page.title }}
{% endif %}
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
问题:我按 标题 字母顺序排序。 “Why”出现在“Bad”和“Friendly”之后,所以 table 顺序会是这样的:
- 坏狗总能上天堂。
- 友好的马铃薯种植技巧。
- 应混合绿茶和红茶的最佳理由。
- YouTube 审查独角兽视频,原因是 Rainbow Blood(针对 Children)。
不幸的是,显示的内容不是按字母顺序排列的,因为我是按标题排序的,而不是显示的内容。
如果我按 title-override 排序,“应该混合绿茶和红茶的最佳理由。”不幸的是第一个出现,如果它是唯一具有 title-override 散列的。
如何按出现的内容排序,而不是仅按标题或 title-override?我试过使用 group_by 和 group_by_exp 对两者进行排序,但它没有用。
将您的行 pages
更改为 posts
{% assign sorted_by_title = site.pages | sort:'title' %}
到
{% assign sorted_by_title = site.posts | sort:'title' %}
并创建相关的 _post
文件夹。
如果要排序,请检查标题中的小写和大写
我的 YAML 总是有页面的标题哈希。
---
title: Why Green and Black Teas Should be Mixed.
---
YAML 有时对某些页面有 title-override 哈希值。
---
title: Why Green and Black Teas Should be Mixed.
title-override: Best reasons why Green and Black Teas Should be Mixed.
---
这个 title-override 哈希是为了让我可以更改存档中的措辞。
存档具有条件逻辑,如果没有 title-override 哈希,则仅使用标题哈希。它看起来像这样:
<table>
<tbody>
{% assign sorted_by_title = site.pages | sort:'title' %}
{% for page in sorted_by_title %}
<tr>
<td>
<a href="{{ site.url }}{{ page.url }}">
{% if page.title-override %}
{{ page.title-override }}
{% else page.title %}
{{ page.title }}
{% endif %}
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
问题:我按 标题 字母顺序排序。 “Why”出现在“Bad”和“Friendly”之后,所以 table 顺序会是这样的:
- 坏狗总能上天堂。
- 友好的马铃薯种植技巧。
- 应混合绿茶和红茶的最佳理由。
- YouTube 审查独角兽视频,原因是 Rainbow Blood(针对 Children)。
不幸的是,显示的内容不是按字母顺序排列的,因为我是按标题排序的,而不是显示的内容。
如果我按 title-override 排序,“应该混合绿茶和红茶的最佳理由。”不幸的是第一个出现,如果它是唯一具有 title-override 散列的。
如何按出现的内容排序,而不是仅按标题或 title-override?我试过使用 group_by 和 group_by_exp 对两者进行排序,但它没有用。
将您的行 pages
更改为 posts
{% assign sorted_by_title = site.pages | sort:'title' %}
到
{% assign sorted_by_title = site.posts | sort:'title' %}
并创建相关的 _post
文件夹。
如果要排序,请检查标题中的小写和大写