How cavincao/mini-blog works
Mini Blog is a WeChat mini-program blog with a cloud-function backend and a documented Page → ViewModel → Service → Backend architecture; the README also describes a Mock option. The main reader workflow loads and searches posts, then renders rich text. Admin, member, messaging, GitHub synchronization, and Markdown rendering are separate product capabilities. Edges are limited to README statements and shown source references/calls; several listed pages and cloud functions were not sampled, so their internal dispatch details are not inferred.
Main entry points: ServiceFactory.js Service factory · BaseCloudService.js Cloud service base · articleSearch.js Article search · detail.js Article detail
Components 25
Reading and discovery
- Article search
miniprogram/pages/articleSearch/articleSearch.js - Article detail
miniprogram/pages/detail/detail.js - Post ViewModel
miniprogram/viewmodels/PostViewModel.js - Rich-text renderer
miniprogram/towxml/index.js - Markdown parser
miniprogram/towxml/parse/markdown/markdown.js - Markdown extensions
miniprogram/towxml/parse/markdown/plugins - HTML tokenizer
miniprogram/towxml/parse/parse2/Tokenizer.js
Content administration
- Admin pages
miniprogram/pages/admin - Admin ViewModel
miniprogram/viewmodels/AdminViewModel.js
Member and messaging
- Member pages
miniprogram/pages/mine - Member ViewModel
miniprogram/viewmodels/MemberViewModel.js - Message ViewModel
miniprogram/viewmodels/MessageViewModel.js
GitHub integration
- GitHub pages
miniprogram/pages/git - GitHub ViewModel
miniprogram/viewmodels/GitHubViewModel.js - GitHub sync
cloudfunctions/syncService/index.js
Services and backend
- Service factory
miniprogram/services/ServiceFactory.js - Cloud post service
miniprogram/services/cloud/CloudPostService.js - Cloud admin service
miniprogram/services/cloud/CloudAdminService.js - Cloud member service
miniprogram/services/cloud/CloudMemberService.js - Cloud service base
miniprogram/services/cloud/BaseCloudService.js - Post cloud function
cloudfunctions/postsService/index.js - Admin cloud function
cloudfunctions/adminService/index.js - Member cloud function
cloudfunctions/memberService/index.js
Other components
- Mini-program user
- WeChat cloud platform
Connections 25
- Mini-program user → Article search: searches
README.md - Mini-program user → Article detail: reads
README.md - Article search → Post ViewModel: requests posts
miniprogram/pages/articleSearch/articleSearch.js - Article search → Admin ViewModel: loads labels
miniprogram/pages/articleSearch/articleSearch.js - Article detail → Post ViewModel: loads details
- Admin pages → Admin ViewModel: manages content
README.md - Member pages → Member ViewModel: uses
README.md - GitHub pages → GitHub ViewModel: uses
README.md - Post ViewModel → Service factory: gets service
miniprogram/viewmodels/PostViewModel.js - Admin ViewModel → Service factory: gets service
miniprogram/viewmodels/AdminViewModel.js - Service factory → Cloud post service: selects cloud
miniprogram/services/ServiceFactory.js - Service factory → Cloud admin service: selects cloud
miniprogram/services/ServiceFactory.js - Service factory → Cloud member service: selects cloud
miniprogram/services/ServiceFactory.js - Cloud post service → Cloud service base: extends
miniprogram/services/cloud/CloudPostService.js - Cloud admin service → Cloud service base: extends
miniprogram/services/cloud/CloudAdminService.js - Cloud member service → Cloud service base: extends
miniprogram/services/cloud/CloudMemberService.js - Cloud service base → WeChat cloud platform: calls functions
miniprogram/services/cloud/BaseCloudService.js - Cloud post service → Post cloud function: dispatches actions
miniprogram/services/cloud/CloudPostService.js - Cloud admin service → Admin cloud function: dispatches actions
miniprogram/services/cloud/CloudAdminService.js - Cloud member service → Member cloud function: dispatches actions
miniprogram/services/cloud/CloudMemberService.js - Article detail → Rich-text renderer: renders content
- Rich-text renderer → Markdown parser: parses Markdown
- Markdown parser → Markdown extensions: uses extensions
miniprogram/towxml/parse/markdown/index.js - Rich-text renderer → HTML tokenizer: parses markup
- GitHub ViewModel → GitHub sync: syncs articles