@Konboi memo

主に技術に関してつらつらと。

goma っていうmarkdown preview tool を書いてみた

はじめに

golangの練習がてらにmarkdownをブラウザでプレビューするやつを作ってみました。

Konboi/goma

使い方は

goma --path path/for/README.md

してブラウザで localhost:5858 にアクセスすれば大丈夫なはずです。

作る前の目標として対象の markdown ファイルを編集したら自動でにリロードするってのを目標にしました。

作ってみた

とりあえずファイル名をコマンドラインから受け取るってところまでは問題なくいけました。

受け取ったファイルをmarkdownに変換するところで嵌ったんですが、今思い返すとなんで嵌ったのか思い出せないので、ほんとしょうもないところで、嵌ってたんだと思います。

あとはファイルの更新イベントの取得は fsnotify というpackageを使いました。

Example等を見ながら使ってみましたが、大きく嵌るところはなかったです。 が変更のイベントを受け取る部分のコードの書き方がこれでいいのかイマイチ不安ですね。

ブラウザのリロード部分はやはりwebsocketを使いました。 使いましたと言っても、変更時にupdateという文字列を送るだけなので使ったうちに入らないですねw

そんな感じで編集したら自動的にリロードされるようになったので、とりあえずは満足です。

まとめ

  • 個人的には色々なpackageを使ったのでいい練習になりました。
  • go的な書き方ができているのかは、微妙…
  • build-web-application-with-golang という中国語のgolangの本の訳が上がっていて非常に参考になりました。

基礎からわかる Go言語

基礎からわかる Go言語

はじめての「Go言語」 (I・O BOOKS)

はじめての「Go言語」 (I・O BOOKS)