Skip to content

Instantly share code, notes, and snippets.

@dom8509
Last active September 19, 2023 19:57
Show Gist options
  • Save dom8509/50a1ae4a8adf01c1f70dc68ce3657195 to your computer and use it in GitHub Desktop.
Save dom8509/50a1ae4a8adf01c1f70dc68ce3657195 to your computer and use it in GitHub Desktop.
List all Task in Obsidian using Dataview
// find dates based on format [[YYYY-MM-DD]]
const findDated = (task) => {
 if( !task.completed ) {
  task.link = " " + "[[" + task.path + "|*]]";  
  task.date="";
  const found = task.text.match(/\[\[([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))\]\]/);
  if(found) task.date = moment(found[1]);
  return true;  
 }
}

const myTasks =  dv.pages("").file.tasks.where(t => findDated(t));

dv.header(1,"🔥 Überfällig");
dv.paragraph("Alle überfälligen Tasks (Datum in der Vergangenheit)");
dv.taskList(myTasks.filter(t=> moment(t.date).isBefore(moment(),"day")).sort(t=>t.date));

dv.el("br");

dv.header(1, "📌 Heute");
dv.paragraph("Alle heutigen Tasks (mit dem heutigem Datum makiert)");
dv.taskList(myTasks.filter(t=> moment(t.date).isSame(moment(),"day")).sort(t=>t.date));

dv.el("br");

dv.header(1,"📆 Damnächst");
dv.paragraph("Die Tasks die bald anstehen (Tasks mit Datum nahe dem heutigen)");
dv.taskList(myTasks.filter(t=> moment(t.date).isAfter(moment(),"day")).sort(t=>t.date));

dv.el("br");

dv.header(1,"🤝 Delegierte Themen");
dv.paragraph("Alle Tasks bei denen ich auf andere Personen warte (mit dem Tag #waitingfor)");
dv.taskList(myTasks.filter(t=> t.text.contains("#waitingfor")).sort(t=>t.text));

dv.el("br");

dv.header(1,"🧗‍♂️ Nächste Schritte");
dv.paragraph("Die nächsten Schritte für meine Projekte (Tasks mit dem Tag #next)");
dv.taskList(myTasks.filter(t=> t.text.contains("#next")).sort(t=>t.text));

dv.el("br");

dv.header(1,"❓ Ungeplant");
dv.paragraph("Alle Tasks die noch nicht eingeplant sind.");
dv.taskList(myTasks.filter(t=> !t.date && !t.text.contains("#waitingfor") && !t.text.contains("#next") && !t.text.contains("#someday")).sort(t=>t.text));

dv.el("br");

dv.header(1,"🤷‍♂️ Irgendwann");
dv.paragraph("Alle Tasks ohne Priorität (Tasks mit dem Tag #someday)");
dv.taskList(myTasks.filter(t=> t.text.contains("#someday")).sort(t=>t.text));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment