aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/content/docs/textlint-guide.mdx
diff options
context:
space:
mode:
authorYasutake Yohei <yohei@yasutakeyohei.com>2026-06-30 21:40:58 +0900
committerYasutake Yohei <yohei@yasutakeyohei.com>2026-06-30 21:40:58 +0900
commitdbacb81ed669a168e75543d960b7d3471f7a469b (patch)
treeb8aed2cc8c95ca6261e2fb36748f13c0c3ff82d5 /src/content/docs/textlint-guide.mdx
parent9843eb09ad01b14adfe09f24946af2b83f7c448b (diff)
Add textlint guide page with images and LLM sitemap
Diffstat (limited to 'src/content/docs/textlint-guide.mdx')
-rw-r--r--src/content/docs/textlint-guide.mdx119
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コメント形式で記述します:
+
+- 特定のルールだけ無効化: `&lt;!-- textlint-disable prh --&gt;`
+- 再有効化: `&lt;!-- textlint-enable prh --&gt;`
+
+`.mdx` ファイル(Starlight / Astro)では、JSXコメントで囲みます:
+
+- 特定のルールだけ無効化: `{/* &lt;!-- textlint-disable prh --&gt; */}`
+- 再有効化: `{/* &lt;!-- textlint-enable prh --&gt; */}`
+
+## トラブルシューティング
+
+### MDX ファイルで `&lt;!-- --&gt;` がエラーになる
+
+MDX は `&lt;!-- --&gt;` を許可しません。代わりに `{/* &lt;!-- ... --&gt; */}` で囲んでください。
+
+### 誤検出が多い
+
+該当ルールを `.textlintrc.json` で `false` に設定するか、`prh.yml` で除外パターンを追加してください。
+
+### lint が重い
+
+`textlint-lsp` は保存時と、編集を止めてから 10 秒後に自動実行されます。
+それでも重い場合は、`didChange` 時の lint を無効にすることも可能です。