Personal website
Personal website
English is authoritative; 中文参考 .
A static, bilingual Fieldnotes portfolio built with Astro and pnpm. English lives at /, Simplified Chinese at /zh/. Projects, experience and the profile are managed in Markdown. Writing links to the existing blog; the separate Hugo/OINK
site publishes engineering records. Both builds target Cloudflare Workers Static Assets.
Develop
Follow the development guide to install the pinned environment and dependencies. Tool versions and their sources are recorded in the foundation record .
Open http://127.0.0.1:4321/; Chinese is /zh/. Run pnpm dev:logs in another terminal for the independent log site at port 4322. Stop either server with Ctrl+C. .env.example documents optional local canonical URLs; production configuration is covered in the deployment guide
.
Verification checks types, content, both builds, generated links, desktop/mobile browser behavior, and real Markdown build fixtures. Browser tests read built files without starting a server. Outputs are dist/portfolio/ and dist/logs/. Dry runs do not upload anything.
Maintain
- Content : edit bilingual projects, career and profile Markdown.
- Workflow and AGENTS.md : sibling worktrees, selected independent reviews, English Conventional Commits and a preview before every commit.
- Fieldnotes record : selected design, content sources, decisions and acceptance. Other design explorations remain in the original local worktree.
- Every change needs a Chinese-only local acceptance handbook in ignored
.local/acceptance/, including ordered checks and migration/rollback guidance. Public decisions and results belong in the bilingual change log.
Document map lists the reusable guides. Dependencies/tools use exact versions; upgrades go through explicit PRs. CI checks PRs and can deploy checked main artifacts after merge. Remote branch enforcement, credentials, domains and deployment activation remain separate setup.
Original material uses Apache-2.0 ; NOTICE records theme and image attribution. Do not commit credentials, raw resumes, local acceptance files, generated builds or browser traces.