vault backup: 2026-08-14 13:05:08

This commit is contained in:
2026-08-14 13:05:08 -04:00
parent a9be9deda5
commit 9990fa6660
7 changed files with 239 additions and 43 deletions
+82 -4
View File
@@ -7,6 +7,11 @@ owner: Amadou
<%*
const date = tp.date.now("YYYY-MM-DD");
const year = tp.date.now("YYYY");
const month = tp.date.now("MM");
// --------------------------------------------------
// 1. Ask for decision title
// --------------------------------------------------
const title = await tp.system.prompt("Decision title");
@@ -16,19 +21,92 @@ if (!title) {
}
const safeTitle = title
.replace(/[\\/:\*?"<>|]/g, "-")
.replace(/[\\/:*?"<>|]/g, "-")
.trim();
// --------------------------------------------------
// 2. Find available projects for the current year
// --------------------------------------------------
const projectsFolder = `20 Work/Projects/${year}`;
const projectFiles = app.vault
.getMarkdownFiles()
.filter(file => file.parent?.path === projectsFolder)
.sort((a, b) => a.basename.localeCompare(b.basename));
// First option allows a decision with no project
const projectLabels = [
"— No project —",
...projectFiles.map(file => file.basename)
];
const projectValues = [
null,
...projectFiles
];
// --------------------------------------------------
// 3. Ask which project this decision belongs to
// --------------------------------------------------
const selectedProject = await tp.system.suggester(
projectLabels,
projectValues,
false,
"Related project"
);
// Cancelling the modal cancels note creation
if (selectedProject === undefined) {
new Notice("Decision cancelled.");
return;
}
// --------------------------------------------------
// 4. Create Decisions/YYYY/MM folder
// --------------------------------------------------
const baseFolder = "20 Work/Decisions";
const yearFolder = `${baseFolder}/${year}`;
const monthFolder = `${yearFolder}/${month}`;
if (!app.vault.getAbstractFileByPath(yearFolder)) {
await app.vault.createFolder(yearFolder);
}
if (!app.vault.getAbstractFileByPath(monthFolder)) {
await app.vault.createFolder(monthFolder);
}
// --------------------------------------------------
// 5. Build filename
// --------------------------------------------------
let filename;
if (selectedProject) {
const safeProject = selectedProject.basename
.replace(/[\\/:*?"<>|]/g, "-")
.trim();
filename = `${date} - ${safeProject} - ${safeTitle}`;
} else {
filename = `${date} - ${safeTitle}`;
}
// --------------------------------------------------
// 6. Move + rename note
// --------------------------------------------------
await tp.file.move(
`${yearFolder}/${date} - ${safeTitle}`
`${monthFolder}/${filename}`
);
// Make project available later in the template
const projectLink = selectedProject
? `[[${selectedProject.basename}]]`
: "";
-%>
> 🟡 **Proposed** · 🟢 **Decided** · 🔴 **Rejected** · ⚫ **Superseded**
@@ -51,11 +129,11 @@ await tp.file.move(
## Why
-
-
## Consequences
-
-
## Related