Skip to content

Instantly share code, notes, and snippets.

@Chailotl
Created March 2, 2024 05:28
Show Gist options
  • Save Chailotl/9aba494a6d4f3f391ce36e583b23bbb4 to your computer and use it in GitHub Desktop.
Save Chailotl/9aba494a6d4f3f391ce36e583b23bbb4 to your computer and use it in GitHub Desktop.
Various dataviews I used to use in Obsidian.
dv.header(2, "💸 Money Spent")

const calendarData = {
	entries: []
}

for (let page of dv.pages('"Daily notes"').where(p => p["money-spent"])) {
	let sum = page["money-spent"]
	let content = ""

	if (dv.isArray(sum)) {
		content = sum.length
		sum = sum.reduce((partialSum, a) => partialSum + a, 0)
	}

	calendarData.entries.push({
		date: page.file.name,
		intensity: sum,
		content: await dv.span(`[[${page.file.name}|]]`)
	})
}

renderHeatmapCalendar(this.container, calendarData)
dv.header(2, "👟 Jogging")

const calendarData = {
	colors: {
		blue: ["#8cb9ff", "#69a3ff", "#428bff", "#1872ff", "#0058e2"]
	},
	entries: []
}

/*for (let page of dv.pages('"Daily notes"').where(p => p.jogging)) {
	calendarData.entries.push({
		date: page.file.name
	})
}*/

for (let page of dv.pages('"Daily notes"').where(p => p.file.tasks.find(t => t.text.startsWith("Go out for a jog")))) {
	if (!page.file.tasks.find(t => t.text.startsWith("Go out for a jog")).completed) { continue }
	
	calendarData.entries.push({
		date: page.file.name
	})
}

renderHeatmapCalendar(this.container, calendarData)
obsidianUIMode
preview

Due Today

short mode
not done
( (due today) OR (scheduled today) )

Due This Week

short mode
not done
sort by scheduled
sort by due
( ( (scheduled after today) AND (scheduled before in 7 days)) OR ( (due after today) AND (due before in 7 days) ) )
starts before tomorrow

Past Due

short mode
not done
( (due before today) OR (scheduled before today) )

No Due Date

short mode
not done
no due date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment