Open5
markdownlintとtextlintでMarkdownを校正する
Node.jsを使用する。
npm init -y
グローバルインストールで使用する場合はpackage.json
の作成は不要。
markdownlint
npm install -D markdownlint-cli2
.markdownlint-cli2.jsonc
を作成する。設定は好みで。
.markdownlint-cli2.jsonc
{
"config": {
"ul-style": {
"style": "dash"
},
"hr-style": {
"style": "---"
},
"code-block-style": {
"style": "fenced"
},
"code-fence-style": {
"style": "backtick"
},
"line-length": false,
"no-inline-html": false
}
}
以下のコマンドでmarkdownlintを実行。自動修正をしたい場合は--fix
をつける。
npx markdownlint-cli2 docs/
VS Codeでは.vscode/settings.json
に以下を追加で保存時に自動修正が入る。
{
"[markdown]": {
"editor.codeActionsOnSave": {
"source.fixAll.markdownlint": true
}
},
"markdownlint.run": "onType"
}
textlint
npm install -D textlint
textlintはルールを追加してカスタマイズする方式なので、必要なルールをすべて入れる。
.textlintrc.json
を作成する。設定は好みで。
.textlintrc.json
{
"plugins": {
"@textlint/markdown": {
"extensions": [".md"]
}
},
"rules": {
"prh": {
"rulePaths": ["./node_modules/textlint-rule-preset-icsmedia/dict/prh.yml"]
},
"preset-jtf-style": {
"3.1.2.全角文字どうし": false,
"4.2.7.コロン(:)": false,
"4.3.1.丸かっこ()": false
},
"preset-ja-spacing": {
"ja-space-around-code": {
"before": false,
"after": false
},
"ja-no-space-between-full-width": false
},
"preset-japanese": true,
"preset-ja-technical-writing": {
"max-kanji-continuous-len": false,
"no-exclamation-question-mark": {
"allowFullWidthExclamation": true,
"allowFullWidthQuestion": true
},
"no-doubled-joshi": {
"strict": false,
"allow": ["も", "や", "か"]
}
}
},
"filters": {
"comments": true
}
}
以下のコマンドでtextlintを実行。自動修正をしたい場合は--fix
をつける。
npx textlint docs/
VS Codeでは.vscode/settings.json
に以下を追加で保存時に自動修正が入る。
.vscode/settings.json
{
"textlint.run": "onType",
"textlint.autoFixOnSave": true
}
textlint-rule-preset-ja-spacing
npm install -D textlint-rule-preset-ja-spacing
textlint-rule-preset-ja-technical-writing
npm install -D textlint-rule-preset-ja-technical-writing
textlint-rule-preset-japanese
npm install -D textlint-rule-preset-japanese
textlint-rule-preset-jtf-style
npm install -D textlint-rule-preset-jtf-style
textlint-rule-prh
npm install -D textlint-rule-prh
textlint-rule-preset-icsmedia
npm install -D github:ics-creative/textlint-rule-preset-icsmedia
textlint-filter-rule-comments
npm install -D textlint-filter-rule-comments
textlint-filter-rule-allowlist
npm install -D textlint-filter-rule-allowlist
npm scripts
package.json
のscripts
にコマンドを追加し、npm run
でFormatとLintを行えるようにする。
package.json
{
"scripts": {
"format": "markdownlint-cli2 content/ --fix & textlint content/ --fix",
"lint": "markdownlint-cli2 content/ && textlint content/"
}
}
GitHub Actions
Pull Requestを開いた際にFormatとLintを行うため、以下の.github/workflows/check-pull-request.yml
を作成する。
.github/workflows/check-pull-request.yml
name: Check Pull Request
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
check-pull-request:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: 18
cache: "npm"
- name: Install Dependencies
run: npm install
- name: Lint
run: npm run lint