【问题标题】:Jekyll - sort pages by integerJekyll - 按整数对页面进行排序
【发布时间】:2016-07-22 19:19:43
【问题描述】:

我对带有自定义属性“n”的页面有一些问题,它采用整数值。我想按顺序遍历它们。然而,

{% assign pp = site.pages | sort:"n"  %}
{% for p in pp %}

...

{% endfor %}

只将属性值排序为字符串,所以我得到

1、10、2、3、...

如何按数值排序?由于我使用的是 github,因此我需要一个无插件的解决方案。

【问题讨论】:

标签: sorting jekyll


【解决方案1】:

如果您的 page.n 像字符串一样排序,也许您将它们分配为字符串 (n: "1")。

确保将它们分配为整数 (n: 1)。

【讨论】:

  • 我确实按照您的建议将它们分配为整数,但同样的问题仍然存在。
  • 用 {{ page.n | 控制检查 }} 是否返回 1"1"
  • 看起来所有的 jekyll frontmatter 都以字符串的形式出现。我的frontmatter中有n: 1,检查它会返回n="1"。所以我想问题是如何在排序之前将字符串转换为整数。
  • 似乎字符串通过加 0 转换为整数:{{assign i = n | plus: 0}}。但是,这不是一个完整的解决方案,因为我不知道如何根据分配的变量进行排序。
  • 我认为通过使用十六进制输入所有整数会很聪明。通过在数字前添加0x,它强制jekyll 将它们解析为整数(使用inspect 验证)。但是, sort 仍然会将它们转换为字符串!到目前为止,我最好的解决方法是使所有变量引用的数字长度相同(例如n: "00010")。它们必须被引用,否则它们会被解释为八进制整数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 2018-04-18
  • 2018-01-31
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2022-10-03
相关资源
最近更新 更多