textlintを使ってMD,MDXを校正
1. はじめに
- textlint を活用し MD・MDX などのテキストファイルを校正する方法を紹介します。
- GitHub 連携された Zenn コンテンツを textlint で校正可能になります。
以下が構成です。
章 | 説明 |
---|---|
textlint とは | textlint の説明 |
校正ルール | textlint が提供するルール、ルールプリセットを紹介 |
ルールプリセットの選定 | ルールプリセットがどのようなものがあるかざっくり紹介 |
動作確認 | 実際にtextlintを利用し文章の校正を行います |
まとめ | 最後に一言 |
作業で利用したコードはこちらにあります。
2. textlintとは
textlintは、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです。
textlint を利用し校正するメリットは例として以下です。
- 誤字や脱字を自動で検出できる
- 適切な日本語を使えているかを自動で検出できる
- 検出だけでなく、自動で修正してくれる
また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正ができます。
3. 校正ルール
textlint はデフォルトの設定では、ルールを含んでいないため、使用するためには、使用用途に合わせて使用するルールを指定する必要があります。
3.1. 使用可能なルール
textlint で利用可能なルール一覧は 4 種類です。
- 「Global」は汎用的に利用可能なルール
- 「English」は英語の文章に特化したルール
- 「Japanese」は日本語の文章に特化したルール](https://github.com/textlint/textlint/wiki/Collection-of-textlint-rule#rules-japanese)
- 「Chinese」は中国語の文章に特化したルール
ルールを選んで textlint を使うこともできますが、より簡単に使うためにはプリセットを利用するのが良いです。ルールプリセット一覧はこちらを参照してください。
3.2. 使用可能なルールプリセット
ルールプリセットとは用途に応じてルールをまとめたものです。ルールをいちいち指定するのは面倒なため、基本的にはルールプリセットをベースとし、カスタマイズしていくのが良いです。
日本語に向けには以下があります(2023/07/09 現在)[1]。
-
textlint-rule-preset-ja-technical-writing
- 技術文書向けのルールプリセット
-
textlint-rule-preset-jtf-style
- JTF日本語標準スタイルガイド(翻訳用)のルールプリセット
-
textlint-rule-preset-ja-spacing
- 日本語周りにおけるスペースの有無を決定するルールプリセット
-
textlint-rule-preset-japanese
- 日本語向けのルールプリセット
-
textlint-rule-preset-ja-engineering-paper
- 日本語の工学系論文のためのルールプリセット
4. ルールプリセットの選定
Zenn のブログに利用することを想定しプリセットを選定していきます。ブログの言葉の使い回しとして、砕けた書き方はせず、厳し目にします。
4.1. textlint-rule-preset-ja-technical-writing
技術文書に特化したルールプリセット、preset-ja-technical-writing を利用します。
技術文書向けのtextlintルールプリセットです。 全体的に少し厳しめの設定がデフォルト値となっているため、文章に合わせて設定値を変更する必要があります。
また、連続できる最大の漢字長は6文字まで のように文章全体として例外が必ず出てくるルールもデフォルトで入っています。 ルールによってはallowオプションで例外を規定できるようになっているため、例外を明示しつつ利用することを想定しています。
ルールプリセットで適応されるルール一覧は以下です。
- 1文の長さは100文字以下とする
- カンマは1文中に3つまで
- 読点は1文中に3つまで
- 連続できる最大の漢字長は6文字まで
- 漢数字と算用数字を使い分けます
- 「ですます調」、「である調」を統一します
- 文末の句点記号として「。」を使います
- 二重否定は使用しない
- ら抜き言葉を使用しない
- 逆接の接続助詞「が」を連続して使用しない
- 同じ接続詞を連続して使用しない
- 同じ助詞を連続して使用しない
- UTF8-MAC 濁点を使用しない
- 不必要な制御文字を使用しない
- 不必要なゼロ幅スペースを使用しない
- 感嘆符!!、疑問符??を使用しない
- 半角カナを使用しない
- 弱い日本語表現の利用を使用しない
- 同一の単語を間違えて連続しているのをチェックする
- よくある日本語の誤用をチェックする
- 冗長な表現をチェックする
- 入力ミスで発生する不自然なアルファベットをチェックする
- 対になっていない括弧をチェックする
ルールプリセットは以下のように有効化します。
{
"rules": {
"preset-ja-technical-writing": true,
}
}
4.2. textlint-rule-preset-ja-spacing
続いて、スペース周りを処理させるために、textlint-rule-preset-ja-spacingを利用します。
ルールプリセットで適応されるルール一覧は以下です。
- textlint-rule-ja-space-between-half-and-full-width
- textlint-rule-ja-space-around-code
- textlint-rule-ja-no-space-between-full-width
- textlint-rule-ja-nakaguro-or-halfwidth-space-between-katakana
- textlint-rule-ja-no-space-around-parentheses
- textlint-rule-ja-space-after-exclamation
- textlint-rule-ja-space-after-question
それぞれ詳細に見ていきます。
textlint-rule-ja-space-between-half-and-full-width
このルールでは、半角文字と全角文字にスペースを入れるかどうかを指定できます。
OK: これは OK
NG: これはNG
以下のように有効化します。
{
"rules": {
"preset-ja-spacing": {
"ja-space-between-half-and-full-width": {
"space": "always"
}
}
}
}
textlint-rule-ja-space-around-code
インラインコードの前後が日本語である場合に半角スペースを入れます。
OK: `code` と日本語の間はスペースを空ける
NG: `code`と日本語の間はスペースを空けないのでダメ
以下のように有効化します。
{
"rules": {
"preset-ja-spacing": {
"ja-space-around-code": {
"before": true,
"after": true
}
}
}
}
textlint-rule-ja-no-space-between-full-width
全角文字どうしの間にスペースを入れません。
OK: これは大丈夫
NG: これは ダメ
以下のように有効化します。
{
"rules": {
"preset-ja-spacing": {
"ja-no-space-between-full-width": true
}
}
}
textlint-rule-ja-nakaguro-or-halfwidth-space-between-katakana
カタカナの単語と単語の間は中黒または半角スペースを用いて区切ります。
OK: アマゾン・ウェブ・サービス
OK: アマゾン ウェブ サービス
NG: アマゾン ウェブ サービス
以下のように有効化します。
{
"rules": {
"preset-ja-spacing": {
"ja-nakaguro-or-halfwidth-space-between-katakana": true
}
}
}
textlint-rule-ja-no-space-around-parentheses
「」の外側、内側ともにスペースを入れません。
OK: 「これは大丈夫」
NG: 「 これはダメ 」
以下のように有効化します。
{
"rules": {
"preset-ja-spacing": {
"ja-no-space-around-parentheses": true
}
}
}
textlint-rule-ja-space-after-exclamation
文末にエクスクラメーションマーク、俗にいうビックリマーク、!、を使用したときに、文章が続く場合は、直後に全角スペースを挿入します。
OK: びっくり! これは大丈夫。
NG: びっくり! これはダメ
「!」は技術文書で許容しないので不要とします。
textlint-rule-ja-space-after-question
文末にクエスチョンマーク、?、を使用し、別の文章が続く場合は全角スペースを挿入します。
OK: 驚きの速さ!? これが新製品のキャッチコピーでした?
OK: どう操作したらよいのか?というユーザーの疑問に答えます。
NG: 驚きの速さ!? これが新製品のキャッチコピーでした?
NG: どう操作したらよいのか? というユーザーの疑問に答えます。
「?」は技術文書で許容しないので不要とします。
4.3. textlint-filter-rule-comments
コメントアウトすることで対象範囲を textlint 対象外とできます。
<!-- textlint-disable -->
this is ok
<!-- textlint-enable -->
以下のように有効化します。
{
"filters": {
"comments": true
}
}
5. 動作確認
このセクションでは、実際に textlint を利用し文章を校正します。
5.1. 環境構築
実際に Zenn の GitHub 環境を作りながら動作確認をしていきます。
$ mkdir zenn-content-textlint-sample
$ cd zenn-content-textlint-sample
$ pnpm init
$ pnpm add zenn-cli
$ npx zenn init
以下が現時点の package.json
です。
{
"name": "zenn-content-textlint-sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"zenn-cli": "^0.1.144"
}
}
Git 環境を構築します。ついでにコミットしておきます。
$ git init
$ git checkout -b main
$ git add .
$ git commit -m "Zenn GitHub連携プロジェクト作成"
5.2. GitHub連携
自身の GitHub リポジトリを Zenn と連携する方法は以下の記事を参照ください。
5.3. textlintをインストール
$ pnpm add textlint -D
5.4. プリセットをインストール
ルールプリセットをインストールします。
- textlint-rule-preset-ja-technical-writing
- textlint-rule-preset-ja-spacing
- textlint-filter-rule-comments
$ pnpm add textlint-rule-preset-ja-technical-writing
$ pnpm add textlint-rule-preset-ja-spacing
$ pnpm add textlint-filter-rule-comments
5.5. 設定ファイルを作成
設定ファイルを JSON 形式で記述します。
$ touch .textlintrc
{
"rules": {
"preset-ja-technical-writing": true,
"preset-ja-spacing": {
"ja-nakaguro-or-halfwidth-space-between-katakana": true,
"ja-no-space-around-parentheses": true,
"ja-no-space-between-full-width": true,
"ja-space-between-half-and-full-width": {
"space": "always"
},
"ja-space-around-code": {
"before": true,
"after": true
}
}
},
"filters": {
"comments": true
}
}
コミットします。
コミット処理
$ git add .
$ git commit -m "linttextをインストール、ルールを設定"
5.6. スクリプトを作成
2 つのスクリプトと作成します。
スクリプト | 説明 |
---|---|
lint:text | 校正し、問題箇所をログとして出力 |
lint:text:fix | 校正し、可能な限り修正 |
{
"name": "zenn-content-textlint-sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "lint:text": "textlint \"./{articles,books}/*.md\" -f pretty-error",
+ "lint:text:fix": "textlint \"./{articles,books}/*.md\" --fix"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-preset-ja-spacing": "^2.3.0",
"textlint-rule-preset-ja-technical-writing": "^7.0.0",
"zenn-cli": "^0.1.144"
},
"devDependencies": {
"textlint": "^13.3.3"
}
}
コミットします。
コミット処理
$ git add .
$ git commit -m "スクリプトを作成、ルールを設定"
5.7. 記事を作成
Zenn CLI で記事を作成します。
$ npx zenn new:article
created: articles/d3ffb5c9d0c156.md
記事の中身を記載します。
---
title: "textlintを使ってMD,MDXの校正を自動化"
emoji: "🦔"
type: "tech" # tech: 技術記事 / idea: アイデア
topics: ["zenn", "textlint", "GitHub", "Markdown"]
published: false
---
# 1. はじめに
Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
# 2. textlintとは
[textlint](https://textlint.github.io/)は、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです!
textlintを利用し校正するメリットは例として以下です。
- 誤字や脱字を自動で検出できる
- 適切な日本語を使えているかを自動で検出できる
- 検出だけでなく、自動で修正してくれる
また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
準備はいいですか?
コミットします。
コミット処理
$ git add .
$ git commit -m "記事作成"
5.8. 校正し問題箇所をログ出力
校正し問題箇所をログ出力します。先程作成済みのコマンドを利用します。
$ pnpm lint:text
以下が実行結果です。
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:4
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:11
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:19
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:25
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:31
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:15:100
v
14.
15. [textlint](https://textlint.github.io/)は、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです!
16.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:17:8
v
16.
17. textlintを利用し校正するメリットは例として以下です。
18. - 誤字や脱字を自動で検出できる
^
ja-technical-writing/ja-no-redundant-expression: 【dict5】 "校正を行う"は冗長な表現です。"校正する"など簡潔な表現にすると文章が明瞭になります。
解説: https://github.com/textlint-ja/textlint-rule-ja-no-redundant-expression#dict5
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:35
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/ja-no-weak-phrase: 弱い表現: "思います" が使われています。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:47
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:51
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "?".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:24:9
v
23.
24. 準備はいいですか?
25.
^
✖ 11 problems (11 errors, 0 warnings)
✓ 6 fixable problems.
Try to run: $ textlint --fix [file]
それぞれの結果について確認します。
space に関連するエラーが 6 個出ています。いずれも全角文字と半角文字の間にスペースが入っていません。このエラーは自動で修正できます。自動修正については後ほど説明いたします。
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:4
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:11
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:19
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:25
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:11:31
v
10.
11. Zennのコンテンツをtextlintで校正しつつGitHubで管理する方法を記載します。
12.
^
✓ ja-spacing/ja-space-between-half-and-full-width: 原則として、全角文字と半角文字の間にスペースを入れます。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:17:8
v
16.
17. textlintを利用し校正するメリットは例として以下です。
18. - 誤字や脱字を自動で検出できる
^
厳し目のルールを使っているため、ビックリマーク、クエッションマークのエラーが3つあります。これは自動修正できないので正しい文章に書き換えが必要です。
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:15:100
v
14.
15. [textlint](https://textlint.github.io/)は、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです!
16.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:51
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "?".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:24:9
v
23.
24. 準備はいいですか?
25.
^
続けてですが、ついつい冗長な書き方を癖でしてしまい、ダメだよと怒られてしまいます。「校正を行う」ではなく、「校正する」などのほうが適切でしょう。
ja-technical-writing/ja-no-redundant-expression: 【dict5】 "校正を行う"は冗長な表現です。"校正する"など簡潔な表現にすると文章が明瞭になります。
解説: https://github.com/textlint-ja/textlint-rule-ja-no-redundant-expression#dict5
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:35
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
最後に、「思います」という言葉をよく使ってしまうのですが、こういった言葉も弱い表現として使うことが望ましくないと判断されてしまいます。なので「できると思います」ではなく、「できます」がよいでしょう。
ja-technical-writing/ja-no-weak-phrase: 弱い表現: "思います" が使われています。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:47
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
5.8. 可能な限り校正問題を自動修正
先程作成済みのコマンドを利用し可能な限り自動的に校正エラーを修正します。
$ pnpm lint:text:fix
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md
11:4 ✔ 原則として、全角文字と半角文字の間にスペースを入れます。 ja-spacing/ja-space-between-half-and-full-width
11:11 ✔ 原則として、全角文字と半角文字の間にスペースを入れます。 ja-spacing/ja-space-between-half-and-full-width
11:19 ✔ 原則として、全角文字と半角文字の間にスペースを入れます。 ja-spacing/ja-space-between-half-and-full-width
11:25 ✔ 原則として、全角文字と半角文字の間にスペースを入れます。 ja-spacing/ja-space-between-half-and-full-width
11:31 ✔ 原則として、全角文字と半角文字の間にスペースを入れます。 ja-spacing/ja-space-between-half-and-full-width
17:8 ✔ 原則として、全角文字と半角文字の間にスペースを入れます。 ja-spacing/ja-space-between-half-and-full-width
✔ Fixed 6 problems
✖ Remaining 1 problem
全角文字と半角文字の間にスペースが入っていないエラーを自動修正してくれました。
コミットします。
:::details
$ git add .
$ git commit -m "textlintで自動修正"
:::
5.9. 手動修正
それでは残りは手動で修正します。
あらためて、コマンドを実行します。
$ pnpm lint:text
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:15:100
v
14.
15. [textlint](https://textlint.github.io/)は、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです!
16.
^
ja-technical-writing/ja-no-redundant-expression: 【dict5】 "校正を行う"は冗長な表現です。"校正する"など簡潔な表現にすると文章が明瞭になります。
解説: https://github.com/textlint-ja/textlint-rule-ja-no-redundant-expression#dict5
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:35
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/ja-no-weak-phrase: 弱い表現: "思います" が使われています。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:47
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:51
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
ja-technical-writing/no-exclamation-question-mark: Disallow to use "?".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:24:9
v
23.
24. 準備はいいですか?
25.
^
✖ 5 problems (5 errors, 0 warnings)
!を使うのをやめます。
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:15:100
v
14.
15. [textlint](https://textlint.github.io/)は、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです!
16.
^
「校正を行う」は冗長なので、「校正する」にします。
ja-technical-writing/ja-no-redundant-expression: 【dict5】 "校正を行う"は冗長な表現です。"校正する"など簡潔な表現にすると文章が明瞭になります。
解説: https://github.com/textlint-ja/textlint-rule-ja-no-redundant-expression#dict5
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:35
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
「思います」は使わないように変えます。
ja-technical-writing/ja-no-weak-phrase: 弱い表現: "思います" が使われています。
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:47
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
!を使うのをやめます。
ja-technical-writing/no-exclamation-question-mark: Disallow to use "!".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:22:51
v
21.
22. また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正を行うことができると思います!
23.
^
?は使うのをやめます。
ja-technical-writing/no-exclamation-question-mark: Disallow to use "?".
/Users/hayato94087/Private/zenn-content-textlint-sample/articles/d3ffb5c9d0c156.md:24:9
v
23.
24. 準備はいいですか?
25.
^
修正後のテキストです。
---
title: "textlintを使ってMD,MDXの校正を自動化"
emoji: "🦔"
type: "tech" # tech: 技術記事 / idea: アイデア
topics: ["zenn", "textlint", "GitHub", "Markdown"]
published: false
---
# 1. はじめに
Zenn のコンテンツを textlint で校正しつつ GitHub で管理する方法を記載します。
# 2. textlintとは
[textlint](https://textlint.github.io/)は、テキスト(難しい言い方をすると自然言語)を校正するための、JavaScript で書かれたオープンソースのツールです。
textlint を利用し校正するメリットは例として以下です。
- 誤字や脱字を自動で検出できる
- 適切な日本語を使えているかを自動で検出できる
- 検出だけでなく、自動で修正してくれる
また、校正ルールを組み合わせたり、カスタマイズすることで、より高度な校正ができます。
それでは実際に textlint を使ってみましょう。
検証します。何も出ませんでした。これで問題ありません。
$ pnpm lint:text
コミットします。
:::details
$ git add .
$ git commit -m "手動修正完了"
:::
6. まとめ
- Zenn のコンテンツを textlint で校正しつつ GitHub で管理する方法を記載しました。
- 個人的には、textlint を利用することで記事の質を担保できるので、積極的に使っています。
7. 参考
Discussion