How zhan-zip/zhan-blog works
Zhan-Blog is a static personal-brand and technical-blog site. Its main visitor workflow is browsing published Markdown content and using the client-side Pagefind search to find pages; the site also publishes RSS and supports contact and email-subscription conversion. The README documents further capabilities—including services, analytics, and a GitHub-API-backed admin editor—that are not fully represented in the supplied tree or sampled implementation. The graph includes those only where a concrete path or documented integration supports them; it does not infer their internal wiring.
Main entry points: src Static blog site · content Markdown content · rss.xml.ts RSS feed · Search.svelte Offline search
Components 19
Content and publishing
- Markdown content
src/content - Post utilities
src/utils/content-utils.ts - RSS feed
src/pages/rss.xml.ts - Markdown enhancements
src/plugins - Repository cards
src/plugins/rehype-component-github-card.mjs
Visitor experience
- Static blog site
src - Offline search
src/components/Search.svelte - Display preferences
src/components/widget/DisplaySettings.svelte - Archive browsing
src/components/ArchivePanel.svelte - Translations
src/i18n/translation.ts - Contact form
src/content - Email subscription
scripts/notify.js
External services
- Pagefind index
- Web3Forms
- SMTP mail
scripts/mail.js - Umami analytics
- GitHub API
Authoring tools
- Markdown editor
public/lib/editormd/editormd.js
Other components
- Site visitor
Connections 17
- Site visitor → Static blog site: browses
- Markdown content → Static blog site: renders as pages
- Site visitor → Offline search: searches
- Offline search → Pagefind index: queries index
- RSS feed → Post utilities: gets sorted posts
- RSS feed → Site visitor: serves feed
- Markdown content → Markdown enhancements: uses directives
- Site visitor → Display preferences: changes hue
- Site visitor → Archive browsing: browses archive
- Static blog site → Translations: localizes UI
- Site visitor → Contact form: submits inquiry
- Contact form → Web3Forms: sends form
- Site visitor → Email subscription: subscribes
- Email subscription → SMTP mail: sends mail
- Static blog site → Umami analytics: reports usage
- Markdown editor → GitHub API: writes content
- Repository cards → GitHub API: fetches repository