GitHubfloating-memo.app名前の通り最前面に表示されてる事を前提にした簡易なメモアプリです。node-webkitで最前面なアプリが書けることに気づいたので簡単に作りました。今のところMacのみのサポートとしています(DayOneに依存してるので)、別の所に保存する実装等があれば他のプラットフォームでも動かせるようになると思います。以下から、ダウンロードすることが出来ます。https://github.com/azu/floating-memo/releases/latest仕組みnode-webkitfloating-memo.appはnode-webkitで書かれています。node-webkitはnode-webkitとは何かでも書いていましたが、ブラウザのcontextとnode.jsのcontextの2つを持っています。このアプリでは、表示やエディタ部分はブラウザのcontextで、DayOneに保存するところだけnode.jsのcontextで動いています。pointで切り分けました。Wikiに書いてありますが、node-webkitアプリのpackage.jsonではmainの他にnode-mainというプロパティを指定することが出来ます。node-mainのやり取りは通信やメッセージングを使いますが(むしろそうした方がいい気がする)、node-webkitの場合はこのcontextの境界が薄いので、普通にglobal.windowに関数を貼ったりすれば相互に呼び出し出来てしまいます!今回は面倒だった小さいアプリなので、node-mainからglobal.window.dayoneという関数を生やして、それをブラウザcontextから呼び出す事でDayOneに保存できるようにしました。node-webkitはホビー用途だとかなり気軽で楽しいのでオススメです。stableに近いバージョンで動いて遊べるので、最近はMV*ライブラリなどを試したりする遊び場になってます。top)を使うだけです。drag"というスタイルを使ってアプリのドラッグ移動の対応など、簡単なビューアアプリを作る場合に適した機能が既に入っています。(コマンドライン関係ならnode.jsから直接プロセスを読んだりすれば大体できます)ウィンドウの透過はまだないようです。0.10からMacのネイティブメニューは自動では作られなくなりました。これで何が困るかというと、MacだとCmd+QやCmd+a等のショートカットはメニューに定義されているため、どのアプリも共通にあるショートカットが効かなくなってしまう点です。そのため、以下のようにMenu.createMacBuiltin(appname)を使って明示的にデフォルトのメニューを追加する必要があります。mb;}CodeMirrorメインのエディタとなる部分にはCodeMirrorを使っています。Modを当てる)、豊富なAPIやプラグイン(Addon)が用意されているので、結構手軽に使えます。Markdownエディタとしてはそこらのネイティブアプリより素で出来がいいと思います。markdown対応のエディタが用意出来ます。"gfm"});注意点としては以下のような感じでした。Scratchでも書いてますが、幾つかAddonを使っています。普通に必要になるレベルのAPIは大体揃ってるので、いじるのもそこまで難しい(選択範囲とか考えると面倒ですが)という感じじゃないので触ってみると面白いと思います。自分的にはFoldingTextがCodeMirrorを使ったアプリとしてよくできてると思います。Mac用のMarkdownアプリなのですが、内部でCodeMirrorを使っていて、CodeMirrorと同じ手法で拡張を書けるようになっていて面白いと思います。Mercury最近node-webkitアプリを書く時、何かしらのMV*やデータバインディングライブラリと言われるものを試しているのですが、floating-memo.appではRaynos/mercuryを使いました。以下のような特徴を持ってます。プレビューツールみたいな小物アプリを書くのに便利です。タグ:JavaScriptnode-webkitsoftwaremarkdownお知らせ欄JavaScriptに関する最新情報は週一でJSer.infoを更新しています。efcl/efcl.github.ioからご意見下さい関連記事コメントを。