【问题标题】:How to customize the sorting of items on a page with jekyll如何使用 jekyll 自定义页面上项目的排序
【发布时间】:2016-11-07 00:06:54
【问题描述】:

我不完全确定如何表达我的请求,但是,基本上,我有一个包含多个类别的集合,这个集合的所有文章都显示在一个页面上。它已经按类别排序,但是,我正在尝试找到一种以特定方式对这些类别进行排序的方法。我尝试分配类别权重并使用它进行排序,但它不起作用。我不确定还有什么可以尝试的?

你可以在 GitHub 上找到我所做的所有代码...https://github.com/yndrelbosch/yndrelbosch.github.io

我正在尝试制作此页面:https://yndrelbosch.github.io/tutorials/ 对页面上的类别使用自定义排序...

该页面的代码在这里:/pages/tutorials.html

集合中的文章在这里:/_tutorials/

谁能帮帮我?

【问题讨论】:

  • 总是,总是直接发布代码,而不是链接到带有代码的外部网站。如果这些链接失效,那么这个问题对于寻找类似问题的解决方案的人来说毫无用处。发布代码,最好是一个完整的、最小的示例,说明您正在尝试做什么/无法开始工作。

标签: jekyll


【解决方案1】:

pages/tutorials.html中,你的{% assign categories = site.tutorials | group_by:"category" | sort: "category-weight" %}肯定不行。

由于category-weight 不是site.tutorials 文档中的键,排序过滤器将静默失败。

节省一些输入

我们可以通过根据文档路径定义默认变量来避免在教程前面设置类别。

让我们改变 _tutorials 组织:

_tutorials
├── advanced
│   ├── adding-next-previous-to-blog.md
│   └── ...
├── getting-started
│   ├── getting-started-with-jekyll.md
│   └── ...
└── setup
    ├── jekyll-on-windows-2.md
    └── ...

_config.yml 中添加一些默认值:

defaults:
  - ...
  - { scope: { path: "_tutorials/advanced" }, values:  { category: "Advanced" } }
  - { scope: { path: "_tutorials/getting-started" }, values:  { category: "Getting started" } }
  - { scope: { path: "_tutorials/setup" }, values:  { category: "Setup" } }

为教程类别顺序创建参考

_config.yml,添加

# this is used to display tutorials in the right categories order
# be sure to match default category names defined in site.defaults
tutorials-categories:
  - "Setup"
  - "Getting started"
  - "Advanced"

请注意,将类别顺序从 pages/tutorials.html 移动到 _config.yml 是为了集中配置。它有助于在默认设置和类别顺序之间保持同步。

让我们以正确的类别顺序显示我们的 tutos

pages/tutorials 中,我们可以这样做:

{% assign categories = site.tutorials | group_by:"category" %}

{% comment %} ++++++++++++++++++++++++++
We loop site.tutorials-categories to sort categories in a defined order
++++++++++++++++++++++++++ {% endcomment %}
{% for category in site.tutorials-categories %}

  {% assign current-category = categories | where:"name", category | first %}
  {% assign category-tutorials = current-category.items %}

  <h2>{{ category }}</h2>
  <ul>
  {% for item in category-tutorials %}
    <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li>
  {% endfor %}
  </ul>
{% endfor %}

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 2019-04-26
    • 2012-02-23
    相关资源
    最近更新 更多