This repository creates statistics and visual representations of the frequency of entries into my diary and pages for projects, travel and my blog.
Version: v2026.03.26.60

| Category | Pages | Words | Time to read | Images |
|---|---|---|---|---|
| 1) Diary | 92 | 1731 | 2h10 | 52 |
| 2) Wordpress Blog | 80 | 947 | 0h50 | 16 |
| 3) Legacy Website | 56 | 18 | 1h10 | 5 |
| 4) Subdomains | 15 | 72 | 2h10 | 47 |
| 5) Github | 170 | 444 | 1h10 | 32 |
| All | 1342 | 1342 | 11h20 | 245 |
| Category | Markdown files | Files | Folders | Size (Bytes) | Images | Words |
|---|---|---|---|---|---|---|
| Blog 🟥 | 512 | 1731 | 76 | 162,437,617 | 52 | 845,601 |
| Diary 🟩 | 32 | 947 | 35 | 49,929,432 | 16 | 16,452 |
| Projects 🟦 | 18 | 18 | 0 | 946,419 | 5 | 84,215 |
| Travel 🟨 | 72 | 72 | 6 | 17,622,758 | 47 | 154,875 |
| Websites 🟦 | 444 | 444 | 29 | 21,701,977 | 32 | 20,154 |
| All | 1342 | 1342 | 20 | 89,448,124 | 245 | 1,425,754 |
I ordered my repositories into the following categories:
Metrics I’m interested in: title (repository name), created, size, main language, files, folders, commits. See the github subfolder: kreier.github.io/statistics-diary/github
Some progress was made with Obsidian, and in time I will copy a lot of information to this markdown diary and repository. While doing so I might add some translation of existing German documentations there. Further I want to include my Wordpress blog, subdomains and legacy websites.
Last processed: 2025/12/18 - 18,339 days
Maximum value:
Table created by Python (GitHub has 4 shades plus white, but this can be tweaked once we have answers):
| Â | xxx0 | xxx1 | xxx2 | xxx3 | xxx4 | xxx5 | xxx6 | xxx7 | xxx8 | xxx9 | xxx10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 202x | 8/6/0/1 | 12/1/4/4 | 10/7/4/9 | 13/8/5/5 | 6/8/4/7 | 8/1/5/6 | Â | Â | Â | Â | Â |
| 201x | 3/0/1/13 | 20/2/3/12 | 10/7/5/5 | 2/7/3/12 | 2/2/1/3 | 7/7/0/8 | 0/11/0/5 | 0/10/5/3 | 19/10/0/9 | 10/2/4/9 | 20/10/2/6 |
| 200x | 1/5/4/6 | 10/5/4/2 | 8/7/4/10 | 13/2/3/6 | 4/10/1/7 | 9/2/3/0 | 17/0/3/4 | 7/8/0/9 | 7/7/4/2 | 8/10/3/4 | 3/1/2/13 |
| 199x | 0/9/1/6 | 18/4/4/4 | 10/12/2/2 | 2/4/2/5 | 4/10/4/9 | 4/5/1/6 | 14/6/5/0 | 8/0/3/9 | 6/12/2/3 | 1/6/5/3 | 13/10/4/3 |
| 198x | 1/6/0/10 | 0/7/1/11 | 10/11/1/13 | 11/7/4/11 | 4/6/3/5 | 13/2/5/11 | 1/11/1/13 | 5/8/3/7 | 11/6/4/10 | 5/9/0/0 | 6/11/1/2 |
| 197x | Â | Â | Â | Â | Â | 0/9/1/6 | 3/2/0/1 | 9/3/2/13 | 7/10/2/10 | 17/1/5/6 | 4/8/5/9 |
Data stored in .csv-files. How to parse, how to generate?
The documents are located at three locations:
I use the Novel word count Community plugin to determine the size of the whole vault
| date | Blog | Diary | Projects | Travel | Websites | md files | Total words | Total time |
|---|---|---|---|---|---|---|---|---|
| 2025-12-21 | 541 | 4759 | 2830 | 1714 | 1563 | 36 | 13,263 | 0h51 |
| 2026-01-19 | 1408 | 27580 | 4366 | 2216 | 1820 | 92 | 39,787 | 2h30 |
How would it look if you get a colored box for each day of your life? Well, let’s have a look, just use GitHub contributions as example for the last 8 years:

To calculate: Each box is 10x10 pixel with 3 pixel whitespace between them. This results in a height of 7x10 + 63 = 88 pixel per year and a width of (52+1+1)10 + 53*3 = 699 pixel.
I combined above screenshots into one picture where the results are closer together. An inspiration?

On this day I will have lived 19000 days on earth, and the graduation from SDW will be 17 years ago. How would an overview of all these days look like? Here is a preliminary visual:


Ultimately we only want the summary numbers for 4 metrics: pages, words, time-to-read and images. This is collected from 5 places:
1) Diary - Obsidian vault, rendered for the web with Quartz, containing 🟩 Diary, 🟨 Travel, 🟦 Projects and another 🟥 Blog 2) Blog or Wordpress - using PHP and MariaDB on saiht.de/blog 🟥 Wordpress Blog 3) Legacy - historic pages from saiht.de on saiht.de/legacy 🟦 Projects 4) Subdomains of saiht.de - the 10 smaller projects, see saiht.de/x 🟦 5) GitHub - all of them have a Github Page, the metrics are taken from the webpage 🟦
Only from time to time I will update the following values:
The update program is /python/update_details.py. It parses above 4 files and updates the /data/summary.csv. Each static data file can be updated with a respective /data/update_xx.py for the 4 sources.
For the clickable graphics I need a date, title and link. Condensed to /data/data_graph_wordpress.csv and the 3 other files.
Each push and successful run from quartz will trigger python/update_statistics.py. The Github Action will check out all data. All static data from above will have been processed already. No need to parse them again.
But I need a copy of Obsidian and parse it:
date. It’s a second source for 🟥 Blogcreated for when the holiday started and updated when it ended. Can it be parsed? Full color for start, dimmed between: 🟨 TravelFor the clickable STAT_GRAPHS I need to know each day and number of contributions for the 4 categories. And the tooltip could include a link to the article of the day in Blog, Diary, Travel or Project.
With some HTML markers and regular expressions parts of the README.md are prepared to be updated by the update python program. The following labels are in there:
Obviously the results should be written back to the repository. We need the file names for the Github Action github/workflows/update.yml that should receive a push git add data/iteration.json data/version.txt: