markdown拡張の方向性メモ
Livedoorブログからの移動
以前markdownの自作拡張を入れたわけだけど, 色々と問題があることに気づいた.
問題点はいくつもあるけど, メインの問題点は, わざわざhtmlに変換するのが面倒くさいし場所を取ることだと気づいた.Warpを用いて自動化するにせよ, 結局firefoxに画面の1/3から半分を取られてしまう. それならmarkdownのままでもそれなりに見れるしそれでいいやってなる.
で, これをどうにかするための手法を考えると, 多分最適解はemacs上でのpopwinの使用だという結論に至った. 要するに, htmlに変換して, ブラウザでプレビューするという方針を捨てて, emacs上でmarkdownをそのまま構造化されたテキストとして読み, テキストじゃわかりづらいこと(画像, dot, tex, etc)を, プレビューコマンドでbuffer作ってやってそこで見ればいい. あるいは現代的にはtooltipとかだろうか.
で, そのために必要なプログラムをまとめる.
- code syntax highlightをemacsのバッファ上に適用する. おそらくだけど, emacsのmarkdown-modeの拡張で, github_markdown用のがあるんじゃないか? それを使えば解決できそうに思う.
- 画像, dot, table, texをmarkdown上から抽出する. これはpandocをAPIから叩ければそのSyntax Treeを引っ張ってきて解決できる. これはelispで書くのは辛いからscalaかな
- それぞれを画像表現に変換する.
で, 3は一番メインのコーディングになりそう.
まず, 画像については, emacsはpng等の画像を読めるからelispゴリゴリでできるはず.
次に, dotについては, dotでsvgに変換して, そっからは画像と同じ.
tableはpandocを使って, htmlになおして, それをさらにpngかsvgに変換する必要がある. 面倒.
最後, texは一番面倒で, MathJaxはブラウザがないと動かない. 要するに, 裏で画像生成することが難しい. でもpandocでpdfにすると, (tex経由か?)で画像が作れるので, 果てしなく面倒だけど, pdf, svgの順を経ないといけない.
要するに, markdownの断片から画像を生成するプログラムを作るのが当面の目的.