nts
nts
is a personal note-management CLI that I wrote in Haskell. It handles things like:
- creating a note from a template
- creating daily journals automatically
- logging note creations in daily journals
why haskell?
I picked Haskell because I wanted to learn the language. Haskell is a very terse, alien-looking language from the perspective of someone that has never worked in functional programming. I was bothered by the idea that I didn't understand a whole school of thought because I refused to learn the syntax of a language. So, I decided to build a project with it.
The Process
I ended up building a pretty robust command line parser from scratch. It can handle a lot more than a typical hacked-together bash script, including:
- full support for tags and shortened tags (
-t
-tag
--tag
) - variatic arguments following tags (ex.
--tags tag1 tag2 tag3
) - a context that validates the minimum required arguments have been provided correctly
- purposeful, position-dependent arguments
For templating, I utilized moustache templates and Haskell's implementation.