htmlのテーブルからmarkdownを作る

以前の記事でmarkdownからSQLのcreate table文を作る方法を載せました

naosim.hatenablog.jp

これを真面目に作ってチームで使おうと思ったら
メンバーがDB仕様書をコンフル上で作っちゃったので
そこからmarkdownに変換する必要が出てきましたw

てことでやってみたのでメモ

テキストのhtmlからdomを生成する

今回のキモ

var dom = new DOMParser().parseFromString('<div>テキスト<br>テキスト</div>', 'text/html')

これでパースできる
parseFromStringにtableタグを突っ込んでdomを生成し、クルクル回しながらmarkdownのテーブルに変換したら完成
ちなみに第2引数は'text/xml'でもイイけど、それだとinnerTextが使えなかったりしてhtmlと微妙に違うので注意が必要

コード全体

dom以外のポイントとしてはcellのテキストを取るところ
テキストはinnerTextで取得してhtmlタグを削除してる
ただし改行は欲しかったのでbrタグだけ後付けで追加してる

var cell2Text = (cell) => cell.innerText.split('\n').join('<br>').trim()

あとメソッド名をxx2xxって感じでtoを2にするのは私の趣味ではないです
メインのメソッドをtable2mdにしちゃったので、全体統一的な意味でこうなった...
読みにくいのでやめましょうw

まとめ

簡単ですな
xx2xxはやめよう