Possible Options - modified, mod, lastModified, lastMod, lastmodified or
lastmod. When read the the note we will figure out which one is being
used and accordingly write back that value.
This makes it easier to use GitJournal for editing Hugo websites as they
usually use the 'lastmod' field to indicate when the post was last modified.
Now when adding/editing/removing a note, it gets modified from the
directory it was present in. There is no longer a just a plain list of
all notes, but always a tree of notes, which are inside Folders.
Also refactor this a bit so Note contains a NoteData. I'm really not
convinced about today's abstractions, and feel I might have made this
entire thing much much worse.
The loading/saving/deleting of the Note class is now inbuilt. It's not
offloaded to a NoteRepo. We're always going to be storing them on disk,
for now. It's also way easier to manage them this way.
This completely breaks the app, as it is part of a large refactor to
make Note loading asyncrhnous and not block. Additionally this removed
JSON serialization for Notes as that isn't something we care about any
more.
For now I've mostly tried to follow the same style guide as the flutter
repository, with many options disabled. Eventually, maybe it would make
sense to be far stricter.
For now just create a local git repo and commit all the changes over
there, we're going to allow the user to first see the app and use it
however they want, and later connect it to a remote git repo.
This commit breaks the app, as the on-boarding screen is no longer
connected so you cannot push to a remote app.
It all just makes far more since when each Note has a fileName.
Though we don't save the fileName in the YAML header. It seems quite
redundant to do that.
Another advantage of this is that if we can read any file ending with a
'.md' in a git repo. It doesn't need to be named exactly how we want it,
and we will still save the details correctly.