軽量エディタで有名な SublimeText3。サクサク書ける Markdown。いい感じで文章の問題を指摘してくれる textlint。これらを組み合わせたら最強じゃん!と思って環境作ってみたら思いの外つまづきました…
ちなみに、Windows環境で行っていますが、おそらく他の環境でも似たような感じになるかと思います。
SublimeText3
SublimeText3 に、PackageControl を入れ、SublimeLinter を入れておきます。ここは説明割愛…。
Markdownリアルタイムプレビュー
OmniMarkupPreviewer を入れてみたのですが…プレビューできない…。と思って、調べてみたら、次のサイトが出てきて、このとおりやればうまく動きました。

textlint + SublimeLinter-contrib-textlint
ここまで来たら、もうゴール近いかな?と思ってたら、ここからが辛かった…。
まずは textlint を入れていきます。まずは単品でパスが通って動くところまで持っていきます。次のサイトあたりが参考になりました。

じゃあ後は、「SublimeLinter-contrib-textlint」をインストールして…
…動かない…。
ここでいろいろ調べてみました。パスが通ってないんじゃないか、バージョンがあってないんじゃないか、等など…。
結論…プラグイン提供側の問題で正しいプラグインがインストールできていませんでした。
こちらから、「Clone or download」→「Download ZIP」でリポジトリの内容をzipで取得・展開し、SublimeTextのプラグインディレクトリ以下にある、SublimeText-contrib-textlint の中身と入れ替えてあげれば正しく動くようになります。
ちなみに、ちゃんと textlint へのパスさえ通っていれば、SublimeText 側で特別な設定をしなくても、「hogehoge.md」のように、拡張子でmdと判断できれば自動的に働くはずです。
補足:SublimeText-contrib-textlint よ、なぜ動かない…?
上記のGitHubのリポジトリをよく眺めると、ちょくちょく「ESLint」という言葉が出てきます。どうやら、SublimeLinter-eslint からforkしてプロジェクトを作ったようです。
リリースを見ると、最新は 1.9.4 ですが…その実装をみると、ESLintそのものなんですね…。forkすると、タグ情報などもそのまま引き継ぐので、fork時点のリリースタグがそのまま残ってる形になっています。forkして実装をtextlint向けに書き直してはいますが、リリータグを一度も付けていないので、このような状態になっています。
この辺で、勘の良い方はお気づきかもしれませんが、PackageControl で SublimeLinter-contrib-textlint をインストールした際は、このリリースタグが使われているようで、なんと、中身は SublimeLinter-eslint の 1.9.4 がインストールされていたのです…。
このあたりが、SublimeLinter-contrib-textlint のインストール時に参照される定義ファイルですが、確かに、1.9.4 の存在が確認できます…。なんてこったい。
直接的な解決策は、GitHubからmasterのデータをとってきて、プラグインディレクトリに上書き…ですが、本当はちゃんと、皆がPackageControl でインストールできるように改善したいところ。
ですが、もう数年単位で更新されていませんし、改善は難しいかもしれませんね…。
MIT Licenseなので、こちらでコードメンテナンスして、別プラグインとして上げてもいいのですが、それだと色々混乱の元…。
コメント