Как я могу сортировать, затем отфильтровать в 11Ty, используя .DDCollection и методы API сбора?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу сортировать, затем отфильтровать в 11Ty, используя .DDCollection и методы API сбора?

Сообщение Anonymous »

Для контекста для используемых примеров я использую 11ty для создания веб -сайта, который каталоги и таксономизирует звуковые эффекты комиксов.

Код: Выделить всё

---
sfxName: Boom
tags: sfx

sfxCategory:
- comedic
- neutral
sfxSource:
- impact
sfxPitch:
- low
sfxWeight:
- hollow
sfxRhythm:
- beat

eleventyComputed:
title: {{sfxName}}
---
< /code>
Я вызываю эти звуковые эффекты в группах на определенных страницах, используя фильтрованный короткометражный код, который включает в себя звуковые эффекты на основе данных передних веществ. (sfxCategory
, sfxsource , sfxpitch и т. Д.)

Код: Выделить всё

{% set wordList = collections.sfx | taxonomy("data.sfxCategory", "comedic") %}
{% for word in wordList %}
[url={{word.filePathStem}}][*]{{word.data.sfxName}}[/url]
{% endfor %}
Проблема возникает, когда я пытаюсь сортировать их в алфавитном порядке с помощью sfxname . Я делаю это, пытаясь сделать новую, отсортированную коллекцию SortedSfx из sfx в файле Meiting Configuration.

Код: Выделить всё

//eleventy.config.js
// Sort, then filter
eleventyConfig.addCollection("sortedSfx", function (collectionsApi) {
return collectionsApi.getFilteredByTag("sfx").sort(function (a, b) {
return a.data.sfxName - b.data.sfxName;
});
});

//page.njk
{% set wordList = collections.sortedSfx | taxonomy("data.sfxCategory", "comedic") %}
{% for word in wordList %}
[url={{word.filePathStem}}][*]{{word.data.sfxName}}[/url]
{% endfor %}
< /code>
Что -то не так с этим кодом ⬆. Он отображает элементы в хронологическом порядке файловой даты, что является тем, к чему одиндцать дефолтов. В результате «Bonk, Bam, Boom, Bing». Я думаю, что есть фильтры коротких кодов для сортировки, но я использую свой пользовательский таксономию 
в шорткоде для чего -то другого. Я предполагаю, что .getFilterBytag () также работает так, как предполагалось, хотя я еще не добавил никаких других типов постов, чтобы доказать, что я не так. < /P>

Код: Выделить всё

// Sort (Result: Bam, Bing, Bonk, Boom ✅)
eleventyConfig.addCollection("sortAlphaAscend", function (collectionsApi) {
return collectionsApi.getAll().sort(function (a, b) {
return a.data.sfxName - b.data.sfxName;
});
});

// Filter (Result: Bonk, Bam, Boom, Bing [The order I made them in.] ✅)
eleventyConfig.addCollection("justSfx", function (collectionsApi) {
return collectionsApi.getFilteredByTag("sfx");
});
< /code>
Оба примера составляют 1: 1 с таковыми, представленными в 11ty Docs. Это пытается объединить какой -то вид и фильтр, в котором все идет не так, причем результат возвращается к хронологическому дефолту 11TY. Я использую, казалось бы, успешную попытку Майкла Олдройда в 2019 году в качестве ссылки. < /P>
Вот мой неработающий код снова: < /p>
//eleventy.config.js
// Sort, then filter (Result: Bonk, Bam, Boom, Bing [The order I made them in, 11ty's fallback default.] ❌)
eleventyConfig.addCollection("sortedSfx", function (collectionsApi) {
return collectionsApi.getFilteredByTag("sfx").sort(function (a, b) {
return a.data.sfxName - b.data.sfxName;
});
});
Как мне получить сортировку и фильтр для правильного объединения?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ection-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»