mirror of
https://github.com/tcsenpai/obsidiangarden_netlify.git
synced 2025-06-06 20:55:21 +00:00
Merge branch 'Luke-zhang-04-sort-filetree'
This commit is contained in:
commit
2a5fa33b0e
@ -5,29 +5,41 @@ const fs = require('fs');
|
|||||||
module.exports = async () => {
|
module.exports = async () => {
|
||||||
const tree = await fsFileTree("src/site/notes");
|
const tree = await fsFileTree("src/site/notes");
|
||||||
populateWithPermalink(tree);
|
populateWithPermalink(tree);
|
||||||
|
|
||||||
|
return sortTree(tree);
|
||||||
|
}
|
||||||
|
|
||||||
|
const sortTree = (unsorted) => {
|
||||||
//Sort by folder before file, then by name
|
//Sort by folder before file, then by name
|
||||||
const orderedTree = Object.keys(tree).sort((a,b)=>{
|
const orderedTree = Object.keys(unsorted).sort((a, b) => {
|
||||||
if(a.indexOf(".md") > -1 && b.indexOf(".md") === -1){
|
if (a.indexOf(".md") > -1 && b.indexOf(".md") === -1) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(a.indexOf(".md") === -1 && b.indexOf(".md") > -1){
|
if (a.indexOf(".md") === -1 && b.indexOf(".md") > -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(a>b){
|
if (a.toLowerCase() > b.toLowerCase()) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}).reduce(
|
}).reduce(
|
||||||
(obj, key) => {
|
(obj, key) => {
|
||||||
obj[key] = tree[key];
|
obj[key] = unsorted[key];
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
},
|
},
|
||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
for (const key of Object.keys(orderedTree)) {
|
||||||
|
if (!orderedTree[key].path) {
|
||||||
|
orderedTree[key] = sortTree(orderedTree[key])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return orderedTree;
|
return orderedTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,14 +52,14 @@ function getPermalinkAndName(path, key) {
|
|||||||
if (frontMatter.data.permalink) {
|
if (frontMatter.data.permalink) {
|
||||||
permalink = frontMatter.data.permalink;
|
permalink = frontMatter.data.permalink;
|
||||||
}
|
}
|
||||||
if (frontMatter.data.title){
|
if (frontMatter.data.title) {
|
||||||
name = frontMatter.data.title
|
name = frontMatter.data.title
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
//ignore
|
//ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
return {permalink, name};
|
return { permalink, name };
|
||||||
}
|
}
|
||||||
|
|
||||||
function populateWithPermalink(tree) {
|
function populateWithPermalink(tree) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user