Getting Started
Table of contents
Installation
Download a standalone binary with Ruby bundled inside (about 120–180MB):
| OS | x86_64 | ARM64 |
|---|---|---|
| macOS | Download | Download |
| Linux | Download | Download |
| Linux (musl/Alpine) | Download | Download |
| Windows | Download | — |
On macOS and Linux, make it executable and move it onto your PATH:
chmod +x raindown-*
mv raindown-* /usr/local/bin/raindown
Alpine:
The musl binaries need libgcc and ncurses, which bare Alpine doesn't include (apk add libgcc ncurses-libs). The other Linux binaries use the system's ncurses, which most distros include.
Ruby:
If you have Ruby installed on your system then you can just run:
gem install raindown
The gem compiles the curses gem, for the terminal UI, so on Linux install ncurses' headers first, like apt install libncurses-dev or apk add ncurses-dev.
Updating
Download the binary again from the table above and replace the old one.
If you installed the gem via Ruby then do:
gem update raindown
Setup
Run raindown init in the root of your project to create a .raindown folder. It marks the project's root and holds its config and your own nodes:
raindown init
# Created .raindown/config.yml
Usage
Then watch your project:
raindown
This watches the Markdown files in the project, and writes back to each one as it's saved, like its table of contents and tables. Start it in a folder like ~/dev and it watches every project inside. To watch one file, run raindown README.md.
To render a file to HTML:
raindown README.md --html README.html
To browse the project in the terminal:
raindown tui
See the CLI for more.
Your first directive
Add a table of contents to any Markdown file:
# Notes
<{ toc: }>
<{ :toc }>
## Setup
Save it and Raindown writes the table of contents into the Markdown between the two tags, so people and agents reading the file see it too:
<{ toc: }>
- [Notes](#notes)
- [Setup](#setup)
<{ :toc }>
For the HTML alone, without writing into the file, use <{ :toc }> by itself. See Table of contents.
VS Code extension
Highlight Raindown syntax with the VS Code extension.