Ftavies93 / daily-letter.nvim: A plugin in NVIM to make time notes.

A NVIM plugin to make time notes for journals and planning. Inspired by obsidian part of the same name and
Journal.nvim.
I use it as part of my personal
Box box.
-- install from local repo
-- this is just an example; you can just as well use empty opts {}
{
dir = "~/daily-notes.nvim",
opts = {
writing = {
root = "~/zettelkasten/daily-notes"
}
}
}
-- install from github repo
{ "fdavies93/daily-notes.nvim", opts = {} }
Note that this plugin is just tried my personal linux arch for today. it
NEED Work with other UNIX systems (ie WSL, Macos, BSD), but it does not guarantee. Windows may not work due to differences in file management and date.
The most important option is writing.root
. These controls where daily notes.nvim tried to put new notes and open with notes. It should be with existing setups when you place the writing.day
and other options to match your current filename formats.
This setting is also good writing.day.template
In your preferred format for that kind of note, for example:
{
writing = {
day = {
template = "# %A, %B %d %Y\n\n## Notes\n\n## Tasks\n\n## Timebox"
}
}
}
If your LOFALE is not English you need to put parsing.week_starts
to be a string of language to your local. This is because local mermons are used in the room for parsing to avoid mixing calls to os.time
with cooked cords.
If you want weekly notes on everyday, you can change parsing.default
to be
this week
.
For a perfect list of config options,
View Default Config here.
Set up your configuration so directories and templates follow your preferred date format.
:DailyNote day +1
:DailyNote next week
:DailyNote tuesday
:FuzzyTime 2025
daily letters.nvim export :DailyNote
and :FuzzyTime
User commands.
:DailyNote
Makes a new note or open a note if someone is already.
:FuzzyTime
provides time information for the input given and can be used as a means to make a ‘dry run’ of :DailyNote
or play with date date.
everyday letters.nvim enforced a
Recursive cancent parser
To solve English dates to timestamps and create files.
Dates are parked in the following order:
- Timestamps
- Inconsistent semantic dates (eg ‘today’)
- Talks in the wilderness (eg ‘this Tuesday’)
Different algorithms for resolving bad dates can be selected in config at parsing.resolve_strategy
.
-- PERIOD is ("day" | "week" | "month" | "year") ~ "s"?
-- Unambiguous semantic dates
today
tomorrow
yesterday
YEAR(,) week NUM
-- if year isn't defined, we just use the current year
week NUM(,) (YEAR)
(+/-)NUM PERIOD
PERIOD (+/-)NUM
PERIOD -- the same as 'this PERIOD'
this PERIOD
next PERIOD
(last | previous | prev) PERIOD
in (+/-)NUM PERIOD
(+/-)NUM PERIOD ago
-- Ambiguous semantic dates
-- WEEKDAY is generated from the locale names for the weekdays, e.g. "tuesday"
-- and their 3-letter prefixes e.g. "tue"
-- the meaning of this / next / last is determined by config
WEEKDAY
this WEEKDAY
next WEEKDAY
(last | previous | prev) WEEKDAY
-- these always use the current week +/- weeks
(+/-)NUM WEEKDAY
WEEKDAY (+/-)NUM
-- MONTH is generated from the locale names for the months, e.g. "january"
-- and their 3-letter prefixes e.g. "jan"
-- the meaning of this / next / last is determined by config
MONTH
this MONTH
next MONTH
(last | previous | prev) MONTH
DAY MONTH
MONTH DAY
(+/-)NUM MONTH
MONTH (+/-)NUM
For date details date
View the time module.
For all formats of timestamp View default config.
We use default strappime for translation dates, but %W
(Week number) and %w
(The day of the day of the week) was replaced by Bespoke Logic so alternate weeks will begin.
I prefer plugins that make a job, instead of all the goods.
https://opengraph.githubassets.com/4c9831702772937032e12fc6aac7b3afcc78be8d14add2bec2baaf26c66df912/fdavies93/daily-notes.nvim
2025-02-09 09:42:00