htmlのテーブルからmarkdownを作る
以前の記事でmarkdownからSQLのcreate table文を作る方法を載せました
これを真面目に作ってチームで使おうと思ったら
メンバーが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はやめよう