`mytoolkit webpage <project> server <action>` mirrors
`mytoolkit server <action> <project>`, so each Docusaurus project can
manage its own dev/serve lifecycle from the webpage namespace.
Each managed project becomes its own click subgroup, so commands now
read as `mytoolkit webpage mywebpage build` instead of
`mytoolkit webpage build mywebpage`. List remains project-agnostic.
- build: generate CV PDF from cv-zh.md / cv-en.md via Typst cv template
- open: open generated PDF with default application
- --lang-en flag switches between Chinese and English CV
Migrate mywebpage/bin/mywebpage CLI features into mytoolkit:
- deploy: auto-infer GIT_USER from gh CLI or git origin
- pdf build/open: delegate to project's scripts/export-docs-pdf.py
- build --serve: serve built site after successful build
preflight referenced non-existent work-order.md (replaced by agent-tasks.md).
utils only contained albany-cleanup (Albany supercomputer no longer used).
self was a legacy backward-compat group — update/uninstall are already top-level.
- Add new subcommands: convert, preflight, server, templates, webpage
- Migrate config from bin/config.json to ~/.config/mytoolkit
- Fix expand_bookmarks to modify writer objects instead of reader
- Improve md_to_pdf with CJK bookmark support
- Update README and project metadata
Three fixes:
1. Use pandoc -f markdown-citations to avoid @label citation parsing
errors in Typst output.
2. Remove Pandoc auto-generated heading labels (<...>) from typst body.
Without this, Typst creates named-destination links for outline
entries. Named destinations with non-ASCII characters break in
macOS Preview and other PDF readers.
3. Fix expand_bookmarks() to clone the full document (preserving all
/Dest attributes) instead of rebuilding outline from scratch, which
destroyed the bookmark hierarchy.
4. Add --root / to typst compile for consistent absolute path resolution.
- Move all source files from mytoolkit/ to bin/
- Update entry point and build config in pyproject.toml
- Add pillow and pypdf dependencies
- Update README and .gitignore paths
- Remove unused subprocess import in pdf.py
- Clean up duplicate imports in pdf merge command