gonotes
Self updating markdown note taking system
Problems and Solutions
Problem:
A way to see markdown changes in realtime that support latex and editor integration.
Solution:
Create a portable binary that could serve clients with the latest changes of the
compiled markdown.
Challenges
New to go.
New to programming asynchronous, concurrent systems.
No solid markdown libraries that support latex in go. Solution: interact with pandoc
through the os.
Learning how to use websockets.
Approach
Break into subsystems:
File watching system
Http server
Websocket server
Markdown system
Markdown System
Makes a call to pandoc to compile all or just the modified file into html to be sent to
the browser by the websocket system.
File watching system
Watches the file system for any changes.
HTTP Server
Simply serves the static files to the client.
Websocket server
System that keeps the client up to date with the current files
Possible Future possibilities
Integration into syncthing for automatically syncing to multiple computers in real
time and keeping things updated on a remote server.
Search features and ease of use.
Markdown preprocessor.
Cursor location tracker.
Cli frontend for navigating to content specific sections

Hack2o gonotes