Overview
Let’s discover The NoteWriter in less than 5 minutes.
The NoteWriter turns Markdown files into objects, providing an all-in-one note-taking solution where your reading notes, flashcards, reminders, tasks, bookmarks, journals and anything you decide to write down will live happily for a very long time.
Just Markdown Files
To start using The NoteWriter, you simply need to write your notes in Markdown files using your favorite editor. In fact, you don’t need The NoteWriter to write your notes. You must only follow a few conventions. Here is an example:
---tags: go---
# Go
## Common Mistakes
### Note: Using goroutines on loop iterator variables
`@source: https://go.dev/wiki/CommonMistakes#using-goroutines-on-loop-iterator-variables`
```go// ❌ DON'Tfor _, val := range values { go func() { fmt.Println(val) }()}
// ✅ DOfor _, val := range values { go func(val interface{}) { fmt.Println(val) }(val)}```
By adding `val` as a parameter to the closure, `val` is evaluated at each iteration and placed on the stack for the goroutine.
## Note: Golang Conferences `#watching`
* GopherCon, USA, Late August `#remind-every-${year}-08`* GopherCon Europe, Mid June
### Flashcard: Largest Conference
(Go) **Largest conference**?
---
**GopherCon** is the United States.This small file illustrates (almost) all special conventions imposed by The NoteWriter.
A file is basically a notebook where you group all notes relating to a similar topic. When The NoteWriter will read the file, it will traverse the headings looking for headings matching known note types. For example, by default, The NoteWriter recognizes headings starting with Note: or Flashcard:. The NoteWriter will therefore extracts 3 notes: Note: Using goroutines on loop iterator variables, Note: Golang Conferences and Flashcard: Largest Conference.
A note support metadata using tags (defined as `#tag`) and attributes (defined as `@name: value`). Tags are attributes with syntactic sugar. Attributes can also be defined using the Front Matter. And more interestingly, most attributes are inherited by default.
In addition to notes, The NoteWriter will also extract additional objects. On the above example, the note Flashcard: Largest Conference will generate a flashcard to study using a spaced repetition system (SRS). The tag `#remind-every-${year}-08` will generate a recurring reminder “GopherCon, USA, Late August” that will pop up every August, 1st.
Summary
Writing your notes with The NoteWriter means writing regular Markdown files locally. A few conventions exist but you would probably adopt a similar logic even without using The NoteWriter.
Let’s try to add a few notes into The NoteWriter but first, we need to discuss about the motivations behind one more note-taking application…