Comment by flysand7
3 days ago
I'm assuming it's because the project isn't meant to "Render" markdown, but provide a preview that works offline. That includes hot reloading when the original file changes, which you can't really do with just a client-side library.
If it was a JS library in addition to providing you a webpage with js in it, it would also need to provide you with a server with a hot reload, and we're back to CLI.
They are using goldmark library with some extensions[0] to render markdown. And there's also GitHub API for rendering markdown[1] if you're curious.
References:
[0]: https://github.com/thiagokokada/gh-gfm-preview/blob/main/int...
[1]: https://docs.github.com/en/rest/markdown?apiVersion=2022-11-...
fwiw there are plenty of webserver cli's with reload capability (https://www.npmjs.com/package/live-server or npx serve + chokidar), this is definitely one of those things that can decomposed to single responsibility tools
(nit: hot reload means a specific thing in the js ecosystem and you prob dont mean that)
Sure, but using Node would mean losing the advantage of this being a single static binary. Not everyone has Node installed already.