为 remark-cli 配置备注-lint-no-undefined-引用插件/规则"允许"选项?



原始问题

如何正确地">配置";(统一的,注释,注释lint)注释lint没有未定义的引用插件/规则";允许";选项,用于注释cli?

我的目标是将规则配置为忽略Azure DevOps Wiki的非标准目录标记[[_TOC_]]。我的简化设置需要:

  1. 全局安装的所有软件包。可能不相关
  2. 父文件夹,其中包含:
    • package.json文件
    • 仅包含一个Test.md文件的Test文件夹,该文件的唯一内容是这一行[[_TOC_]]
  3. 在工作文件夹为上述父文件夹的命令提示符下,我执行:
    • remark Test

默认操作

默认操作,即仅在package.json文件中指定的插件/规则,返回预期的警告。也就是说,可能,这是由于非标准标记[[_TOC_]]。这是我想要关闭的警告。

package.json(默认)

{
"remarkConfig": {
"plugins": [
"remark-lint-no-undefined-references"
]
}
}

执行和预期警告(默认)

C:..>remark Test
testTest.md
1:1-1:10  warning  Found reference to undefined definition  no-undefined-references  remark-lint
1:2-1:9  warning  Found reference to undefined definition  no-undefined-references  remark-lint
‼ 2 warnings

我尝试过的

我已经尝试将remak-lint-no-undefined-references API示例和配置"规则可以以一种标准方式配置"适配到我的package.json文件中。经过多次尝试和错误,我最终得到了这个看似有效的json:

package.json

{
"remarkConfig": {
"plugins": [
"remark-lint-no-undefined-references", [1, {
"allow": ["[[_TOC_]]"]
}]
]
}
}

联机JSON查看器和JSONLint表示它是有效的JSON。但是,remark cli会产生此错误。其他变体产生了不同的错误。我被难住了。

C:..>
TestTest.md
1:1  error  Error: Cannot parse file `package.json`
Expected preset, not `1`
at Error (file:///C:/Users/scott.welker/AppData/Roaming/npm/node_modules/remark-cli/node_modules/fault/index.js:39:12)
at file:///C:/Users/scott.welker/AppData/Roaming/npm/node_modules/remark-cli/node_modules/unified-engine/lib/find-up.js:190:15
at done (file:///C:/Users/scott.welker/AppData/Roaming/npm/node_modules/remark-cli/node_modules/trough/index.js:145:7)
× 1 error

2022年3月14日更新

由于在GitHub Issue(#210)上的一些帮助,我已经取得了一些进展。然而,这不是正确的途径,它已经关闭。我的问题仍然存在。

有几件事是显而易见的

  1. 我最初推断的JSONpackage.json不正确。请参阅下面的破解我的JSON
  2. 我无法理解非标准的Azure DevOps Wiki目录标签[[_TOC_]]是如何被解释的。请参阅下面的标签解释(控制台日志)
  3. 我推断的package.json似乎仍然不正确。请参阅下面的我的JSON必须仍然错误

破解了我的JSON

为了克服...Error: Cannot parse file 'package.json', Expected preset, not '1',我入侵了我的文件,现在我有了以下内容。这一改变克服了错误,使我能够继续,但似乎仍然不正确。请参阅我的JSON必须仍然错误

package.json文件

{
"remarkConfig": {
"plugins": [
"remark-lint-no-undefined-references", {
"allow": ["_TOC_", "[_TOC_]"]
}
]
}
}

标签解释(console.log)

在破解了我的JSON之后,我添加了一个推荐的id的console.log(..npmnode_modulesremark-lint-no-undefined-referencesindex.js)。这表明linting将目录标签解释为相关标记的两个独立位_TOC_[_TOC_]。我对此并不感激。然而,下面的研究结果表明,这可能不是一个问题。请参阅我的JSON必须仍然错误

备注cli

C:..>remark Test
Id:  _TOC_
Id:  [_TOC_]
TestTest.md
1:1-1:10  warning  Found reference to undefined definition  no-undefined-references  remark-lint
1:2-1:9  warning  Found reference to undefined definition  no-undefined-references  remark-lint
‼ 2 warnings

我的JSON肯定还是错的

参考源中的另一个位置(第126行),当我用这个硬编码声明const allow = new Set(["_TOC_", "[_TOC_]"])替换const allow定义时,我得到了所需的行为。例如:

备注cli

C:...>remark Test
TestTest.md: no issues found

接下来的步骤:

  1. 看看我是否可以放弃package.json,转而使用纯javascript。要么我的JSON不正确,要么它没有被正确解释
  2. 继续使用JSON进行futz。我所推断的很可能是错误的。
    • 以下猜测也无法抑制不需要的警告:

package.json

{
"remarkConfig": {
"plugins": [
"remark-lint-no-undefined-references", [{
"allow": ["_TOC_", "[_TOC_]"]
}]
]
}
}

2022年3月28日更新

小心
虽然此更新中的设置有效,但Test.js示例代码存在缺陷。请参阅下面的2022年3月30日更新

下面的package.json正确">配置";注释lint没有未定义的引用插件/规则";允许";选项,可与remark cli一起使用。

  • 注意:我也放弃了全局安装的程序包,因为我担心它们可能导致了我的问题。请参阅多个全局安装的预设和插件不起作用#165。该转换说明了添加的CCD_依赖性";。请参见以下内容

package.json

我是从2022年3月30日的更新开始工作的,并在统一引擎、配置、模式部分中使用了不同的语法。

同样,我的目标是将规则配置为忽略Azure DevOps Wiki的非标准目录标记[[_TOC_]]

{
"remarkConfig": {
"plugins": {
"remark-lint-no-undefined-references": { "allow":[ "_TOC_", "[_TOC_]" ] }
}
},
"dependencies": {
"remark": "^14.0.2",
"remark-lint": "^9.1.1",
"remark-lint-no-undefined-references": "^4.1.1"
}
}

执行和输出

注意:我的调试console.log(...)仍然存在。

C:..>remark Test
DEBUG remarkCLITest: allow contains 2 items.
TestTest.md: no issues found

相关内容

  • 没有找到相关文章

最新更新