Binder is a tool I made during my senior year at KU for taking notes in class. The intention was to make note taking on my Linux machine easy with the following goals:
- Allow the user to organize notes in any manner.
- Notes should be a flat file format for ease of use, editing, and version control if desired.
- The “binder” should be a single file that is easily navigable.
- The “binder” should be customizable by the user.
Binder supports the above by compiling markdown files using
Pandoc from the current working directory, and all child directories, into a single html file. This file has default styles, but can be updated by the user.
Beyond just wanting to build a note taking application for myself, another reason to build this tool was to become more comfortable with Monad transfomers. In particular,
Binder makes use of the
mtl Haskell packages.
If I were to go back and refactor
Binder my main goal would be to rely less on concrete implementation from
transformers and more on the
mtl-style typeclasses to keep methods generic and ready for future refactors.