statistics-diary

Statistics for my Diary, Blog and Projects

GitHub Release GitHub License Update Version

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

Short summary

Categories and locations

  1. Obsidian and Quartz Diary at diary.saiht.de has 1,023,452 words that would require 13 hours to read. In total some 83 markdown files. 312 of 18,923 days are documented
  2. Wordpress Blog at saiht.de/blog with 104 articles and 42,324 words
  3. Legacy website of saiht.de at saiht.de/legacy with 64 pages, 13,124 words
  4. Older projects at subdomains, listed at saiht.de/x with 20 subdomains, 35 pages, 1,234 words
  5. GitHub projects with their website: 170 projects, with the main websites containing 23,234 words

Clickable Graph

graph 2025

Table on Categories and Locations

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

(1) Details on Obsidian and Quartz

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

(5) Details on 156 Github Projects, sorted by Category

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

Robotics

Procedure, Examples and inspiration

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.

2025

2024

Layered

Last processed: 2025/12/18 - 18,339 days

By month in Diary/Travel/Projects/Blog

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?

History

The documents are located at three locations:

Obsidian

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

(2) Wordpress

One box per day - 18,000 boxes?

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:

2025 2024 2023 2022 2021 2020 2019 2018

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.

Better looking if closer together?

I combined above screenshots into one picture where the results are closer together. An inspiration?

2018-2025

19000 days till 10/10/2027

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:

19000

Or maybe Statistics for 21639 days

21639 days

Workflow

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 🟦

Static data - sources 2 to 5

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.

Automatic run

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:

For 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.

Parts to update in README.md

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:

Updated files in this repository

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: