Giornata is a simple journaling system for GNU Emacs whose fundamental design is rooted in its hierarchical structure.
~/journal
├── 2024 → directory
│ ├── 01 → directory
│ │ ├── 01 → file
│ │ ├── 02
│ │ ├── 03
│ │ ├── …
│ │ ├── 30
│ │ └── 31
│ └── 02
│ ├── 01
│ ├── 02
│ ├── 03
│ └── …
└── …
The right-most digits are your journal entries, their file extension is purposefully omitted because Giornata is not tied to any particular file format, you can choose whatever you feel most comfortable with.
Giornata is responsible for creating these files and directories so you can focus on writing.
Let's go over the foundations of this system:
Writing something with Giornata can be done in one of two ways: the first
method, the one you'll be using most often, is to call giornata-today
, an
interactive function that opens today's journal entry and places the cursor at
the end of the buffer.
Uh oh, did you forget to journal yesterday? Well, that shouldn't be a problem.
If the calendar
is open, giornata-from-calendar
can help create (or visit) a
journal entry for the date at point, consider binding it to the return key or
the left mouse button, you may then click on yesterday and begin to write
whatever it is you did that day.
That's everything you need to know to get started, happy journaling!
Giornata is not yet available in any package archive so you'll have to obtain it from source by evaluating the following:
(package-vc-install "https://git.sr.ht/~grtcdr/giornata" "2024.05.25")
Start journaling right away by typing M-x giornata-today RET
or read through
the next section to get an idea of the different customization options at your
disposal.
Your journal is located in giornata-directory
.
A front matter, which as suggested by the name, is automatically inserted at the
beginning of every journal entry, the contents of the front matter can be
controlled through giornata-front-matter
.
Configuration is mostly delegated to directory local variables for which an
interactive scaffolding function, giornata-scaffold
, exists not only as a
good starting point for users new to Giornata but also to make it more
convenient to reproduce the same "look and feel" that across different machines
via the giornata-dir-locals
variable.
Remember that thing about reviewing your journal from the calendar? Giornata can highlight days with a corresponding journal entry if you let it:
(add-hook 'calendar-mode-hook #'giornata-calendar-mode)
If you prefer to access your journal through the menu bar, enabling the variable
giornata-menu-item
will add an entry named "Giornata" under the "Tools" menu
that you can use to jump to your journal.
Giornata is considered feature-complete, you can rely on the package not to suddenly change. I originally built this package with the intent to keep it generic and unopinionated. I will not accept patches that incorporate new features.
If you wish to contribute a patch, inquire about something or share your feedback, you are welcome to send an email to ~grtcdr/pub@lists.sr.ht. If this is your first time collaborating over email, please check out this guide. If you encounter issues of any kind, please file them in the project's ticket tracker.