MCluck90 / kaleidofoam

A collection of features built for Foam

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KaleidoFoam

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

Getting Started

Run KaleidoFoam: Open Today to open your daily note.

Features

Daily Note

Command: kaleidofoam.openToday

Opens todays daily note and generates notes for the week.

Configuration

  • kaleidofoam.customSections
    • Add custom sections you would like to include in your daily notes.

Add to Log

Command: kaleidofoam.addToLog

Add a timestamped entry to the "Log" section.

Example:

## Log
- 10:42 Worked on writing up the README for KaleidoFoam

Add Todo

Command: kaleidofoam.addTodo

Adds a todo item to the "TODO" section.

Example:

## TODO
- [ ] Write up documentation for KaleidoFoam

Daily Edge Links

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]]

Open Yesterday/Tomorrow

Commands: kaleidofoam.openYesterday, kaleidofoam.openTomorrow

Opens yesterday or tomorrows note relative to the current note.

Forward Todo

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]]

Last Week Snippets

Snippets for referencing days in the last week.

  • /last-sunday
  • /last-monday
  • /last-tuesday
  • /last-wednesday
  • /last-thursday
  • /last-friday
  • /last-saturday

Scheduled Notifications

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.

Configuration

  • kaleidofoam.notifications
    • Configure how notifications are presented
    • system (default): Uses node-notifier to send system level notifications. Tested on Windows
    • vscode: Show notifications inside of VS Code
    • none: Disable notifications
  • kaleidofoam.minutesBeforeNotifications
    • Set the number of minutes before the listed time to send the notification. Defaults to 0

Toggle Todo

Command: kaleidofoam.toggleTodo

Toggles a todo as complete or incomplete. Adds and removes a timestamp.

Example:

- [ ] Check email

becomes

- [x] Check email // 10:55

Toggle Todo Tags

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

Toggle Word Wrap Column

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 😉

Weekly Notes

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.

Development

Generating the Changelog

Requires git cliff

About

A collection of features built for Foam

License:MIT License


Languages

Language:TypeScript 99.6%Language:Shell 0.2%Language:JavaScript 0.1%