.blt is a minimal and flexible file format loosely inspired by the Bullet Journal Method for those who like to stay organized with simple text files.
This is what it looks like:
It is possible to use the .blt file format without installing anything. Although...
This VS Code extension provides syntax highlighting to make reading, writing, and skimming your files easier. The syntax highlighting works with a few default themes, but can be easily customized.
There are no rules to using .blt, but if you're interested, I've included how I use it at work.
.blt is most powerful when used alongside whaatch and git lens to maintain to-the-second traceability.
Install directly through VS Code by going to the extension tab and searching for ".blt".
Make sure you also take the time to create a custom color theme for the best experience.
You can find the .blt extension on the VS Code marketplace.
To package your own .vsix and install from source see Contributing.
In order to customize colors, add to the editor.tokenColorCustomizations
in your settings.json. You can copy the sample config provided here: sample settings.
Example:
{
"scope": "task.complete.blt",
"settings": {
"foreground": "#2c3e50"
}
}
Designed to work with existing VS Code themes (some work better than others).
- In order to get the colors to show up as desired with the default themes, the grammar highlighting isn't semantic. (ex. Important items are marked as "invalid.illegal.blt" so they show up in red.) This will cause issues with themes that haven't been tested.
- It doesn't seem like extending
editor.tokenColorCustomizations
, or themes in general for that matter, is possible with a vscode extension. We could provide a convenience vscode command to update user settings in the future.
The tmLanguage file is generated via https://eeyo.io/iro (see the .iro file] which allows us to compile for various other editors in the future!
Tip for debugging in VSCode: Trigger the scope inspector from the Command Palette with the Developer: Inspect Editor Tokens and Scopes
.
To create a vsix package yourself:
npm install -g vsce
cd /path/to/blt
vsce package
then add it to vscode using one of these two methods:
- From the command line:
code --install-extension /path/to/blt.vsix
- From VS Code GUI: Go to the extensions tab in VS Code, click the ellipsis in the top bar ("..."), and click "Install from VSIX".
I've tried many methods over the years, but I've settled into a rhythm with this file structure:
LOG.blt
READ.blt
meetings/
210101 meeting topic.blt
210102 meeting topic.blt
...
recurring/
person.blt
teamsync.blt
...
Every file is a flat list of items.
LOG.blt
is the primary file where I prioritize and complete tasks. Completed or delegated items are shuffled (⌥+↑ on Mac) upwards and kept as a record. The remaining open tasks are ranked in order of importance beneath those. I use # Headers
to delineate un-prioritized tasks into responsibility areas, until they are properly prioritized in my primary list.
An example:
x completed task
x completed task
^ pushed off for later: reason or ~date to revisit
> delegated task @user
x recently completed task
. top priority task
o prepare for presentation ~friday
. tertiary task
# Architecture
. update architecture diagrams
. review presentation
# some other topic
. another unprioritized task
There are generally two types of meetings (recurring
, or one-off meetings
).
For both types, I open the meeting file and jot down items that come up (tasks, inspiration, notes, delegations etc...). After the meeting I'll review and decide if any action items need to be moved from this file to my main LOG.blt file, or somewhere else.
When I delegate a task I mark is as delegated in LOG.blt
and copy it to the relevant recurring/person.blt
file where I may take more notes about it, and followup on it at the next meeting.
I use a date stamp snippet to slap a date in the header of new meeting files (# 210831
) which then easily get saved using that as the filename afterwards.
READ.blt
is just a list of URLs or books I want to get to eventually. This is a great habit to stop yourself from pretending your being productive by consuming content. When I find something interesting I put it in that list, and if it's still interesting later I'll go back and read it. Most of the time it isn't.