37 years since my first diary entry

I've kept a diary since I was little — almost without a break, even squeezing in entries during the busiest stretch of high school. The earliest page I can find is June 2, 1989, online here. That's thirty-seven years. Not a small span.

I'm turning those notebooks into a digital archive.

Along the way I wrote a small Python package for anyone who shares the habit. For now I'm calling it xuanxin.

The idea: bilingual entries for the same day (20260609.md for English, 20260609_zh.md for Chinese, with a language switch on the page), static HTML generation, a local preview server, themes, images and video in galleries, and solid navigation — previous day, next day, paginated index, and so on.

The first version already works. Drop dated Markdown files into a folder, run one command, and you get a flat site: a paginated index and one HTML page per entry, with math, images, and carousel galleries (GALLERYSGALLERYE). Add password: mypassword to gate a gallery — a simple threshold for friends and family, not bank-grade security. Large PNGs are converted to _small.jpg automatically to save bandwidth and space.

Install:

pip install xuanxin

Source on GitHub: xuanxinjushi/xuanxin. Bugs, ideas, and pull requests are welcome.

Local preview:

xuanxin diary -i xx-diary -o output_folder -gtag gtag.js -home wu-99.com --page-size 20
python -m http.server 8080 --directory output_folder

Open http://localhost:8080 in your browser.

Recent additions: bilingual same-day entries (20260609.md + 20260609_zh.md) with a one-click language switch; video in galleries; previous / next day links at the bottom of each entry.

Thirty-seven years of paper notebooks — getting this far still feels a little remarkable to me. Digitizing old days and building a small tool for fellow diary-keepers is what I want to do as Xuanxin Jushi.

Start with the old notebooks: June 2, 1989. The new chapter starts with today's entry.

Syntax demo

A few Markdown patterns xuanxin turns into HTML. Rebuild the site and open this page to see them live.

Math

Inline: thirty-seven years is roughly $37 \times 365 \approx 1.35 \times 10^4$ days.

Display math on its own line:

$$\sum_{k=1}^{n} k = \frac{n(n+1)}{2}$$

MathJax is on by default for diary builds; pass --no-mathjax if you do not want it.

Single image

Put assets in a folder named for the date (e.g. 20260608/). Large PNGs become _small.jpg automatically.

Horizontal carousel; images and video can mix:

Add password: … on the GALLERYS line; the page prompts before showing slides:

Code and more

xuanxin diary -i xx-diary -o output_folder
Feature Markdown
Chinese entry 20260609_zh.md
English entry 20260609.md
Gallery bounds >GALLERYS / >GALLERYE

External links: June 2, 1989 entry · xuanxin on GitHub