Obsidian
A Markdown-superset tailored for Obsidian.
Install
The plugin
Install Raindown from Obsidian's community plugins: in Settings โ Community plugins, select Browse, search for Raindown, select Install, then Enable.
The program
The plugin needs the raindown program, which it can't install for you. Paste one of these commands into a terminal and press Return. It takes about a minute, and running it again updates Raindown. Then select Check again, or run Raindown: Find Raindown from the command palette.
Open Terminal by pressing Cmd + Space and typing Terminal, then run:
Open a terminal by pressing Ctrl + Alt + T, or by searching your apps for Terminal, then run:
Open PowerShell by pressing the Windows key and typing PowerShell, then run:
curl -fsSL https://raindown.dev/install.sh | sh
curl -fsSL https://raindown.dev/install.sh | sh
irm https://raindown.dev/install.ps1 | iex
Both check the download against the release's checksums. You can read them first, at install.sh and install.ps1, or download a binary yourself, or install the gem.
Features
Metadata
Underscored values in file paths are automatically converted to metadata. For example, in the following file path...
docs/_basics/_1-getting-started.md
...the _basics and _1 produce metadata that is equivalent to the following front matter:
---
folder: basics
order: 1
---
Tip
Separate multiple folder tags with &:
docs/_1&_basics/_1-getting-started.md
List
list: writes a link to each note with a tag or in a folder, like list: tags: 'book'
list: tags: 'book'
- [Dune](books/Dune.md)
- [Hyperion](books/Hyperion.md)
Table
table: writes a CSV or TSV file in your vault into the note as a table. Edit a cell in the note and it's written back to the file, and changing the file updates the table.
Obsidian doesn't open CSV files, so a table has an Open CSV button beside it, which opens its file in your spreadsheet app. The file's made the first time the note's written back, from the table you've typed below it, or else with a table to fill in.
The quickest way to change a table is in the note, which always writes back to its file. In a spreadsheet app, save the file as CSV for the note to update: Excel saves it in place, but Numbers keeps your changes in a separate .numbers file unless you choose File โ Export To โ CSV and replace the original.
table: 'data/books.csv'
<!-- table 2 rows ยท f690ac -->
| title | rating |
| -------- | ------ |
| Dune | 5 |
| Hyperion | 4 |
Charts
chart: draws a CSV, TSV, JSON or YAML file in your vault.
chart: 'data/reading.csv'
```
Jan โโโโโโโโโโโโโโโโโโโโโโโโ 320
Feb โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 540
Mar โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 410
```
Table of contents
toc: writes an inline TOC which updates as you add and rename headings.
# Books
toc:
- [Reading](#reading)
- [Finished](#finished)
## Reading
## Finished
Components
A note in your vault's .raindown folder, like BookCard.md, is a component with no code, a template whose properties fill its {variables}, like BookCard: title: Dune rating: 5.
Settings
| Setting | Default | Description |
|---|---|---|
| Raindown command | raindown |
The raindown executable, or its full path |
| Write-back | On | Write back to a note with directives as you type |
| Bare syntax | Off | Recognise bare directives on their own line like toc: (equivalent to CLI --bare) |
A bare directive, on its own line like toc:, only writes back in a note with raindown: true in its front matter, unless Bare syntax is on. Only names Raindown knows like toc:, list: and your project's nodes write anything, so a line like Summary: is left alone.
Warning
Make sure your files are version controlled or backed up before enabling bare syntax, otherwise existing content beneath text like list: could be overwritten.
Adding, renaming or removing a note writes back the notes with lists, like list:, so they don't go stale.
Commands
| Command | Does |
|---|---|
| Raindown: Write back this note | Writes back now, and says what happened |
| Raindown: Run the endpoints in this note | Runs the endpoints without a response, like -x |
| Raindown: Write back all notes | Writes back every note with directives, and says how many changed |
| Raindown: Find Raindown | Looks for Raindown again, once you've installed it |
| Raindown: Open this table's file | Opens the file of the table at the cursor, in your spreadsheet app |
Note
Unlike the CLI endpoints in Obsidian never run on save, only via the command.
Requirements
The raindown executable, which you install yourself. The plugin never installs or updates it, as Obsidian's developer policies don't allow that.
The first time the plugin can't find it, it looks in ~/.local/bin, or %LOCALAPPDATA%\Programs\raindown on Windows, and on your shell's PATH, which Obsidian opened from the Dock doesn't have. If it's not there either, it shows the command to run, and Check again or Raindown: Find Raindown looks again once you have. You can also set the plugin's Raindown command to its full path.
It's desktop only, as Obsidian on phones can't run Raindown.
Files and network
- Running Raindown - Raindown is a separate program, so the plugin runs it to write back to your notes, and starts your shell once to find it on your
PATH. Like any program you run, Raindown isn't limited to your vault, but the plugin only gives it file paths inside your vault. - Network - The plugin doesn't use the network itself. Raindown calls the URLs in a note's endpoints when you run Raindown: Run the endpoints in this note, and your vault's own nodes in
.raindownare code that can use it too.