Session Notes: erdscribe Blog Deployment (2026-02-12)¶
What happened¶
Turned the Obsidian vault at /Users/dydo/Documents/knowledge/vault/ (33 markdown notes, 5 folders) into a personal blog using Zensical + Cloudflare Pages at blog.erdscribe.com.
Issues encountered¶
1. Zensical PyPI squatting¶
- System Python 3.9.6 installed
zensical-0.0.2(1.0 kB placeholder package, not the real thing) - Fix: Use Homebrew Python 3.11 → gets real
zensical-0.0.23(12.1 MB with Rust binary)
2. Zensical build doesn't output theme assets¶
zensical buildgenerates HTML but does NOT copy theme CSS/JS/images tosite/- Assets live inside the Python package at
zensical/templates/assets/ - Without them, the site renders as unstyled HTML with giant SVG icons
- Fix: Post-build Python script copies assets from package dir to
site/assets/
3. Wrangler "0 files uploaded" in Claude Code agent mode¶
- Local
npx wrangler pages deploy siteconsistently reports"Uploaded 0 files (0.42 sec)" - Debug telemetry revealed
"hasAssets":falseand"agent":"claude-code" - Even with cache-busted files (unique hashes), still 0/0
- Even on a freshly created project with no prior deploys, still 0/0
- Same command works perfectly in GitHub Actions (uploaded 53 files)
- Root cause unknown — likely a wrangler bug in non-interactive/agent mode
- Workaround: Use GitHub Actions for all deploys, never deploy locally
4. Project delete/recreate invalidates GH Actions deploys¶
- Deleted the Pages project to try fresh, then recreated with same name
- GH Actions runs from before deletion targeted the old project ID
- New project has same name but different internal ID
- Fix: Must trigger a new GH Actions run after recreating
5. Custom CSS not in deploy workflow¶
stylesheets/ebook.csswas referenced in HTML but not copied tosite/- GH Actions workflow only copied theme assets, missed custom CSS
- Fix: Added
shutil.copytree('stylesheets', 'site/stylesheets')to the workflow
Timeline¶
- Explored vault structure, normalized 27 files from inline bold metadata to YAML frontmatter
- Created section index pages, homepage with hero + card grid
- Configured zensical.toml with modern theme
- Hit Python 3.9 / squatted package issue → fixed with Homebrew Python 3.11
- Built locally, deployed to Cloudflare Pages via wrangler
- User reported mobile screenshots showing unstyled site (giant SVGs, raw markdown)
- Discovered theme assets missing from build output
- Wrote post-build copy script, but wrangler wouldn't upload files locally
- Spent ~1 hour debugging wrangler "0 files uploaded" — tried cache busting, project recreation, API direct upload, debug logging
- Realized GH Actions wrangler works fine → committed workflow fix → triggered fresh deploy
- All 53 files uploaded, site fully working
- Re-added custom domain
blog.erdscribe.com
Key files¶
zensical.toml— Zensical config (Merriweather font, custom colors, ebook.css)stylesheets/ebook.css— Custom ebook-style CSSindex.md— Homepage with centered hero + CSS grid cards.github/workflows/deploy.yml— Auto-deploy workflowrequirements.txt—zensical>=0.0.23
What's working now¶
- Auto-deploy: write in Obsidian → obsidian-git pushes → GH Actions builds → CF Pages deploys
blog.erdscribe.comserves styled content with ebook theme- Theme CSS, custom CSS, JS, search all load correctly
- Dark mode toggle works
- Mobile responsive (CSS grid + Zensical modern theme RWD)