暇人じゃない

shitajiki という markdown + emoji code を html に変換する Web API を作っている

shitajiki とは何か

クライアントから POST されたデータ(markdown + GitHub などで使用される emoji code) を HTML として変換する Web API です。

Sinatra や Heroku の勉強も兼ねて開発しました。以下にデモを置いてあります。

shitajiki http://shitajiki.herokuapp.com/

以下のように叩いてみると HTML が返って来ると思います。

$ curl http://shitajiki.herokuapp.com -X POST -d "data=# shitajiki  \n寿司 :sushi:"

# <h1>shitajiki</h1>
#
# <p>寿司 <img src="http://shitajiki.herokuapp.com/emojis/sushi.png" width="20" height="20" title=":sushi:" alt=":sushi:" class="emoji" /></p>

ソースコードは GitHub で公開しています。

chocoby/shitajiki https://github.com/chocoby/shitajiki

なぜ作ったのか

Sapporo Rubykaigi 2012 の Ustream を見ていたら、@kentaro さんが「非Rubyな会社で仕事にRubyを持ち込むための5つの方法」というタイトルで LT されていて、その中の「社内 SNS で絵文字でいいね!する機能を追加した」というものがありました。

「非Rubyな会社で仕事にRubyを持ち込むための5つの方法」資料 #sprk2012 - delirious thoughts http://blog.kentarok.org/entry/2012/09/15/212341

社内SNSをハックするのが流行ってる話 - delirious thoughts http://blog.kentarok.org/entry/2012/07/12/211701

弊社にも SNS というか、日報を書くようなシステムがあるのですが、機能としてはシンプルで、画像を貼り付けたりや、文字の装飾を行うことはできません。 最近、仕事でも GitHub を使い始めたこともあって、Markdown や :+1: などの Emoji の便利さだとか、コミュニケーションの楽しさを実感しています。

日報システムをリニューアルしよう、という話もあるのですが、忙しさもあってなかなか手をつけられていません。とは言え、リニューアルしても過去のデータは移行する必要はあるし、(僕としては) Markdown や Emoji は使えるようにしたいな、と思っているので、今の時点からそういったフォーマットで書けるようになっていてもと良いのかな、と考えています。

そこで、まずはブラウザ上で Markdown や Emoji をレンダリングしてくれれば良いかな、と思い shitajiki を開発しました。

今後

現在確認している微妙な点としては、 * :+1: を +1.png と置換すると、ブラウザで画像が読み込めない。そこで、plus1.png という画像が用意されているので、こちらを使用する必要がある。僕は +1 を多用するのでこれは致命的!(単純に置換しようと思っています)。 * Emoji のクラスやサイズなどの指定ができない。これはリクエストを投げるときに指定できるようにしたいと思っています。

などがあります。結構荒削りです。 順次改善していきたいと思います。

あと、ソースコードのシンタックスハイライトができるようになればいいな…。

お気づきの方もいるかと思いますが、装飾を実現するためにもう一つ重要なものがあって、日報の内容をこの API に送って、返ってきたデータをレンダリングするような Chrome エクステンションを書かないといけません!!!1 全く書いていません!!!1