Diary Stats

by mikagosz
5
4
3
2
1
Score: 50/100

Description

Charts for Obsidian periodic notes: sessions over time, projects, task states and goals — read from the notes you already write.

Reviews

No reviews yet.

Stats

0
stars
26
downloads
0
forks
7
days
1
days
1
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
8
commits

Latest Version

a day ago

Changelog

0.2.1 — faster on a large vault, and the settings are searchable

Faster

  • Building a chart read every Markdown file in the vault and then threw away everything outside the diary folder — on every render of every block. It walks the diary folder now, so the cost follows the size of the diary rather than the size of the vault.
  • Settings save once you stop typing rather than on every keystroke, which mattered most on the multi-line project list.

Settings

  • The settings tab is now declared rather than drawn by hand, so on Obsidian 1.13 and later its settings appear in the settings search. Older versions get the same tab from the same list of definitions, and minAppVersion is unchanged — nothing is lost by staying on an older Obsidian.

Also

  • The repository now has continuous integration and a release workflow, so a push is checked and a release carries build provenance.
  • Four more tests, covering the folder walk: nested subfolders, ordering, files that are not day notes, and a diary folder that does not exist.
  • README: install from the community catalogue.

README file from

Github

Diary Stats

Charts for periodic notes in Obsidian. Drop one code block into a weekly, monthly or yearly note and it draws what the period actually looked like — from the notes you already write, with nothing extra to fill in.

Light Dark
A monthly note in the light theme The same note in the dark theme

Light and dark are two selected palettes, not one flipped — see Colours.

Activity, the four weeks of the month, and task states

What it draws

Panel Reads
Projects a donut of which projects the period went into
Activity over time sessions per day (per month in a yearly note)
Four weeks the month split into its four weeks (monthly notes only)
Tasks planned / in progress / done / dropped
Key metrics totals with a sparkline and the change against the previous bucket
Goals plan against actual — only if you wrote any

Pick a subset with a panele: line:

panele: projekty, zadania

What a note has to say

The block works out the period from the note's own frontmatter, so nothing is hardcoded and the same block works everywhere:

  • weekly note — od: 2026-08-01 and do: 2026-08-07
  • monthly note — miesiac: 2026-08
  • yearly note — rok: 2026

Day notes are found by filename: anything starting YYYY-MM-DD inside the diary folder counts, so 2026-08-09 (niedziela).md works as well as 2026-08-09.md.

Sessions are links to notes named YYYY-MM-DD-Something. Projects come from each session note's dotyczy: list, falling back to its projekt/… tags.

List a project under Project names in the settings and every spelling of it (FooBar, foobar, foo-bar, FOO BAR) folds onto the one you wrote, so a project never splits into two slices. Leave the setting empty — as it ships — and every note is taken at its word.

Tasks use the four standard markers: - [ ], - [/], - [x], - [-].

Goals are optional

Write a ## Cele section and the goals panel appears. Leave it out and it does not — no empty panel, no nagging.

Three ways to write a goal, mixable in one section:

## Cele

- Project X v1.5 — offline mode :: 80 / 85
- [x] Ship the release
- [ ] Documentation
    - [x] readme
    - [x] settings
    - [ ] screenshots

A percentage:: plan / actual. First number is the plan, second what you reached. Only the plan is required.

A checkbox — done or not, no number to keep current.

A checkbox with sub-tasks — progress is their tally, and the panel shows 2 / 3 instead of a plan figure. A dropped sub-task (- [-]) leaves the count entirely: it is no longer part of the plan, so counting it as outstanding would keep a finished goal looking unfinished. An in-progress one (- [/]) counts as not done yet.

Anything without :: and without a checkbox is prose and is ignored, so notes can share the section.

Weeks

Weeks run by day of month — 1–7, 8–14, 15–21, 22–end. Always four, always inside one month. Calendar weeks straddle month boundaries and would make "four weeks of August" impossible to draw.

Settings

Folder names, the goals heading, project names, and how many projects get their own colour before the rest folds into one slice.

Language

The interface is Polish. Panel titles, month and weekday names, and the block's panele: keywords are all Polish, and the defaults match a Polish vault (_Dziennik, _Sesje, Cele). The folder names and the goals heading are settings, so they move; the panel titles do not — not yet.

The frontmatter keys the plugin reads are Polish too: od:/do:, miesiac:, rok:, and dotyczy: on a session note.

Colours

Light and dark are two selected palettes, not one flipped. Both were checked for colour-vision separation and contrast against the surface they render on. If you reorder the slots in styles.css, re-run that check — adjacency is what the validation was done against.

Installation

Settings → Community plugins → Browse, search for Diary Stats, install and enable it. Updates then arrive on their own.

  1. Take main.js, manifest.json and styles.css from a release (or build them — npm install && npm run build).
  2. Put the three files in <vault>/.obsidian/plugins/diary-stats/.
  3. Reload Obsidian and enable Diary Stats under Settings → Community plugins.

A copy installed this way does not update itself.

Needs Obsidian 1.12.7 or newer. Runs on desktop and mobile — nothing here touches the file system directly.

Licence

MIT.