2015-07-23

Stackedit を Cloud Foundry で動かす

本日の第35回「Cloud Foundry百日行」は Stackedit です。

最近、Markdown 記述でドキュメントを作成する機会が増えてきていますね。第32日目でも紹介しているのですが、今回は別のソフトウェアを試してみます。

ある製品のドキュメント作成プロジェクトに短期間参加した時にも、ドキュメントは Markdownで書くから宜しくね!と言われて、とうとう製品開発にも利用するようになったかと思うほど普及してきているのを実感しました。普段は、Orion Editor を使って書くのですが、Stackedit も簡単に使えるのでよいと思っています。

基本情報

 

デプロイ

1. ソースコードの入手

GitHub からソースコードを入手し、該当ディレクトリに移動します。

$ git clone https://github.com/benweet/stackedit.git
$ cd stackedit

2.Cloud Foundry 上で動かすための準備

ドキュメントをみると、Node.js のパッケージの取得、UI パッケージ (bower) の取得、および実行コマンドの起動という手順になっていました。Node.js パッケージの取得は Cloud Foundry のビルドパックが実行するので、UI パッケージだけダウンロードしておきます。

$ bower install 

ポートは PORT 環境変数を読み取ってくれるので、Cloud Foundry で動かすためにありがちなPORT設定は必要なさそうです。それでは Cloud Foundry にデプロイしてみます。今回は Bluemix を利用しました。

3.Cloud Foundry にデプロイ

Cloud Foundry へのデプロイも簡単です。

$ cf push stackedit -n amntstackedit -c "node server.js" -m 256M
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: amntstackedit.mybluemix.net
last uploaded: Fri Jul 17 02:51:53 UTC 2015
stack: lucid64

state     since                    cpu    memory           disk           details
#0   running   2015-07-17 11:53:48 AM   0.0%   184.3M of 256M   281.7M of 1G

正常に起動しました。

動作確認

デプロイしたアプリケーションにアクセスするとかっこいい画面が出てきます。同時にアプリケーションの使い方ガイドも含まれています。親切設計ですね!


一番上に “Start writing Now!” ボタンがあるので、それをクリックします。するとテンプレートが展開されるようです。すべて削除し、簡単なドキュメントを作成してみます。



Stackedit は MathJax を取り入れているので、LaTex で数式をかけます。簡単なシーケンス図もかけるようです。




このアプリケーションはWEBブラウザのローカルストレージを利用しているようなので、オフラインでも動作するのが特徴です。ためしに、ネットワークを切っても作業ができました。

また、Google Drive / Dropbox 連携などができるようです。キーを取得すればできそうですが執筆時点では動作検証ができませんでした。

おまけ

おそらく皆さんも経験があると思いますが、クラウド事業者が提供するブログを編集していると思ったとおりのレイアウトにならない場合が多いです。そこで HTML ファイルを直接いじることになるのですが、下手をするとレイアウトが破壊されてしまうことがあります。悪いことに、編集モードに戻って、再度 HTML ファイルを見てみると余計なコードが入っていたります。フォントが小さくなったり、文書の部分に <code> タグが入ってしまったりします。

この百日行に参加中に、どのように記事を書いているか?という質問をしたところ、Markdown で記述して、html に変換しているという回答を得ました。残念ながら、普段使っている Orion Editor では .html ファイルへの export 機能がないので、export 機能を探っていたところ Stackedit ができそうだとたどり着きました。使ってみると便利そうなので、Orion / Stackedit の両者を有効活用して開発生産性があがるのではないかと期待しています。ちなみにこの記事も Stackedit で書いてみました。

今回使用した環境