textlint に関する投稿を表示しています

textlint のルールを作ってみた

先日、textlint というめちゃ便利な text を lint するツールの追加ルールを作ってみた話。ちょっと前にやったんだけど記事にしかけたまま止まってたのでいい加減に書いた次第。

作ったルール

sters/textlint-rule-a3rt-proofreading: [Unofficial] textlint rule that using A3RT Proofreading API.
textlint-rule-a3rt-proofreading - npm

A3RT という機械学習 API サービスの文章校正を textlint から利用できるようにしたもの。
文章校正 API は万能なものではなく、特定ドメインに特化しているので、こういった文章にも上手く適合してくれないこともあるが、とりあえず textlint から呼べるようにしてみるか、というくらいの気持ちでやった。

textlint とは

textlint/textlint: The pluggable natural language linter for text and markdown.

text を lint するツール。いろんな人の作ったいろんなルールを組み合わせて、最強の文章を作っていけるようになるはず。

prh と web+db ルールを入れるとたのしい。

textlint-rule/textlint-rule-prh: textlint rule for prh.

rules/WEB+DB_PRESS.yml at master · prh/rules

A3RT

A3RT
ABOUT|A3RT

A3RT(アート)は「ANALYTICS & ARTIFICIAL INTELLIGENCE API VIA RECRUIT TECHNOLOGIES」の略称です。
...
当初はA3RTについても、リクルートグループ内に限って導入してきましたが、以下のような理由からこのたびグループ外への提供を決意しました。

ちなみにこれ超重要なんですけど、私自身はリクルート社とは関係ないです。
今回作った textlint ルールは勝手にやったものなので何か問題があれば削除するなり対応するので連絡ください。

textlint ルールの作り方

textlint の中にツールがあるのでそれを使うとスケルトンが出来上がります(すごい)

参考: textlintのルールを簡単に作り始めることができるツールを作りました | Web Scratch

基本セットを作れるやつ
textlint/create-textlint-rule: Create textlint rule project with no configuration.

ビルドしたりテストしたりを出来る便利な子
textlint/textlint-scripts: textlint npm-run-scripts CLI help to create textlint rule.

textlint-scripts が超便利で、基本的にはテストの云々を何も気にしないで、ルールのロジックに集中してテストを書けたり。npm へ上げるときに、何も気にせず babel してくれたりするので、とりあえず ES2015+ なコードを書くと動いてくれるのですごい楽。

あとはドキュメントを見たり、データ構造を見たり、他のルールを見たりして、実装する。実装にあたってはヘルパーライブラリがあるので、これも使っていくと AST をこねこねするような込み入ったルールも簡単に書けそう。

ルールの作り方(データ構造とか)
textlint/rule.md at master · textlint/textlint

ヘルパーライブラリ
textlint/textlint-rule-helper: This is helper library for creating textlint rule.

おわり

独自のルール作るのが思いのほか簡単だったので、何か思うところがあれば作ってみるとよいのではー!
特に正規表現ベースのルールとかは作るのがめちゃんこ楽なのでーーーーー!!!

ぼくのぼくによるぼくのためのマークダウンエディタを作ってるところだからちょっと待って

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

こんにちは、ごみばこです。

世の中にはさまざまなマークダウンエディタがあります。

そして、ふつうのエディタにも、プラグインとしてマークダウン機能を搭載することができるものも多々あります。

しかし、どれも自分のほしい機能が整っていないので、自分で作る事にしました。
地産地消!!(違)

ほしい機能としては、こんなところでしょうか……。

  • 画面が2分割されてエディタとプレビューが並べて見れる
    • いま編集している箇所までいい感じにスクロールしてくれる
  • azuさんのtextlint(http://textlint.github.io/)による文字列のlintをしたい
    • ルールを状況によって切り替えたり変更したりしたい
    • 怒られているポイントをハイライトしてほしい
  • "プロジェクト"で縛られず、自由にファイルを開け閉めしたい
    • ※atomはこれでNG
  • タブにしたい
  • 整形されたHTMLをコピーしたい
  • emojiも使いたい
  • 軽快に動いてくれる

イメージはkobitoがすごい近いです。あれにtextlintが乗った感じです。
http://kobito.qiita.com/win

というところで、Electronでさくさく作ってます。で、エディタっぽい動きまではできました☆
デザインも細かい機能もさっぱりや……、というわけで、これからブラッシュアップですね!><

ここまでできている

ちょっと時間がとれてなさ過ぎてアレなんですけど、もうちょっと出来上がってきたら、いろいろ出していきますかねー。

それではまたー