A tool for formatting Markdown content with padding
- Ensures consistent spacing before and after Markdown elements like headings, lists, and code blocks.
- Aligns tables by formatting column spacing properly.
- Supports formatting inside code blocks and recognizes mathematical expressions, HTML elements, YAML front matter, and fenced code blocks for correct formatting.
- Applies an extended AST parsing to ensure natural language structures like punctuations and latin characters are padded correctly.
Here's a demo showing changes made by formatting:
Install globally via npm
:
npm i -g md-padding
Or run directly using npx
:
# Format README.md in place
npx md-padding README.md
For more options:
> npx md-padding --help
md-padding [OPTION]... <FILE>
Options:
--help, -h Show help [boolean]
--version Show version number [boolean]
--in-place, -i Edit file in place [boolean]
--ignore-words, -I Ignore padding for specific words [string]
--ignore-patterns, -P Ignore specific patterns using regex [string]
--read-files, -r Read file list from input, one file per line [string]
Examples:
stdout md-padding README.md
in-place md-padding -i README.md
pipe cat README.md | md-padding
ignore-words cat README.md | md-padding -I '=' '::'
ignore-patterns cat README.md | md-padding -P '=' ':+'
batch format cat list.txt | md-padding -r -i
equivalent w/ md-padding -r list.txt -i
Map the F6
key to format Markdown files:
" Hotkey for md-padding format
noremap <buffer> <F6> <Esc>:%!npx md-padding<CR>
Install the Markdown Padding extension.
- Open Command Palette (
Ctrl + Shift + P
on Windows/Linux,Cmd + Shift + P
on macOS) and runMarkdown Padding
. - Use the default formatting shortcut:
Shift + Alt + F
(Windows)Shift + Option + F
(Mac)Ctrl + Shift + I
(Linux)
Setting | Type | Description |
---|---|---|
mdpadding.ignoreWords |
Array<string> |
Words to exclude from padding adjustments |
mdpadding.ignorePatterns |
Array<string> |
Regular expressions defining patterns to ignore |
You can exclude certain sections from formatting using the md-padding-ignore
directive:
Some text before the ignored section.
<!--md-padding-ignore-begin-->
a*b=c, b>1 => a<c
<!--md-padding-ignore-end-->
This text will be formatted as usual.