mirror of
https://github.com/tcsenpai/obsidiangarden_netlify.git
synced 2025-06-06 04:35:20 +00:00
feat(filetree): sort filetree recursively
This commit is contained in:
parent
9062a9cef6
commit
3f9e9ab7a0
@ -2,35 +2,47 @@ const fsFileTree = require("fs-file-tree");
|
||||
const matter = require('gray-matter');
|
||||
const fs = require('fs');
|
||||
|
||||
module.exports = async () => {
|
||||
const tree = await fsFileTree("src/site/notes");
|
||||
populateWithPermalink(tree);
|
||||
|
||||
const sortTree = (unsorted) => {
|
||||
//Sort by folder before file, then by name
|
||||
const orderedTree = Object.keys(tree).sort((a,b)=>{
|
||||
if(a.indexOf(".md") > -1 && b.indexOf(".md") === -1){
|
||||
const orderedTree = Object.keys(unsorted).sort((a,b)=>{
|
||||
if (a.indexOf(".md") > -1 && b.indexOf(".md") === -1){
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(a.indexOf(".md") === -1 && b.indexOf(".md") > -1){
|
||||
if (a.indexOf(".md") === -1 && b.indexOf(".md") > -1){
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(a>b){
|
||||
if (a.toLowerCase() > b.toLowerCase()){
|
||||
return 1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}).reduce(
|
||||
(obj, key) => {
|
||||
obj[key] = tree[key];
|
||||
obj[key] = unsorted[key];
|
||||
|
||||
return obj;
|
||||
},
|
||||
{}
|
||||
);
|
||||
|
||||
for (const key of Object.keys(orderedTree)) {
|
||||
if (!orderedTree[key].path) {
|
||||
orderedTree[key] = sortTree(orderedTree[key])
|
||||
}
|
||||
}
|
||||
|
||||
return orderedTree;
|
||||
}
|
||||
|
||||
module.exports = async () => {
|
||||
const tree = await fsFileTree("src/site/notes");
|
||||
populateWithPermalink(tree);
|
||||
|
||||
return sortTree(tree);
|
||||
}
|
||||
|
||||
function getPermalinkAndName(path, key) {
|
||||
let permalink = "/"
|
||||
let name = key.replace(".md", "");
|
||||
|
Loading…
x
Reference in New Issue
Block a user