diff --git a/qlty-plugins/plugins/linters/mdformat/README.md b/qlty-plugins/plugins/linters/mdformat/README.md new file mode 100644 index 000000000..268dd6e1d --- /dev/null +++ b/qlty-plugins/plugins/linters/mdformat/README.md @@ -0,0 +1,34 @@ +# mdformat + +[mdformat](https://github.com/hukkin/mdformat) is a CommonMark compliant Markdown formatter. + +## Enabling mdformat + +Enabling with the `qlty` CLI: + +```bash +qlty plugins enable mdformat +``` + +Or by editing `qlty.toml`: + +```toml +# Always use the latest version +[plugins.enabled] +mdformat = "latest" + +# OR enable a specific version +[plugins.enabled] +mdformat = "X.Y.Z" +``` + +## Links + +- [mdformat on GitHub](https://github.com/hukkin/mdformat) +- [mdformat plugin definition](https://github.com/qltysh/qlty/tree/main/plugins/linters/mdformat) +- [mdformat releases](https://github.com/hukkin/mdformat/releases) +- [Qlty's open source plugin definitions](https://github.com/qltysh/qlty/tree/main/plugins/linters) + +## License + +mdformat is licensed under the [MIT License](https://github.com/hukkin/mdformat/blob/master/LICENSE). diff --git a/qlty-plugins/plugins/linters/mdformat/fixtures/__snapshots__/basic_v1.0.0.shot b/qlty-plugins/plugins/linters/mdformat/fixtures/__snapshots__/basic_v1.0.0.shot new file mode 100644 index 000000000..218d094ca --- /dev/null +++ b/qlty-plugins/plugins/linters/mdformat/fixtures/__snapshots__/basic_v1.0.0.shot @@ -0,0 +1,20 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`linter=mdformat fixture=basic version=1.0.0 1`] = ` +{ + "issues": [ + { + "category": "CATEGORY_STYLE", + "level": "LEVEL_FMT", + "location": { + "path": "basic.in.md", + }, + "message": "Incorrect formatting, autoformat by running \`qlty fmt\`.", + "mode": "MODE_BLOCK", + "onAddedLine": true, + "ruleKey": "fmt", + "tool": "mdformat", + }, + ], +} +`; diff --git a/qlty-plugins/plugins/linters/mdformat/fixtures/basic.in.md b/qlty-plugins/plugins/linters/mdformat/fixtures/basic.in.md new file mode 100644 index 000000000..7532d3849 --- /dev/null +++ b/qlty-plugins/plugins/linters/mdformat/fixtures/basic.in.md @@ -0,0 +1,7 @@ +# Heading + +This is a paragraph with extra spaces. + +* Item 1 +* Item 2 +* Item 3 diff --git a/qlty-plugins/plugins/linters/mdformat/mdformat.test.ts b/qlty-plugins/plugins/linters/mdformat/mdformat.test.ts new file mode 100644 index 000000000..5f229ffb5 --- /dev/null +++ b/qlty-plugins/plugins/linters/mdformat/mdformat.test.ts @@ -0,0 +1,3 @@ +import { linterCheckTest } from "tests"; + +linterCheckTest("mdformat", __dirname); diff --git a/qlty-plugins/plugins/linters/mdformat/plugin.toml b/qlty-plugins/plugins/linters/mdformat/plugin.toml new file mode 100644 index 000000000..ce20c96f7 --- /dev/null +++ b/qlty-plugins/plugins/linters/mdformat/plugin.toml @@ -0,0 +1,18 @@ +config_version = "0" + +[plugins.definitions.mdformat] +runtime = "python" +package = "mdformat" +file_types = ["markdown"] +latest_version = "1.0.0" +known_good_version = "1.0.0" +version_command = "mdformat --version" +description = "CommonMark compliant Markdown formatter" + +[plugins.definitions.mdformat.drivers.format] +script = "mdformat ${target}" +success_codes = [0] +output = "rewrite" +cache_results = true +batch = true +driver_type = "formatter"