Callings
const currentFolder = dv.current().file.folder;
const currentFile = dv.current().file.path;
// Find regular notes underneath this folder
const pages = dv.pages(`"${currentFolder}"`)
.where(p =>
p.file.path !== currentFile &&
!p.file.name.endsWith(" Master")
)
.sort(p => p.file.name);
// Group by folder
const groups = {};
for (const page of pages) {
const folder = page.file.folder;
const parts = folder.split("/");
const folderName = parts[parts.length - 1] || "Root";
if (!groups[folder]) {
groups[folder] = {
name: folderName,
pages: []
};
}
groups[folder].pages.push(page);
}
// Sort folders
const sortedGroups = Object.values(groups)
.sort((a, b) => a.name.localeCompare(b.name));
// Display
for (const group of sortedGroups) {
dv.header(2, group.name);
group.pages.sort((a, b) =>
a.file.name.localeCompare(b.file.name)
);
for (const page of group.pages) {
// Link to original note
dv.el("div", dv.fileLink(
page.file.path,
false,
"↗ Open original note"
));
// Embed note
dv.el("div", dv.fileLink(
page.file.path,
true
));
// Space between notes
dv.el("div", "", {
attr: { style: "height: 40px;" }
});
}
}
18 items under this folder.