Current design of the project:
- one executable, no plugins
- http server + Selenium for syntax highlighting, diagram rendering etc (everything that needs a browser)
- works even for mermaidjs, diagrams are plain SVGs!
- file cached
- selenium handles chrome installation for us
- file system layout == URLs
ssr-bundlescontains nodejs+bun logic for bundling the JS code needed for SSR, like syntax highlighting and diagram renderingssrcontains the server-side rendering logic, renders HTML pages with syntax highlighting and diagrams- the
coreis usingssrroutes to render snippets of code and diagrams
- the
corecontains the core logic of the application, like parsing markdown, templates, rendering diagrams via Selenium etc.clicontains the command line interface for the applicationswebservercontains the static files webserver with live reload
- one executable for the whole application
- snappy startup time
- minimal memory usage
- minimum app size
Need to be careful with reflection, dynamic class loading, etc.