メインコンテンツまでスキップ

ルールを適用する

デフォルトの挙動

Markuplintは実行時、設定ファイルを自動で探します。設定ファイルが見つからなかった場合、推奨プリセットのルールを適用します。見つかった場合はその設定に従います。

ルールの設定

設定ファイルが必要になります。用意できたらrulesプロパティに必要なルールを追加します。

{
"rules": {
// ここに追加していく
"[rule-name]": true,
"[rule-name2]": "Any Value",
"[rule-name3]": {
"value": 12345
}
}
}

false以外を値に指定すると、ルールが有効化されます。つまり、falseを指定した場合は無効化されます。値の詳細はrulesプロパティにをご覧ください。

部分的な適用

構造の一部のみにルールを適用したい場合は、セレクタnodeRulesまたはchildNodeRulesプロパティに設定します。また、childNodeRulesは対象要素の子要素(inheritanceを設定すれば子孫も含む)に対して適用されます。

{
"nodeRules": [
{
// <main> のみに適用
"selector": "main",
"rules": {
"class-naming": "/[a-z]+(__[a-z]+)?/"
}
},
{
// 「some-class-name」クラスをもつ要素のみに適用
"selector": ".some-class-name",
"rules": {
"required-attr": true
}
}
],
"childNodeRules": [
{
// 「ignoreClass」クラスをもつ要素の子要素のみに適用
"selector": ".ignoreClass",
"rules": {
"character-reference": false
}
},
{
// 「ignoreA11y」クラスをもつ要素の子孫要素のみに適用
"selector": ".ignoreA11y",
"inheritance": true,
"rules": {
"wai-aria": false
}
}
]
}

組み込みルール

組込みルールの詳細は、「ルール」ページよりご確認ください。

カスタムルールの適用

もちろん、サードパーティまたはご自身で作成したカスタムルールの適用が可能です。

スラッシュ区切りでプラグイン名とルール名を指定することでカスタムルールが適用されます。

{
"rules": {
"[plugin-name]/[rule-name]": true
}
}

プラグイン名とルール名は以下のように定義されます。

./plugin.js
import { createPlugin, createRule } from '@markuplint/ml-core';

export default createPlugin({
name: 'my-plugin',
create(settings) {
return {
rules: {
'my-rule': createRule({
verify({ report }) {
// 評価とレポーティングを行う
report(/* ... */);
},
}),
},
};
},
});
{
"plugins": ["./plugin.js"],
"rules": {
"my-plugin/my-rule": true
}
}