mirror of
https://github.com/bramses/bramses-highly-opinionated-vault-2023.git
synced 2025-02-26 07:53:55 +00:00
37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
// https://forum.obsidian.md/t/quickadd-macro-showing-a-list-of-files-to-capture-automatically/41185
|
|
|
|
module.exports = async function listFiles(params) {
|
|
// Grab fileType variables
|
|
const fileType = params.variables.fileType;
|
|
const folder = fileType.folder;
|
|
const folderExclude = fileType.folderExclude;
|
|
const filename = fileType.filename;
|
|
|
|
// Search for files that match fileType parameters
|
|
const files = params.app.vault.getMarkdownFiles()
|
|
.filter(file => file.path.match(folder))
|
|
.filter(file => {
|
|
//Check if folderExclude field exists
|
|
if (folderExclude) { return !file.path.match(folderExclude) }
|
|
else { return file }
|
|
})
|
|
.filter(file => file.basename.match(filename))
|
|
|
|
//Sort by File Name
|
|
.sort((a,b) => a.basename.localeCompare(b.basename))
|
|
//Sort by Folder
|
|
.sort((a,b) => a.parent.path.localeCompare(b.parent.path))
|
|
//This was to show file outside of inner folder on top
|
|
//then sort the files in the inner folder
|
|
|
|
|
|
|
|
// Display files to select
|
|
const notesDisplay = await params.quickAddApi.suggester(
|
|
(files) => files.path.replace(".md", ""),
|
|
files
|
|
);
|
|
|
|
// Pass selected note's path to notes variable
|
|
params.variables = { notes: notesDisplay.path };
|
|
} |