How frankgc2025/course-knowledge-base works
Course Knowledge Base turns Markdown course material into a searchable, navigable static site. Authors organize notes by course and section; the build process discovers and renders pages, assembles course navigation, and creates a search index. Readers browse course overviews, lecture notes, reviews, and problems, or search the published content. The build implementation is concentrated in one script, so its internal stages share that path; client-side behavior and some wiring are inferred from the documented capabilities and asset names.
Main entry points: build.js Build process · public Static assets · assets UI assets · search.js Search interface
Components 18
Course content
- Course notes
content/courses - Course overviews
content/courses - Lecture notes
content/courses - Review materials
content/courses - Problems
content/courses - About page
content/about.md
Site generation
- Build process
scripts/build.js - Markdown rendering
scripts/build.js - Course navigation
scripts/build.js - Search indexing
scripts/build.js - Generated site
- Static assets
public - UI assets
src/assets
Reader experience
- Static website
- Search interface
src/assets/search.js - Navigation interface
src/assets/ui.js
Other components
- Content author
- Reader
Connections 19
- Content author → Course notes: writes notes
- Build process → Course notes: reads Markdown
- Build process → About page: reads Markdown
- Build process → Static assets: copies assets
- Build process → UI assets: copies assets
- Build process → Markdown rendering: renders pages
- Markdown rendering → Course navigation: provides pages
- Build process → Course navigation: builds navigation
- Build process → Search indexing: builds index
- Course navigation → Generated site: writes pages
- Markdown rendering → Generated site: writes HTML
- Search indexing → Generated site: writes index
- Static assets → Generated site: copied into
- UI assets → Generated site: copied into
- Reader → Static website: opens site
- Generated site → Static website: serves pages
- Static website → Navigation interface: loads interface
- Static website → Search interface: loads search
- Search interface → Generated site: reads index