はじめに
pythonでmarkdownのテキストを処理してるときに、テーブルに関してidやclassをつけたかったので、やりかたを調べてみた
結論からいうと、直接はできないっぽい
たとえば、以下の様な表があって、{#tableid}をどこかにつけたい場合、NG例の場所につけた場合、tableとして認識してくれない。
| aaa | bbb | ccc |
|-----|-----|-----|
| ddd | eee | fff |
| ggg | hhh | iii |
NG例1
| aaa | bbb | ccc |
|-----|-----|-----|
| ddd | eee | fff |
| ggg | hhh | iii |
{#tableid}
NG例2
{#tableid}
| aaa | bbb | ccc |
|-----|-----|-----|
| ddd | eee | fff |
| ggg | hhh | iii |
NG例3
| aaa | bbb | ccc |{#tableid}
|-----|-----|-----|
| ddd | eee | fff |
| ggg | hhh | iii |
では、divでくくって、そのdivにidつけた場合はどうなるだろうか? 実はこれもだめ。インライン要素になるため、そのまま挿入されてしまう。
NG例4
< div id="tableid" >
| aaa | bbb | ccc |
|-----|-----|-----|
| ddd | eee | fff |
| ggg | hhh | iii |
< / div >
で、一応以下の様にして、cssの隣接セレクタすればいいんでね?って記事を読んだけど、空のdiv要素を作るのはちょっと・・・
< div id="tableid" > < / div >
| aaa | bbb | ccc |
|-----|-----|-----|
| ddd | eee | fff |
| ggg | hhh | iii |
問題の解決にはなってないけど、直接tableを書くことにした。
コンバートしたhtmlのtableにくっつける事も考えたけど、markdown形式で書いてるテキストの中にhtmlのtableで書いてもpythonで処理できるので、それなら直接tableタグで書くことにした。もし、他人からmarkdown形式で渡されて困ってるなら、typola等でhtmlに直せばいいし、こっちのが気が楽かなと。