nts

source

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.

Back to the Top