読者です 読者をやめる 読者になる 読者になる

ちぎっては投げるブログ

Programming, Android, RaspberryPi, Digital Devices, Kinkuma Hamster...

Windowsで日本語自動添削環境セットアップ

Programming Software shell TIL

textlinterを使うと、日本語文章の自動添削をしてくれるという話を聞いた。

Qiitaで技術系の記事を書く時に気をつけていること - Qiita

それじゃあその環境をブログ文章の添削用に作ってみよう、ということでWindows+Atomエディタで構築しようとしたら、どはまりしたあげく動かなかった。途中までのメモをとりあえず置いておく。やる気ができたら再調査する。 とりあえずエラーを回避しながら使えるようにはなった。

Atomのインストール

atom.io

上記からAtomをダウンロード&インストールできる。

私は以前からAtomは入れていたので、日本語化やもろもろPackageはすでにインストール済みである。

linter-textlintのインストール

ファイル=>環境設定=>Install

Searchのところに「linter-textlint」を入力、Insatllボタンを押下する

f:id:mczh:20161023171206p:plain

Node.jsのインストール

すでに作られているルールをインストールするには、Node.jsが必要とのことなので、

https://nodejs.org

からダウンロード&インストールする。 ここでは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が開く。

f:id:mczh:20161023180332p:plain

ルールのインストール

さて、ようやく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
  }
}

これでやっと、ルールを追加できた。

f:id:mczh:20161023193503p:plain

このように、ルール違反があると警告が出るようになった。

まだエラーが続く…

が、いざテキストを編集してると何やらエラーが出る。

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
  }
}