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;" }
        });
    }
}