Panache
Panache is a language server, formatter, and linter for Pandoc, Quarto, and R Markdown. It is designed to be fast, configurable, and fully support the rich syntax of Pandoc Markdown and Quarto, including features like fenced divs, grid tables, definition lists, inline footnotes, and more.
Installation
From crates.io
If you have Rust installed, the easiest way is likely to install from crates.io:
cargo install panachePre-built Binaries
Alternatively, you can install pre-built binary packages from the releases page for Linux, macOS, and Windows. For Linux, packages are available for generic distributions (tarballs) as well as Debian/Ubuntu (.deb) and Fedora/RHEL/openSUSE (.rpm).
Arch Linux
There is also an Arch Linux package available in the AUR: panache-bin.
yay -S panache-bin # or your preferred AUR helperVS Code Extension
If you are running VS Code or an editor that supports VS Code extensions (like Positron), you can install the Panache extension from the VS Code Marketplace or the Open VSX extension, which will automatically also install the panache CLI and start the language server when editing supported files.
Usage
To get the most out of Panache, you should set up the language server in your editor to integrate diagnostics, formatting, code actions, and much more. See the LSP documentation for editor integration instructions.
But if you just want to quickly format or lint a document from the command line, you can do so with the panache CLI.
To format a document in place, run:
panache format document.qmdTo lint a document, run:
panache lint document.qmdBoth of these commands also support reading from standard input as well as globbing patterns for multiple files:
# Format all .qmd files in the current directory
panache format *.qmd
# Lint a directory
panache lint docs/
# Format from standard input and write to standard output
panache format <document.qmdLearn More
To learn more about panache, check out the following documentation:
- Getting Started - Installation and first steps
- Configuration - Customize panache behavior
- Language Server - Editor integration guide
- Formatting - Formatting rules and examples
- Linting - Formatting rules and examples
- LSP - Editor integration guide
- CLI Reference - Command-line options