I’m super excited to announce some big changes to Fern the lightweight CLI tool that I wrote earlier this year to help manage my notes and journalling. After using the script nearly every day for months now, I found some things I loved that really worked well and some other things that got on my nerves and drove me crazy.
Recently I pushed a batch of changes up to the SourceHut repo. We’re calling it v1.3.0
. Nearly all of the major changes for this version impact the journal side of things. There were other small changes made for bug fixes and/or code clean-up and refactoring.
What’s New in v1.3.0?
Daily notes were retired in favor of a weekly log
Daily journal log files were hard to juggle when it came to doing tasks like:
- doing a weekly review/reflection session which required multiple buffers
- reviewing yesterday’s tasks to figure out what needed to be carried over to the next day
Having a weekly log file allows daily notes to live in one spot and facilitates easier weekly reviews, carrying over tasks/items from one day to another within a given week.
Support for weekly, monthly & yearly log templates
Allows a user to define the yearly, monthly and weekly log file setup they need. There’s support for basic template replacement of {{ YEAR | MONTH | WEEKNUM }}
as well. This will allow users to craft dynamic headers and entries for the various logs. In my case, I have found it useful to leverage the various templates to hold some space to reflect and review at the various intervals.
Use a different file type for journals (logs) and folder structure
This was an attempt to start to differentiate the two areas that Fern deals with:
- structured log/journal files and folders with a clear temporal hierarchy
- “looser” set of markdown notes which rely on internal linking between one another for relationships
Log files now have a folder structure of <YYYY>/<MM>
. I found that this made them more searchable and navigable in general, even when not using the fern
command. Within each year folder, in addition to the month folders, there will be a future.log
file to hold long-term tasks or those with far off due dates. Within a month folder there will be a monthly.log
created and weekly logs wk<##>.log
. These pull from the newly setup templates when created so users may adapt them to their needs.
More intuitive open command
The previous version of Fern had journal open
shortcut keywords for commonly used dates (like “today”, “tomorrow”, or “yesterday”). Otherwise, users needed to pass a specific date string (ie. YYYY-MM-DD
). This turned out not to be sufficient for easily getting at dates beyond a day or so removed and more often than not required typing out a date.
With the shift to weekly log files, it presented an opportunity to make the opening command more user-friendly. Fern now has support for opening log files based on the following keyword combos: <last|this|next>-<week|month|year>
. For example, this means that users can now quickly open the previous week’s log file with fern journal open last-week
or this year’s “future.log” with fern journal open this-year
. Common commands could be further aliased within your shell if so desired. The option for entering a specific date was dropped as I did not find it was very useful especially in the context of the move to having a weekly log file as the base.
Backwards Compatibility
For users of the older versions of Fern, you’ll only need to create the newly required log template files in your Vault’s template folder. These can be empty files if you don’t feel the need for them. Ensure the following files exist: future.log
, monthly.log
, weekly.log
. All of the Vault’s note functionality remains unchanged.
⁂
That’s everything for now! Please let me know what you think of the changes. If you have ideas for features you would like to see don’t hesitate to reach out. :)