如何覆盖 Prettier 中的 Markdown 规则?

问题描述 投票:0回答:4

我对 VSCode 使用 Prettier 扩展。我已经成功建立了一个扩展 ESLint 的基础项目,这样我就可以在保存时自动格式化我的 JavaScript 语法,遵循标准规则

有没有办法对 Markdown 做同样的事情?我想利用 markdownlint 规则或类似规则,因为 Prettier 强制编号列表为:

<!-- Prettier rules -->
1. This is
1. A numbered
1. List

但我更喜欢像这样手动编号:

<!-- My rules -->
1. This is
2. A manual 
3. List
markdown prettier
4个回答
9
投票

不完全符合您的要求,但您可以通过在项目根目录中创建一个名为

.prettierignore
的文件(在其中写入
*.md
)来停用 Prettier for MarkDown 文件。

有关详细信息,请参阅更漂亮的文档


7
投票

Prettier 不强制执行编号列表:

1. first
1. second
1. third

在 Prettier 的游乐场上看到这个:link

它将检测您的第二项是否也是

1.
并像这样格式化列表,否则,它将使用递增数字进行格式化。

无法覆盖 Prettier 的规则,只能更改传递的选项,但对于 markdown,只有

--prose-wrap
选项可用。如果您愿意,您可以自由运行 Prettier,然后运行
markdownlint
来调整您的偏好,就像使用 ESLint 一样。


4
投票

您可以使用

eslint-plugin-markdownlint
来检查 Markdown 文件。

通过设置覆盖

.md
文件的规则,它将优先于更漂亮的:

// .eslintrc
{
  "overrides": [{
    "files": ["*.md"],
    "parser": "eslint-plugin-markdownlint/parser",
    "extends": ["plugin:markdownlint/recommended"]
  }]
}

注意:我是这个插件的作者,但这使用 markdownlint 库来检查文件。


0
投票

您可以使用

"overrides"
功能在每个文件或每个文件类型的基础上覆盖 Prettier 规则:

{
    "printWidth": 120,
    "tabWidth": 4,
    "overrides": [
        {
            "files": ["*.md"],
            "options": {
                "tabWidth": 2
            }
        }
    ]
}

请注意,这适用于与文件名匹配的模式,而不是与语言匹配的模式。如果您将一个文件嵌入到另一个文件中(例如 HTML 中的 JS),您无法在 Prettier 中单独配置该文件,它将遵循文件的设置。

© www.soinside.com 2019 - 2024. All rights reserved.