2026
❮ 2025 | 2026 | 2027 ❯ Q1 - Q2 - Q3 - Q4 Jan - Feb - March - Apr - May - Jun - Jul - Aug - Sep - Oct - Nov - Dec
dv.span("**🏋️ Exercise 🏋️**")
const currentYear = Number(dv.current().file.name.match(/\d{4}/)?.[0]);
const calendarData = {
year: currentYear,
colors: {
red: ["#ff9e82","#ff7b55","#ff4d1a","#e73400","#bd2a00",]
},
entries: []
}
for(let page of dv.pages('"06 - Journal/Daily"').where(p=>p.exercise)){
calendarData.entries.push({
date: page.file.name,
intensity: page.exercise
})
}
renderHeatmapCalendar(this.container, calendarData)dv.span("** Meditation 🧘♂️ **")
const currentYear = Number(dv.current().file.name.match(/\d{4}/)?.[0]);
const calendarData = {
year: currentYear,
colors: {
blue: ["#03b6fc"]
},
entries: []
}
for(let page of dv.pages('"06 - Journal/Daily"').where(p=>p.meditation)){
calendarData.entries.push({
date: page.file.name,
intensity: page.meditation
})
}
renderHeatmapCalendar(this.container, calendarData)dv.span("**Sleep Log**")
// Extract the year from the current file name
const currentYear = dv.current().file.name.match(/\d{4}/)?.[0];
// Filter pages to include only those that match the current year
const pages = dv.pages('"06 - Journal/Daily"') .where(p => p.file.name.includes(currentYear)) .sort(p => p.file.name);
const dates = pages.map(p => p.file.name).values
const sleeps = pages.map(p => p.sleep).values
const chartData = {
type: 'line',
data: {
labels: dates,
datasets: [{
label: 'Sleep',
data: sleeps,
backgroundColor: [
'rgba(53, 252, 167, 1)'
],
borderColor: [
'rgba(138, 102, 204, 0.8)'
],
borderWidth: 1.5,
spanGaps: true,
}],
},
};
window.renderChart(chartData, this.container)dv.span("**Weight Log**")
// Extract the year from the current file name
const currentYear = dv.current().file.name.match(/\d{4}/)?.[0];
// Filter pages to include only those that match the current year
const pages = dv.pages('"06 - Journal/Daily"') .where(p => p.file.name.includes(currentYear)) .sort(p => p.file.name);
const dates = pages.map(p => p.file.name).values
const weights = pages.map(p => p.weight).values
const chartData = {
type: 'line',
data: {
labels: dates,
datasets: [{
label: 'Weight',
data: weights,
backgroundColor: [
'rgba(53, 252, 167, 1)'
],
borderColor: [
'rgba(138, 102, 204, 0.8)'
],
chartColor: ['rgba(255, 255, 255, 1)'],
borderWidth: 1.5,
spanGaps: true,
}],
},
};
window.renderChart(chartData, this.container)
dv.span("** Mood 🌄 **")
const hue1 = 13 //red
const hue2 = 132 //green
const currentYear = Number(dv.current().file.name.match(/\d{4}/)?.[0]);
const calendarData = {
year: currentYear,
intensityScaleStart: 1,
intensityScaleEnd: 5,
colors: { // optional, defaults to green
red2greenX21: [
`hsl(${hue1}, 100%, 37%)`, // 1 - darkest red (worst mood)
`hsl(${hue1}, 100%, 50%)`, // 2 -
`hsl(${hue1}, 100%, 60%)`, // 3 -
`hsl(${hue1}, 100%, 77%)`, // 4 - lightest red
`hsl(60, 75%, 74.5%)`, // 5 - gray (neutral mood)
`hsl(${hue2*0.7}, 70%, 72%)`, // 6 - lightest green
`hsl(${hue2*0.85}, 43%, 56%)`, // 7 -
`hsl(${hue2}, 49%, 36%)`, // 8 -
`hsl(${hue2}, 59%, 24%)`, // 9 - darkest green (best mood)
],
},
entries: [] // populated in the DataviewJS loop below
}
for(let page of dv.pages('"06 - Journal/Daily"').where(p=>p.mood)){
calendarData.entries.push({
date: page.file.name,
intensity: page.mood,
})
}
renderHeatmapCalendar(this.container, calendarData)dv.span("** Prayer 🙏 **")
const currentYear = Number(dv.current().file.name.match(/\d{4}/)?.[0]);
const calendarData = {
year: currentYear,
colors: {
oldGithubGreen11:[
"hsl(65, 83%, 88%)",
"hsl(70, 77%, 78%)",
"hsl(80, 62%, 72%)",
"hsl(95, 52%, 66%)",
"hsl(112, 45%, 61%)",
"hsl(125, 43%, 56%)",
"hsl(132, 41%, 49%)",
"hsl(132, 45%, 43%)",
"hsl(132, 49%, 36%)",
"hsl(132, 54%, 29%)",
"hsl(132, 59%, 24%)",
]
},
entries: []
}
for(let page of dv.pages('"06 - Journal/Daily"').where(p=>p.prayer)){
calendarData.entries.push({
date: page.file.name,
intensity: page.prayer
})
}
renderHeatmapCalendar(this.container, calendarData)TABLE aliases
FROM "06 - Journal/Weekly"
WHERE aliases != null
where length(aliases) > 1
where file.day.year = 2023TABLE aliases
FROM "06 - Journal/Daily"
WHERE aliases != null
where length(aliases) > 1
where file.day.year = 2023