A kaleidoscope of features built for Foam.
I built these features to help my daily notes work better for me. My daily notes are formatted like this:
# $date
[[$weekly-note]]
[[$yesterday]] | [[$tomorrow]]
---
## TODO
## Log
Personally, I have most of the features here bound to a keyboard shortcut but this extension does not add these bindings for you.
I use Vim bindings. All of my Markdown specific commands are prefixed with <leader>m
. Here are some of the bindings that I use:
<leader>mt
:kaleidofoam.addTodo
<leader>ml
:kaleidofoam.addToLog
<leader>mf
:kaleidofoam.forwardTodo
Run KaleidoFoam: Open Today
to open your daily note.
Command: kaleidofoam.openToday
Opens todays daily note and generates notes for the week.
kaleidofoam.customSections
- Add custom sections you would like to include in your daily notes.
Command: kaleidofoam.addToLog
Add a timestamped entry to the "Log" section.
Example:
## Log
- 10:42 Worked on writing up the README for KaleidoFoam
Command: kaleidofoam.addTodo
Adds a todo item to the "TODO" section.
Example:
## TODO
- [ ] Write up documentation for KaleidoFoam
Command: kaleidofoam.generateDailyEdgeLinks
Adds links to the weekly, yesterday, and tomorrow notes for the current daily note.
Example:
[[week-of-2022-02-20_2022-02-26]]
[[2022-02-20]] | [[2022-02-22]]
Commands: kaleidofoam.openYesterday
, kaleidofoam.openTomorrow
Opens yesterday or tomorrows note relative to the current note.
Command: kaleidofoam.forwardTodo
Forwards a note to a future date. Provides a dropdown recommending days in the next week.
Example:
- [>] Write up documentation for KaleidoFoam [[2022-02-22]]
Snippets for referencing days in the last week.
/last-sunday
/last-monday
/last-tuesday
/last-wednesday
/last-thursday
/last-friday
/last-saturday
Allows you to schedule notifications for a given todo item.
Example:
- [ ] 11:00 | Check email
By default, this will send a notification at 11:00 telling you to check your email.
kaleidofoam.notifications
- Configure how notifications are presented
system
(default): Usesnode-notifier
to send system level notifications. Tested on Windowsvscode
: Show notifications inside of VS Codenone
: Disable notifications
kaleidofoam.minutesBeforeNotifications
- Set the number of minutes before the listed time to send the notification. Defaults to 0
Command: kaleidofoam.toggleTodo
Toggles a todo as complete or incomplete. Adds and removes a timestamp.
Example:
- [ ] Check email
becomes
- [x] Check email // 10:55
Commands:
kaleidofoam.toggleTodoTag.focus
kaleidofoam.toggleTodoTag.urgent
kaleidofoam.toggleTodoTag.optional
Toggles tags on a todo item.
Example:
- [ ] Check out that new VS Code extension @optional
Command: kaleidofoam.toggleWordWrapColumn
Toggles the word wrap column width between 80 and 120 because that's what I like. This would be pretty easy to make configurable if anyone wants to submit a PR ๐
Commands:
kaleidofoam.openLastWeek
,kaleidofoam.openThisWeek
,kaleidofoam.openNextWeek
,
Generates and opens a weekly note. Contains references to all of the daily notes for that week and contains a TODO section.
Requires git cliff