在使用 markdownlint 进行 markdown 文档的规范检查时,我们可能需要定义一些自定义的规则。而 npm 包 markdownlint-rule-helpers 就提供了方便的工具函数,能够帮助我们更轻松地定义自己的 markdownlint 规则。
本文将带您了解 markdownlint-rule-helpers 的使用方法,让您能更好地扩展自己的 markdownlint 规则。
安装 markdownlint-rule-helpers
首先,我们需要使用 npm 安装 markdownlint-rule-helpers:
npm install markdownlint-rule-helpers --save-dev
使用 markdownlint-rule-helpers
markdownlint-rule-helpers 函数库提供了多个 API,可用于扩展 markdownlint 规则。下面将介绍几个常用的函数:
defaultTest
用于创建一个默认的测试对象。该函数返回一个对象,该对象用于进行测试,并在测试失败时返回错误信息。
const { defaultTest } = require('markdownlint-rule-helpers'); const testObject = defaultTest('my rule', 'my error message');
test
用于进行测试的基本方法。该方法接受两个参数:
testObject
:测试对象,即通过 defaultTest 创建的对象input
:要进行测试的输入字符串
const { test } = require('markdownlint-rule-helpers'); const testObject = defaultTest('my rule', 'my error message'); const input = ` # Hello World This is a test `; test(testObject, input);
filterTokens
用于过滤特定类型的 tokens(markdown 语法块)。该方法接受两个参数:
tokens
:要进行过滤的 token 数组types
:要保留的类型
const { filterTokens } = require('markdownlint-rule-helpers'); const tokens = [ { type: 'heading', text: 'Hello World', lineNumber: 1 }, { type: 'paragraph', text: 'This is a test', lineNumber: 3 }, ]; const filteredTokens = filterTokens(tokens, ['paragraph']);
filterTokensToBefore
用于返回从开头开始,直到指定 token 的子数组,不包括该 token。该方法接受两个参数:
tokens
:要进行过滤的 token 数组targetToken
:要截取到的 token
const { filterTokensToBefore } = require('markdownlint-rule-helpers'); const tokens = [ { type: 'heading', text: 'Hello World', lineNumber: 1 }, { type: 'paragraph', text: 'This is a test', lineNumber: 3 }, ]; const filteredTokens = filterTokensToBefore(tokens, tokens[1]);
编写自己的 markdownlint 规则
现在我们已经了解了如何使用 markdownlint-rule-helpers,可以开始编写自己的 markdownlint 规则了。以下是一个示例代码:
-- -------------------- ---- ------- ----- - ---- - - ------------------------------------- -------------- - - ------ ------------ ------------ --- ------------ ------ ----- ---------- --------- -------- -------- -- - ----- - ----- - - ------- -------------------- ----------- -- - -- ----------------------- - --------------------------- ------ --- --- ---------- ------ --------- ----------- --- - --- -- --
使用上述示例代码,我们定义了一个名为 my-rule
的 markdownlint 规则。该规则将检查 markdown 文件中是否出现了 TODO
字符串。如果出现了,就会抛出一个错误并阻止规则被通过。
结语
本文介绍了 markdownlint-rule-helpers 的安装和使用方法,以及如何使用该库编写自己的 markdownlint 规则。希望本文能对您有所帮助,让您能够更高效地规范自己的项目文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc3ceb5cbfe1ea061215b