textlinterを使うと、日本語文章の自動添削をしてくれるという話を聞いた。
Qiitaで技術系の記事を書く時に気をつけていること - Qiita
それじゃあその環境をブログ文章の添削用に作ってみよう、ということでWindows+Atomエディタで構築しようとしたら、どはまりしたあげく動かなかった。途中までのメモをとりあえず置いておく。やる気ができたら再調査する。
とりあえずエラーを回避しながら使えるようにはなった。
Atomのインストール
上記からAtomをダウンロード&インストールできる。
私は以前からAtomは入れていたので、日本語化やもろもろPackageはすでにインストール済みである。
linter-textlintのインストール
ファイル=>環境設定=>Install
Searchのところに「linter-textlint」を入力、Insatllボタンを押下する
Node.jsのインストール
すでに作られているルールをインストールするには、Node.jsが必要とのことなので、
からダウンロード&インストールする。 ここではv4.6.1LTSを入れた。
Atom上でPowerShellを操作できるようにする
さらに、PowerSehllも必要になる。Windows10だと標準で入っていた。
Atom上で処理を完結させたい、と思ったので、AtomでPowerShellが開けるようになるterminal-plusも入れる。 これを使うには、
npm i -g node-gyp
が必要とのことなので、PowerShellから実行してインストールしておく。 が、Atom上のターミナルが黒画面のままで動かない。
ググったが原因はわからず、platformio-ide-terminalを入れてみたら動くので、platformio-ide-terminalにした。 インストールすると、画面下に+ボタンが増えている。押下すると、PowerShellが開く。
ルールのインストール
さて、ようやくnpmでルールを入れようと以下でinstallする。
npm i -g textlint-rule-max-ten textlint-rule-no-mix-dearu-desumasu
次に、linter-textlintの設定からPathを設定するが、 何度やってもエラーになる。
WindowsだからPathの設定が’\’になってるのが良くないのかと思い、
- ’\’にしてみる
- ’/’にしてみる*
- ダブルクオテーションで囲ってみる
など色々試したが解決せず、あきらめてグローバル設定ではなく、プロジェクト単位の設定にすることにした。
cd [your workspare path] npm i textlint-rule-max-ten textlint-rule-no-mix-dearu-desumasu notepad .textlintrc
開いたメモ帳に
{ "rules": { "max-ten": { "max": 4 }, "no-mix-dearu-desumasu": true } }
これでやっと、ルールを追加できた。
このように、ルール違反があると警告が出るようになった。
まだエラーが続く…
が、いざテキストを編集してると何やらエラーが出る。
Error: Column start (27) greater than line length (11) Error: Column start (27) greater than line length (11) at rangeFromLineNumber (C:\Users\hoge\.atom\packages\linter-textlint\node_modules\atom-linter\lib\index.js:179:11) at C:/Users/hoge/.atom/packages/linter-textlint/lib/index.js:116:20 以下略
ここでもう力尽きた。なので、残念ながらこの文章は添削されていない。
素直にLinuxでやるべきなのかもしれない。 だが、我が家で常時起動しているLinuxマシンはRaspberryPiしかいないので、わざわざエディタのためだけにVMを立ち上げるのは微妙すぎる……。 VPSは、はてなに移行したときに契約やめてしまったし、どうしようか。
追記
GitHubにIssueが立っていた。
linterの「Lint As You Type」オプションを利用しているとエラーが出る · Issue #27 · 1000ch/linter-textlint · GitHub
これと似たような問題の気がする。 たしかに、警告に触れないように気を付けていると出ていない。とりあえずはこの運用でしのごうと思う。
ルール追加
npm i textlint-rule-preset-japanese textlint-rule-preset-jtf-style
"preset-japanese": true, "preset-jtf-style": true
preset-japaneseはエラーで使えなかった。preset-jtf-styleは大丈夫だった。
結局、ルールはこの状態になった。まだいろいろあるので追加したい。
{ "rules": { "max-ten": { "max": 4 }, "no-mix-dearu-desumasu": true, "preset-jtf-style": true } }