|
April 2026 · What I've Been Up To
Tech tinkering & site building diary
To-Do
Component-based template design - DONE
Site architecture:
Root
├── cgi-bin/ ← CGI scripts
│ ├── guestbook.py
│ ├── search.py
│ └── editor.py ← Web-based blog editor
├── data/ ← Runtime data
│ ├── guestbook.txt ← Guestbook entries
│ ├── changelog.txt ← Site changelog
│ └── logs/ ← Access logs
├── dist/ ← Build output
│ ├── blog-*.html
│ ├── archive.html ← Article archive
│ ├── tags.html ← Tag cloud
│ ├── 404.html ← Custom 404
│ ├── rss.xml ← RSS feed
│ ├── en/ ← English mirror
│ │ ├── index.html
│ │ ├── blog-*.html
│ │ ├── archive.html
│ │ └── tags.html
│ └── assets/ ← Static resources
├── scripts/ ← Build scripts
│ ├── build.ps1 ← Single page build
│ ├── rebuild-all.ps1 ← Full site rebuild
│ ├── generate-archive.ps1 ← Archive, tags, search index
│ ├── generate-rss.ps1 ← RSS generation
│ └── generate-sitemap.ps1 ← Sitemap generation
├── src/ ← Source
│ ├── components/ ← HTML templates
│ │ ├── header.html
│ │ ├── banner.html
│ │ ├── sidebar-left.html
│ │ ├── sidebar-right.html
│ │ ├── sidebar-right-en.html
│ │ ├── footer.html
│ │ ├── latest-posts.html
│ │ ├── guestbook-item.html
│ │ ├── guestbook-container.html
│ │ ├── changelog-item.html
│ │ ├── changelog-container.html
│ │ └── post-nav.html
│ └── content/pages/ ← Page content
│ ├── index/
│ ├── blog/ ← Chinese posts
│ ├── blog/en/ ← English posts
│ └── templates/
├── index.html ← Homepage
└── web_server.py ← Dev server
Automated builds -- Server watches for content changes, supports single-page builds
Compatibility testing -- Ensuring correct 1024x768 layout in modern browsers and IE5.5
|
April 27-28 Updates
Published Guestbook Architecture article covering the CGI + txt + static build pipeline
Added Latest Posts sidebar widget (top 5, pixel-width truncation)
Added Article Archive page grouped by year-month
Added Site Changelog to the right sidebar (data-driven from changelog.txt)
Unified blog body text to SimSun font across all pages
Added Prev / Home / Next post navigation at the bottom of each article
Implemented site search (no JS) via CGI scanning a plaintext search index
Added Tag Cloud page with per-tag article filtering
Fixed RSS feed Chinese encoding (missing -Encoding UTF8 on Get-Content)
Added metadata system: date, title, tags scanned at build time
Moved search bar to top of right sidebar
Extracted HTML templates from build.ps1 into src/components/ for maintainability
Fixed UTF-16LE encoding issues, standardized all files to UTF-8
Guestbook now supports optional email field with clickable mailto links
Draft mode support (<!-- draft: true -->) with preview via build-draft.cmd
Custom 404 page with ASCII skull + blink tag + Internet Archive joke
Footnote system: [^1] auto-renders as bidirectional superscript anchor links with definition list at bottom
Guestbook auto-rebuild on new message submission (guestbook.py triggers rebuild-all.ps1)
Built a web-based blog editor (editor.py at /cgi-bin/editor.py): formatting toolbar, table generator, footnote insertion, character counter, preview window
editor.py editor IE5.5 compatibility (TextRange selection fallback, String.trim polyfill, named window preview)
Full bilingual support (Chinese/English): manual sidebar toggle, -Lang build parameter, directory-based language separation (blog/en/)
All 8 blog posts + homepage translated to English with separate English sidebar and latest-posts components
|
Next Month Plans
|
Background music (optional MIDI / MP3 playback)
Article view counter
Windows 98 real-hardware testing
|
|