markdownlint-rule-table-format
v1.0.2
Published
A custom markdownlint rule to format GFM tables to comply with MD060 (aligned, compact, or tight style)
Maintainers
Readme
markdownlint-rule-table-format
A custom markdownlint rule to format GitHub Flavored Markdown (GFM) tables to comply with MD060 (table-column-style).
Inspired by markdownlint-rule-search-replace.
Overview
The built-in MD060 rule reports when table column style is inconsistent but does not auto-fix. This rule detects GFM tables and reformats them to one of the MD060 styles (aligned, compact, or tight), with optional fix application when using markdownlint --fix.
- aligned: Pipes vertically aligned with padding (e.g.
| foo | bar |). - compact: Single space around cell content (e.g.
| foo | bar |); optional aligned delimiter row. - tight: No padding (e.g.
|foo|bar|).
Installation
npm install markdownlint-rule-table-format --save-devConfiguration
Add the rule and config to your markdownlint config (e.g. .markdownlint.json or .markdownlint-cli2.jsonc).
Using .markdownlint.json
{
"default": true,
"table-format": {
"style": "tight",
"aligned_delimiter": true
}
}Or with markdownlint-cli2 and customRules:
{
"fix": true,
"customRules": ["markdownlint-rule-table-format"],
"config": {
"table-format": {
"style": "tight",
"aligned_delimiter": true
}
}
}Configuration options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| style | "aligned" | "compact" | "tight" | "any" | "aligned" | Target table style. Use "any" to disable the rule. |
| aligned_delimiter | boolean | false | When true, the delimiter row aligns with the header (for compact/tight). |
| fix | boolean | true | When false, only report violations (no fixInfo). |
| fixApplicator | boolean | true | When false, only report violations (no fixInfo). |
Rule name aliases: table-format (recommended) or table-column-style-fix.
Usage
With markdownlint-cli
markdownlint README.md -r markdownlint-rule-table-format
# or with fix
markdownlint README.md -r markdownlint-rule-table-format --fixWith markdownlint-cli2
markdownlint-cli2 "**/*.md" -c .markdownlint-cli2.jsonc
# fix is applied when config has "fix": trueWith markdownlint API
const markdownlint = require("markdownlint");
const tableFormat = require("markdownlint-rule-table-format");
const options = {
files: ["docs/**/*.md"],
config: {
default: true,
"table-format": {
style: "tight",
aligned_delimiter: true,
},
},
customRules: [tableFormat],
};
markdownlint(options, (err, result) => {
if (!err) console.log(result.toString());
});Disable for a section
<!-- markdownlint-disable table-format -->
| A | B |
| - | - |
| 1 | 2 |
<!-- markdownlint-enable table-format -->References
License
MIT
