Markdown を HTML に変換する JavaScript のライブラリを書きました。自分で使うために書いたのですが、せっかくなので公開します。嬉し恥ずかしってやつですね。
パーサーは GitHub とかが公開しているのでわざわざ作る必要もない気がしますが、読めない英語のドキュメントを読むとサーバーサイドが前提?っぽい。僕はクライアントサイドのが欲しいのです。
作ったものは下で公開しています。
難しかったところ
置換に毛が生えたようなものだと思っていましたが、そんなことはありませんでした。特にリストの処理は条件分岐でややこしいことをしないといけません。入れ子があるからです。他にも ``` で記述する pre の処理が特殊で難しかったです。
楽しかったところ
テーブル部分を作るのが一番テクニカルな気分で楽しかったです。本当はリストよりこれが一番難しいと思っていたのですが、そうでもなかったです。
見どころ
解決策を思い付いて目から鱗だったのが br の処理です。マトモにやると非常に厄介で、他の要素と組み合わせるとややこしすぎて僕には不可能かとも思ったのですが、ひらめきが解決してくれました。こんなの一番最初に <br> タグに置換して一行に収めてしまえばよかったのです。問題が消滅しました。
全体として
非同期処理を使ったのが初めてで、いい勉強になりました。未だよく分かっていないのですが。まぁちょっと使えるようになったかな、と。非同期処理をどう扱っていいのかピンときてないので、今後おいおい学んでいきたいですね。