Jump to content
php.lv forumi

Gagarin

Reģistrētie lietotāji
  • Posts

    3
  • Joined

  • Last visited

Gagarin's Achievements

Newbie

Newbie (1/14)

  1. Liels paldies par atsaucību! Ceru kādam vēl skaistais kods noderēs! Priekš Eleventy: eleventyConfig.addCollection("postsDescending", function (collection) { const alphabet = ['A','a','Ā','ā','B','b','C','c','Č','č','D','d','E','e','Ē','ē','F','f','G','g','Ģ','ģ','H','h','I','i','Ī','ī','J','j','K','k','Ķ','ķ','L','l','Ļ','ļ','M','m','N','n','Ņ','ņ','O','o','P','p','R','r','S','s','Š','š','T','t','U','u','Ū','ū','V','v','Z','z','Ž','ž']; return collection.getFilteredByGlob("src/posts/*.md").sort(function (a, b) { const byLetters = (index) => { const titleA = a.data.title[index], titleB = b.data.title[index]; if (!titleA || !titleB) { return titleA ? 1 : -1; } if (titleA === titleB) { return byLetters(index+1); } const indexA = alphabet.findIndex(c => c === titleA); const indexB = alphabet.findIndex(c => c === titleB); if (indexA < indexB) { return -1; } if (indexA > indexB) { return 1; } } return byLetters(0); }); });
  2. Pateicos par iesaisti! Tomēr kaut ko daru ne tā kā pienākas, jo virsraksti ir tikai daļēji alfabēta secībā (skat. ekrānšāviņu). Labā ziņa, ka ar šo vismaz virsraksts, kura sākumburts "Ē" atrodas aiz virsraksta, kas sākas ar "E" .. Nesaprotu kā sasaistīt definēto alfabētu ar virsrakstiem. Vari, lūdzu, iedot vēl kādu padomu? eleventyConfig.addCollection("postsDescending", function (collection) { const alphabet = ['A','a','Ā','ā','B','b','C','c','Č','č','D','d','E','e','Ē','ē','F','f','G','g','Ģ','ģ','H','h','I','i','Ī','ī','J','j','K','k','Ķ','ķ','L','l','Ļ','ļ','M','m','N','n','Ņ','ņ','O','o','P','p','R','r','S','s','Š','š','T','t','U','u','Ū','ū','V','v','Z','z','Ž','ž']; const posts = collection .getFilteredByGlob("src/posts/*.md") .sort(function (a, b) { var titleA = a.data?.title, titleB = b.data?.title; if (alphabet.titleA < alphabet.titleB) { return -1; } if (alphabet.titleA > alphabet.titleB) { return 1; } return 0 }); return posts; });
  3. Sveiki, Taisu mājas lapu uz Eleventy un saskaros problēmu: localeCompare kļūdās(?) šķirojot virsrakstus latviešu valodā. Piemērs ar "sašķirotu" sarakstu: 1. Egles zarā sēž kaķis 2. Ēna 3. Epizode 4. Ērenpress ir velosipēdu ražotājs 5. Ēvele Kā redzams vārds "Ēna", kas ir ar garo "ē" pamanās būt virs vārda "Epizode". Nojaušu tas ir otrā burta dēļ, t.i. vārdā "Ēna" burts "n" alfabētiski ir pēc burta "p" (Epizode). LocaleCompare it kā nesaprot, ka burts ar garumzīmi ir pilntiesīgs loceklis alfabētā, jo garumzīme netiek ņemta vērā, bet gan vārda otrais burts šķirojot doto sarakstu. Kods virsrakstu šķirošanai: eleventyConfig.addCollection("postsDescending", function (collection) { const posts = collection .getFilteredByGlob("src/posts/*.md") .sort(function (a, b) { return a.data?.title.localeCompare(b.data?.title, "lv-LV", { caseFirst: false, sensitivity: "variant", ignorePunctuation: true, usage: "sort", }); }); return posts; }); Vai kāds ir izmantojis LocaleCompare priekš šķirošanas latviešu valodā?
×
×
  • Create New...