1

使用 Eleventy 作为静态站点生成器我无法弄清楚如何对某些字母表中的标题进行排序(在我的情况下,拉脱维亚语,lv)。文档相关排序

到目前为止,下面的脚本适用于英语。

  eleventyConfig.addCollection("postsDescending", (collection) =>
    collection.getFilteredByGlob("src/posts/*.md").sort((a, b) => {
      if (a.data.title > b.data.title) return 1;
      else if (a.data.title < b.data.title) return -1;
      else return 0;
    })
  );

在我看来,我尝试了 localeCompare,但出现错误collection.getFilteredByGlob(...).from is not a function

const alphabet = ['a','ā','b','c','č','d','e','ē','f','g','ģ','h','i','ī','j','k','ķ','l','ļ','m','n','ņ','o','p','r','s','š','t','u','ū','v','z','ž'];
    eleventyConfig.addCollection("postsDescending", function(collection) {
        return collection.getFilteredByGlob("src/posts/*.md").from(alphabet).sort(function(a, b) {
           return a.localeCompare(b, 'lv', { sensitivity: 'base' });
        });
    });

不用说我是 Javascript 的初学者......非常感谢任何帮助!

4

1 回答 1

0

原来我可以自己解决这个问题。

  eleventyConfig.addCollection("postsDescending", (collection) =>
    collection.getFilteredByGlob("src/posts/*.md").sort((a, b) => {
return a.data.title.localeCompare(b.data.title, 'lv', { sensitivity: 'base' });
    })
  );
于 2020-06-01T23:42:20.920 回答