🐷
textlint を用いた asciidoc の検査
textlint を用いた asciidoc の検査
概要
textlint は、markdown やテキストファイルの検査をするツールです。プラグインを使うことで、他形式のファイル(asciidoc など)を検査することができます。
具体的な実行方法と出力例
設定によって検出内容は変わりますが、例えば下記のような出力が得られます。
実行
npx textlint ./doc/**/*.adoc
結果
Sample.adoc:23:13: Github => GitHub [Error/prh]
Sample.adoc:40:167: いい => よい [Error/prh]
Sample.adoc:40:187: 弱い表現: "かも" が使われています。 [Error/ja-technical-writing/ja-no-weak-phrase]
Sample.adoc:43:18: pull request => Pull Request [Error/prh]
Sample.adoc:44:9: は無い => はない [Error/prh]
Sample.adoc:55:39: かっこの外側、内側ともにスペースを入れません。 [Error/ja-spacing/ja-no-space-around-parentheses]
Sample.adoc:55:40: 文末が"。"で終わっていません。 [Error/ja-technical-writing/ja-no-mixed-period]
Sample.adoc:59:25: 一文に二回以上利用されている助詞 "は" がみつかりました。
導入
Node.js 上で動作するモジュールのため、Node の導入が必要です。
下記をざっと眺めて、実際にインストールなどをしてみてください。
関連リンク:入門及びインストール
設定
設定は .textlintrc.json に記述します。
設定例
"rules": {
"preset-ja-technical-writing": true,
"preset-ja-spacing": {
"ja-space-between-half-and-full-width": {
"space": ["alphabets", "numbers"]
},
"ja-nakaguro-or-halfwidth-space-between-katakana": true,
"ja-no-space-around-parentheses": true,
"ja-no-space-between-full-width": true,
"ja-space-around-code": {
"before": true,
"after": true
}
},
"no-start-duplicated-conjunction": true,
"no-surrogate-pair": true,
"no-mixed-zenkaku-and-hankaku-alphabet": true,
"ja-hiragana-fukushi": true,
"ja-hiragana-hojodoushi": true,
"@textlint-ja/textlint-rule-no-insert-dropping-sa": true,
"prefer-tari-tari": true,
"@textlint-ja/no-synonyms": true,
"ja-no-orthographic-variants": true,
"use-si-units": true,
"no-hoso-kinshi-yogo": true,
"ja-no-inappropriate-words": true,
"prh": {
"rulePaths": [
"WEB+DB_PRESS+JCA.yml"
]
}
}
参照している主な設定等
GitHub Actions を用いた Pull Request 自動検査
実行例
textlint 出力結果を reviewdoc に渡すことで、bot によるレビュー指摘ができます。
GitHub Actions の一部抜粋と出力例を示します。
run: |
npx textlint ./doc/**/*.adoc -f checkstyle -o ./.textlint_result.xml
if [ -e ./.textlint_result.xml ]; then
# report by reviewdog
cat ./.textlint_result.xml | reviewdog -f=checkstyle -name="textlint" -reporter=github-pr-review -level="warning"
fi
Discussion