Electron製のマークダウンビュワーアプリ Markn v0.1.1 をリリース。リアルタイムプレビューのCPUコストが低めなのが特徴。とりあえずビュワーとして最低限ぽい機能を実装したのでマイナーバージョンを上げてリリースした。
作ったきっかけ
@minodisk Atom最低のマークダウンビュワーだった pic.twitter.com/qitOXRi0X8
— 炭水化物 (@minodisk) 2015, 7月 1
この四日間に何があったのか?
5000行オーバーのマークダウンを編集しようとしたらフリーズした。Atomのマークダウンプレビューはファイルに変更がある度にマークダウンをHTMLにコンパイルし全要素を再レンダリングするのでそのコストが半端無く、CPU使用率が激増した模様。1
目指してるところ
- 大きなマークダウンを編集しながらプレビューできる
- 大きなマークダウンを縦断するための検索機能がある2
技術的な話
- atom/electron: はじめ Chrome extension を書いていたがファイルシステムがないのでローカルファイルの監視がすごくつらいことになった。Node+Chromium が手軽にユーザー環境にダウンロードできる現代すごい。
- facebook/react: リアルタイムな更新性の高いHTMLをレンダリングするのに最適な答えと思う。
- facebook/flux: やってみてる。冗長という感じは自分はあまりしない。イベントリスンとメソッドコールがこんがらがりがちなアプリケーションのコードが超絶に整頓されるのでやって良かったという感想しかない。
- mizchi/md2react: Kobito for Windows で使われているマークダウンをReactエレメントに変換してくれるやつ。これがなかったらアプリを作ろうとは思わなかった。
- babel/babel: ES6とES7のasync/awaitで書いてみている。非同期処理を見通しよく書けて楽しい。CoffeeScriptからJavaScriptに戻ってきたのだけど、ArrowFunctionとかあるのでそんなに書き味も悪くないという感想。3
まとめ
- react+md2react 最高だった。
- minodisk/markn へのプルリクお待ちしております。