「textlintを導入しよう! / 日本語の文章校正ツール」に関しての考えをまとめました。
目次
nodeのインストール
作業ディレクトリでtextlintをインストール
「作業ディレクトリ」にパッケージ管理のソフトを使ってインストールする
package.jsonの作成
$ npm init -y
Wrote to C:\Users\User\Documents\***\package.json:
"name": "***",
"version": "1.0.0",
"description": "",
"main": "content.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}, \" && exit 1"
"keywords": [],
"author": "",
"license": "ISC"
}
textlintのインストール
$ npm install -D textlint
added 186 packages, and audited 187 packages in 23s
57 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 9.6.7 -> 9.8.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.8.1
npm notice Run npm install -g npm@9.8.1 to update!
npm notice
package.jsonに追記されている
また、node_modulesディレクトリ内にtextlintのファイル群がインストールされている
"devDependencies": {
"textlint": "^13.3.3"
}
texlintのルールをインストールする
参考:
https://github.com/textlint/textlint/wiki/Collection-of-textlint-rule#rule-list
ここで使いたいルールを見つけてインストールするとよさそう
$ npm install -D \
textlint-rule-preset-ja-spacing \
textlint-rule-preset-ja-technical-writing \
インストールしたルールを適応する
$ npx textlint --init
.textlintrc.json is created.
.textlint.jsonが作成されてルールセットが表示されている
{
"plugins": {},
"filters": {},
"rules": {
"preset-ja-spacing": true,
"preset-ja-technical-writing": true
}
}
textlintを実行する
index.mdに次の文章を作ってみる
たべれるりんごをめしあがった
これをnpx textlint
コマンドで実行
$ npx textlint index.md
C:\Users\User\Documents\***\index.md
1:3 error ら抜き言葉を使用しています。 ja-technical-writing/no-dropping-the-ra
1:14 error 文末が"。"で終わっていません。 ja-technical-writing/ja-no-mixed-period
✖ 2 problems (2 errors, 0 warnings)
vscodeの拡張機能でリアルタイムにlintを行う
vscode-lint
という拡張がある。これを使うことでリアルタイムで検出可能
「これを使うことでリアルタイムで検出可能」という文章を読ませると、以下の警告文が出た。なるほど、これは便利だ・・・!
[{
"resource": "/c:/Users/User/Documents/***/index.md",
"owner": "textlint",
"code": "ja-technical-writing/no-doubled-joshi",
"severity": 8,
"message": "一文に二回以上利用されている助詞 \"で\" がみつかりました。\n\n次の助詞が連続しているため、文を読みにくくしています。\n\n- \"で\"\n- \"で\"\n\n同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。\n (ja-technical-writing/no-doubled-joshi)",
"source": "textlint",
"startLineNumber": 119,
"startColumn": 37,
"endLineNumber": 119,
"endColumn": 38
}]
テキストリントについて
phpcsのlintを使った経験から、役割が明確になる。
phpcsなどのlintは特定のルールに沿って文字列をチェックする
ルール規約などのpacakgeは、それらのルールをまとめた集合体
vscodeの拡張はphpcsのパスをファイルを保存のタイミングで実行する
参考文献
ブログの運用テクニックは参考になりそう
https://engineers.ntt.com/entry/2023/08/28/092249
https://zenn.dev/overflow_offers/articles/20220512-awesome-texlint-correction
https://zenn.dev/yamane_yuta/articles/65886897cefa1e
https://ics.media/entry/220404/
https://fwywd.com/tech/textlint-proofreading
github actionと連携できるらしいので、覚えておく!
🚀 備考
https://zenn.dev/karaage0703/books/80b6999d429abc8051bb/viewer/8bfd96
テキスト校正くんでおっけーみたい https://ics.media/entry/18859/
技術紙やドキュメントを作るならこっち https://qiita.com/reona396/items/40b234108f7664267db8
プレゼン資料はMarp