Remark lint plugin to validate Expressive Code labels
npm install remark-lint-expressive-code-labelWarns about labels that are rendered over code in production.
Expressive Code asks to manually add empty lines in places where long labels will be rendered
Using remark-cli:
``bash`
npm install --save-dev remark-cli remark-lint-expressive-code-label
remark --use remark-lint-expressive-code-label
`js
import { remark } from "remark";
import remarkLintExpressiveCodeLabel from "remark-lint-expressive-code-label";
remark().use(remarkLintExpressiveCodeLabel, [
"warn",
{
maxShortLabelLength: 1,
keys: ["", "ins", "add", "rem", "del"],
},
]);
`
You can pass arguments with API
`js`
// Directly pass config with implicit "warn" severity
.use(remarkLintExpressiveCodeLabel, { / ... / })
// ESLint-style with severity name
.use(remarkLintExpressiveCodeLabel, "error")
// OR with level
.use(remarkLintExpressiveCodeLabel, 2)
// OR with additional config
.use(remarkLintExpressiveCodeLabel, ["error", { / ... / }])
Or with .remarkrc.json or remarkConfig in package.json:``
{
"plugins": [
...
// implicit "warn" level
"remark-lint-expressive-code-label",
// or with severity
["remark-lint-expressive-code-label", "warn"],
// or with severity and config
["remark-lint-expressive-code-label", ["warn", { ... }]],
// or just config
["remark-lint-expressive-code-label", { ... }],
]
}
- Default: ["", "ins", "add", "rem", "del"]Which keys to look for labeled hunks such as
ins or del~~~md
`code ins={"label": 1-2} del={"another": 2-4}
~~~
$3
- Type: number, non-negative
- Default: 1Short labels (usually just a letter) are allowed on any line.
~~~md
`code {"A": 1-2} {"Long label": 3-4}
~~~
Development
- Install dependencies:
`bash
npm install
`- Run the unit tests:
`bash
npm run test
`- Build the library:
`bash
npm run build
``