diff options
Diffstat (limited to 'src/content/docs/textlint-guide.mdx')
| -rw-r--r-- | src/content/docs/textlint-guide.mdx | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/content/docs/textlint-guide.mdx b/src/content/docs/textlint-guide.mdx new file mode 100644 index 0000000..de90a1a --- /dev/null +++ b/src/content/docs/textlint-guide.mdx @@ -0,0 +1,119 @@ +--- +title: textlintではじめる日本語文章校正 +description: Zedエディタ上で日本語の文章をリアルタイム校正する方法。textlintの導入からルール設定、自動修正までを解説します。 +--- + +import { Steps, Aside } from '@astrojs/starlight/components'; + +## textlint とは + +[textlint](https://textlint.github.io/) は日本語の自然言語テキスト向けのプラグイン可能な文章校正ツールです。ESLint のように、校正ルールを個別に追加・設定できるのが特長です。 + +## できること + +- 誤字・脱字の検出 +- 表記ゆれの指摘(「例えば」→「たとえば」) +- ら抜き言葉・い抜き言葉の検出 +- 冗長な表現の指摘 +- 一文の長さチェック +- です・ます調とである調の混在チェック + +## セットアップ + +<Steps> +1. Node.js 18 以上をインストール +2. `textlint` とルールをプロジェクトにインストール + +```bash +npm install --save-dev textlint @textlint/markdown +npm install --save-dev @textlint-ja/no-synonyms ja-no-abusage ja-no-redundant-expression prh +``` + +3. `.textlintrc.json` を作成 + +```json +{ + "plugins": { + "@textlint/markdown": true + }, + "rules": { + "@textlint-ja/no-synonyms": true, + "ja-no-abusage": true, + "ja-no-redundant-expression": true, + "prh": { + "rulePaths": ["prh.yml"] + } + } +} +``` + +4. `prh.yml` に独自ルールを定義(必要な場合) + +```yaml +version: 1 +rules: + - expected: たとえば + pattern: 例えば + prh: 漢字で書かず、ひらがなで書くと読みやすくなります +``` + +</Steps> + +## エディタ連携 + +### Zed + +本サイトでは、Zed 用のカスタム LSP サーバー `textlint-lsp` を開発しています。 +保存時に自動でlintが走り、波線で問題箇所を表示します。 + +<Aside type="note"> +現在 `textlint-lsp` は開発中のため、npm では未公開です。 +公開準備が整い次第、`npm install -g textlint-lsp` で導入可能になる予定です。 +</Aside> + +### VSCode + +[textlint.vscode-textlint](https://marketplace.visualstudio.com/items?itemName=taichi.vscode-textlint) 拡張機能が利用できます。 + +### CLI + +```bash +npx textlint "**/*.md" +``` + +## コードアクション(自動修正) + +Zed 上では、波線の上で `Ctrl+.` を押すと以下の操作が可能です。 + +| アクション | 内容 | +|---|---| +| 修正を適用 | textlint の自動修正候補を適用 | +| 無効化:(ルール名) | 指定したルールをその行だけ無効化 | +| 無効化: すべてのルール | その行以降の全ルールを無効化 | + +## 無効化コメント + +`.md` ファイルでは、HTMLコメント形式で記述します: + +- 特定のルールだけ無効化: `<!-- textlint-disable prh -->` +- 再有効化: `<!-- textlint-enable prh -->` + +`.mdx` ファイル(Starlight / Astro)では、JSXコメントで囲みます: + +- 特定のルールだけ無効化: `{/* <!-- textlint-disable prh --> */}` +- 再有効化: `{/* <!-- textlint-enable prh --> */}` + +## トラブルシューティング + +### MDX ファイルで `<!-- -->` がエラーになる + +MDX は `<!-- -->` を許可しません。代わりに `{/* <!-- ... --> */}` で囲んでください。 + +### 誤検出が多い + +該当ルールを `.textlintrc.json` で `false` に設定するか、`prh.yml` で除外パターンを追加してください。 + +### lint が重い + +`textlint-lsp` は保存時と、編集を止めてから 10 秒後に自動実行されます。 +それでも重い場合は、`didChange` 時の lint を無効にすることも可能です。 |
