Awesome
remark-preset-prettier
Turns off all rules that are unnecessary or might conflict with Prettier.
TOC <!-- omit in toc -->
Notice
If you're not ready for native ESM, top level await or latest remark-lint
plugins, please use versions <1
, see #61 and #97 for more details.
Disabled remark-lint plugins
- blank-lines-1-0-2
- blockquote-indentation
- books-links
- checkbox-character-style
- code-block-style
- definition-case
- definition-spacing
- emphasis-marker
- fenced-code-marker
- final-newline
- hard-break-spaces
- heading-style
- heading-whitespace
- link-title-style
- list-item-bullet-indent
- list-item-content-indent
- list-item-indent
- list-item-spacing
- maximum-line-length
- no-blockquote-without-marker
- no-consecutive-blank-lines
- no-heading-content-indent
- no-inline-padding
- no-long-code
- no-table-indentation
- ordered-list-marker-style
- ordered-list-marker-value
- rule-style
- spaces-around-number
- spaces-around-word
- strong-marker
- table-cell-padding
- table-pipe-alignment
- table-pipes
- unordered-list-marker-style
Install
# yarn
yarn add -D remark-preset-prettier
# npm
npm i -D remark-preset-prettier
Usage
Via config like .remarkrc
{
"plugins": [
"preset-lint-consistent",
"preset-lint-markdown-style-guide",
"preset-lint-recommended",
"preset-prettier"
]
}
Via ESLint(recommended)
Please use eslint-plugin-mdx which works perfectly with ESLint and Remark both together.
{
"extends": "plugin:mdx/recommended"
}
Via remark-cli
remark . --use preset-lint-consistent preset-lint-markdown-style-guide preset-lint-recommended preset-prettier
Via Node API
import report from 'vfile-reporter'
import remark from 'remark'
import consistent from 'remark-preset-lint-consistent'
import styleGuide from 'remark-preset-lint-markdown-style-guide'
import recommended from 'remark-preset-lint-recommended'
import prettier from 'remark-preset-prettier'
const file = remark()
.use(consistent)
.use(styleGuide)
.use(recommended)
.use(prettier)
.processSync('_Hello world_')
console.log(report(file))
remark-retext issue
retext-sentence-spacing is a plugin of retext, and remark-retext makes it possible to use retext plugins together with remark, and retext-sentence-spacing may conflict with Prettier.
However, remark-retext can only be enabled once what means we can not simply disable rule retext-sentence-spacing in this preset which is actually meaningless.
If you do have problems between retext-sentence-spacing and Prettier, you have to override the whole configuration of remark-retext like following:
// .remarkrc.js
import wooorm from 'retext-preset-wooorm'
import sentenceSpacing from 'retext-sentence-spacing'
export default {
plugins: [
'preset-wooorm', // other preset(s) or plugin(s)
'preset-prettier',
[
'retext',
unified()
.use(wooorm) // retext preset(s)
.use({
plugins: [[sentenceSpacing, false]],
}),
],
],
}
Changelog
Detailed changes for each release are documented in CHANGELOG.md.