<%*
/*
*/
const view = app.workspace.activeLeaf.view;
const editor = view.editor;
const curLineNum = editor.getCursor().line;
const curLineText = editor.getLine(curLineNum);
const title = tp.file.title;
const today = title.match(/\d{4}\-\d{2}\-\d{2} .+/) //are we on the DNP?
? null //if on the DNP, today is set to null
: moment(Date.now()).format("YYYY-MM-DD dddd"); //set today
let newLineText = curLineText.replace(
/!?\[\[([^\]\|]*\/)?([^\]\|\/]+)\|?([^\]]*)?\]\]/,
(match,p1,p2,p3) => `${today?"###":"##"} ${p3??p2}\n![[${(p1??"")+p2}#${(today?today+" ":"") + title}]]`
);
editor.setLine(curLineNum, newLineText);
let fname = newLineText.match(/!\[\[(.*?)#.*?]]/)[1];
let file = app.metadataCache.getFirstLinkpathDest(fname,view.file.path);
if(!file) {
if(!fname.endsWith(".md")) fname=fname+".md";
file = await app.vault.create(fname,"# Notes\n");
}
const data = await app.vault.read(file);
const parts = data.split(/# Notes(?:\n|\r\n|\r)/);
newLineText = `## ${today?"[["+today+"]], ":""}[[${title}]]`;
if(parts.length === 2) {
await app.vault.modify(file,parts[0]+"# Notes\n"+newLineText+"\n\n"+parts[1]);
} else {
await app.vault.modify(file,data+"# Notes\n"+newLineText+"\n\n");
}
await app.workspace.openLinkText(fname, view.file.path);
let i=0;
const lineCount = editor.lineCount();
while(editor.getLine(i)!==newLineText && i<lineCount) i++;
editor.setCursor(i+1);
%>
I know it has been a year since you recorded this video. Does your workflow still work the same, or maybe you have made further improvements? I have loaded the 3 scripts but I am still having trouble getting obsidian to jump from daily notes to the project or person. Could you please screenshot the plugins that this depends on and what their settings are. It would be extremely helpful. I am new to Obsidian and Templater but have 20+ years of project management experience. What you have designed here is fantastic. thank you.
In the mean time, I am manually creating the links, sections and tasks.