テキスト校正¶
このリポジトリーでは、textlintの設定と依存関係を単一の基点に集約し、VS Code・CLI・CIの3経路で同一ルールの校正を実現している。
アーキテクチャーの要点¶
- ルールの単一ソース化(
.textlintrc.json) - 除外対象の一元管理(
.textlintignore) - 依存関係の固定(
package.jsonとpnpm-lock.yaml) - 実行経路の分離とルール共通化
共通ルールの中核¶
textlint本体と各種ルールセットはpackage.jsonに集約し、実行時は.textlintrc.jsonを必ず読み込む設計である。これにより、エディター内とCLI/CIでの差分を作らない。
ルール定義: .textlintrc.json
除外設定: .textlintignore
依存固定: package.json + pnpm-lock.yaml
利用シーン別の実行経路¶
1. VS Codeのリアルタイム校正¶
VS Code拡張は.vscode/settings.jsonで.textlintrc.jsonを明示参照している。入力時(onType)にtextlintが走り、ルールはローカルのnode_modulesと設定ファイルから解決される。
- 設定参照の明示(
textlint.configPath: ".textlintrc.json") - 実行タイミングの統一(
textlint.run: "onType") - 自動修正の無効化(
textlint.autoFixOnSave: false)
2. CLIによるローカル全文書の校正¶
pnpm run lint:textがtextlintを起動し、"**/*.md"を対象に校正する。CLIも.textlintrc.jsonと.textlintignoreを同じく参照するため、VS Codeと同一ルールで検出される。自動修正を適用する場合はpnpm run lint:text:fixを使う。
pnpm run lint:text # 校正のみ
pnpm run lint:text:fix # 自動修正を適用
3. CI(GitHub Actions)による校正¶
.github/workflows/textlint.ymlがPR/Push時にtextlintを実行する。pnpm install --frozen-lockfileで依存を固定し、pnpm run lint:textでローカルと同一コマンドを実行するため、CIでも同じルールが保証される。
pnpm install --frozen-lockfile
pnpm run lint:text
同一ルールを維持する設計¶
3つの経路はいずれも.textlintrc.jsonを参照し、依存はpnpm-lock.yamlで固定される。変更点を一か所に集約することで、エディター・CLI・CIの結果が一致する構成になっている。