*この広告は、90日以上更新していないブログに表示しています。DockerMarkdownには様々な方言があり、記法の解釈にも微妙に差があったりする。一つの言語で開発しているのであれば、同じライブラリを使えば問題にならないが、それぞれ別の言語で書いた複数のアプリケーションで全く同じレンダリング結果を得るのは難しい。記法はあるとないとでは大分使い勝手が変わるので出来れば使いたい。実際に困ることがあったので、どの言語で開発しても統一した記法が使えるよう、Markdownをレンダリングするサーバを書いた。https://qiita-markdown.herokuapp.com/書いたと言ってもPOSTされた内容をQiita::Markdownに投げて結果を返しているだけなので大したことはしていない。Qiita::Markdownがすごい。デフォルトでサニタイズもシンタックスハイライトもしてくれるし絵文字まで使える。APIを使ったことがある人は違和感なく使うことが出来ると思う。READMEに書いてある通り、提供しているAPIは/markdownと/markdown/rawだけ。使い方/markdownはtextフィールドにMarkdownテキストを入れたJSONをPOSTすれば変換された結果がtext/htmlで戻ってくる。APIはなぜか/markdown/rawの方しかContent-Typeをチェックしていなかったが、片方だけ何でもいいというのは気持ちが悪かったので、/markdownの方もチェックするようにしている。指定するか、上の例のようにリクエスト毎に指定することができる。この辺もQiita::Markdownが.newと#callの両方で受け取ってくれる仕様だったので簡単に実装できた。/markdown/rawの方はもっとシンプルで、変換したいテキストをtext/plainまたはtext/x-markdownでPOSTするだけ。disabled>task2</li></ul>Dockerで動かすコンテナ一つ手元に転がしておけば開発が捗るかなと思い、Docker化した。nkwhr/qiita-markdown-serverhighlight.jsなどシンタックスハイライトに対応したJS/CSSや、絵文字の画像データを一緒にパッケージできれば、コンテナを一台動かして、そこを参照するようにアプリケーションを書くことができて楽なのだが、調べた限りコンテナイメージ内に絵文字の画像データ含めるのは、ライセンス的にアウトなようなので諦めた。Buttonを使ってみたかったというのもあり、2クリックでHerokuへデプロイ出来るようにした。buildpack周りは以下のエントリを参考にさせて頂いた。qiita-markdownを含んだGemfileをHerokuにpushするには多分何も見ずにデプロイしていたらハマっていたと思う。ありがとうございます。いうアプリを使っている。読者になる検索はてなブログをはじめよう!nkwhrさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。