4 releases (2 breaking)
0.2.0 | Aug 31, 2022 |
---|---|
0.1.4 | Aug 23, 2022 |
0.1.3 | Aug 15, 2022 |
0.0.0 | Jul 28, 2022 |
#1766 in Development tools
33KB
804 lines
cbfmt (codeblock format)
A tool to format codeblocks inside markdown, org, and restructuredtext documents.
It iterates over all codeblocks, and formats them with the tool(s) specified for
the language of the block.
Install
Download from GitHub
Download the latest release binaries from github.com/lukas-reineke/cbfmt/releases
Cargo
cargo install cbfmt
Build from source
- Clone this repository
- Build with cargo
git clone https://github.com/lukas-reineke/cbfmt.git && cd cbfmt
cargo install --path .
This will install cbfmt
in your ~/.cargo/bin
. Make sure to add ~/.cargo/bin
directory to your PATH
variable.
Config
A configuration file is required. By default the file is called
.cbfmt.toml
Example:
[languages]
rust = ["rustfmt"]
go = ["gofmt"]
lua = ["stylua -s -"]
python = ["black --fast -"]
Sections
languages
This section specifies which commands should run for which language.
Each entry is the name of the language as the key, and a list of format commands
to run in sequence as the value. Each format command needs to read from stdin
and write to stdout.
Usage
With arguments
You can run cbfmt
on files and or directories by passing them as
arguments.
cbfmt [OPTIONS] [file/dir/glob]...
The default behaviour checks formatting for all files that were passed as arguments. If all files are formatted correctly, it exits with status code 0, otherwise it exits with status code 1.
When a directory is passed as an argument, cbfmt
will recursively run on all files
in that directory which have a valid parser and are not ignored by git.
With stdin
If no arguments are specified, cbfmt
will read from stdin and write the format
result to stdout.
cbfmt [OPTIONS] < [file]
Without arguments and stdin
If there are no arguments and nothing is written to stdin, cbfmt
will print
the help text and exit.
Options
These are the most important options. To see all options, please run
cbfmt --help
check -c|--check
Works the same as the default behaviour, but only prints the path to files that fail.
write -w|--write
Writes the format result back into the files.
parser -p|--parser
Specifies which parser to use. This is inferred from the file ending when possible.
Dependencies
~18–28MB
~522K SLoC