SublimeText + textlint + リアルタイムプレビュー で軽量快適マークダウン環境を作る

ツール

軽量エディタで有名な SublimeText3。サクサク書ける Markdown。いい感じで文章の問題を指摘してくれる textlint。これらを組み合わせたら最強じゃん!と思って環境作ってみたら思いの外つまづきました…

ちなみに、Windows環境で行っていますが、おそらく他の環境でも似たような感じになるかと思います。

SublimeText3

SublimeText3 に、PackageControl を入れ、SublimeLinter を入れておきます。ここは説明割愛…。

Markdownリアルタイムプレビュー

OmniMarkupPreviewer を入れてみたのですが…プレビューできない…。と思って、調べてみたら、次のサイトが出てきて、このとおりやればうまく動きました。

OmniMarkupPreviewerでプレビューできない場合の対処法 - Qiita
症状 OmniMarkupPreviewerでプレビューするとブラウザに下記のようなエラーが表示される場合の対処法です。Windows10へsublime text3をインストールし、OmniMarkupPreviewerをイン...

textlint + SublimeLinter-contrib-textlint

ここまで来たら、もうゴール近いかな?と思ってたら、ここからが辛かった…。

まずは textlint を入れていきます。まずは単品でパスが通って動くところまで持っていきます。次のサイトあたりが参考になりました。

textlintで日本語の文章をチェックする
textlint

じゃあ後は、「SublimeLinter-contrib-textlint」をインストールして…

…動かない…。

ここでいろいろ調べてみました。パスが通ってないんじゃないか、バージョンがあってないんじゃないか、等など…。

結論…プラグイン提供側の問題で正しいプラグインがインストールできていませんでした。

GitHub - joeybaker/SublimeLinter-textlint: This linter plugin for SublimeLinter provides an interface to ESLint
This linter plugin for SublimeLinter provides an interface to ESLint - GitHub - joeybaker/SublimeLinter-textlint: This linter plugin for SublimeLinter provides ...

こちらから、「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 がインストールされていたのです…。

https://packagecontrol.io/channel_v3.json
https://raw.githubusercontent.com/SublimeLinter/package_control_channel/master/contrib.json

このあたりが、SublimeLinter-contrib-textlint のインストール時に参照される定義ファイルですが、確かに、1.9.4 の存在が確認できます…。なんてこったい。

直接的な解決策は、GitHubからmasterのデータをとってきて、プラグインディレクトリに上書き…ですが、本当はちゃんと、皆がPackageControl でインストールできるように改善したいところ。

ですが、もう数年単位で更新されていませんし、改善は難しいかもしれませんね…。
MIT Licenseなので、こちらでコードメンテナンスして、別プラグインとして上げてもいいのですが、それだと色々混乱の元…。

コメント

タイトルとURLをコピーしました