Заказ
Нашими статусами являются «Далее», «Вкл» и «Готово».Они должны быть заказаны в таком порядке.Поскольку это не алфавитный порядок сортировки, нам нужно определить этот порядок самим.
In _config.yml :
status-order:
-
name: "Next" ### status as it is set on gigs (!!! Case-Sensitive !!!)
display: "Up Next" ### status column header to display
-
name: "On"
display: "Working On"
-
name: "Done"
display: "Done"
Теперь мы можем перебрать site.status-order
и получите наши концерты в нужном порядке статуса.
{% for status in site.status-order %}
{{ status.name }} - {{ status.display }}
{% endfor %}
Представление
Поскольку ваш текущий код немного повторяется, мы можем разложить его так:
{% for status in site.status-order %}
{% assign items = site.gigs | where: 'status', status.name | sort: date %}
<div class="col-sm">
<h2>{{ status.display }} ({{ items.size }})</h2>
{% if items.size > 0 %}
<ul>
{% for item in items %}
<li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li>
{% endfor %}
</ul>
{% else %}
No project
{% endif %}
</div>
{% endfor %}
Примечание
Вы должны обязательно установить статус в правильном регистре (например: «Далее», а не «далее»).
И правильный тип.Если вы установите status: On
, то это будет логическое значение true
, а не string
«on».В этом случае правильное выражение статуса - status: "On"
.Он должен быть заключен в кавычки или двойные кавычки, чтобы понимать их как строку «Вкл».
Любой элемент с неправильно набранным или набранным выражением статуса не будет отображаться в нашем списке.