Markdownの表でセルのバックグラウンドにカラーを


はじめに

Markdownの表でセルのバックグランドにカラーをつけるやりかたです。
VSCodeのプレビューやPDF出力に反映できます。
忘れないうちに記事にしておきます。
※2020/11/06 MarkDown Preview (v0.5.13)の動作が少し変更されたようで全体に見直しました。

前提

  • Windows 7 以上のOS
  • VSCode(Visual Studio Code)インストール済み
  • VSCode拡張機能 Markdown Preview Enhancedインストール済み (2020/11/16 v0.5.13)
  • VSCode拡張機能 Markdown PDFインストール済み

元ネタの表

Markdownの記述

1 white #ffffff
2 black #000000
3 red #ff0000
4 blue #0000ff
5 yellow #ffff00
6 gree #008000
7 orange #ffa500
8 pink #ffc0cb

[Markdown]

|№|色|値|
|:--:|:--:|:--:|
|1|white|#ffffff|
|2|black|#000000|
|3|red|#ff0000|
|4|blue|#0000ff|
|5|yellow|#ffff00|
|6|gree|#008000|
|7|orange|#ffa500|
|8|pink|#ffc0cb|

htmlの記述

Markdownの記述をhtmlで表現すると下記のようにります。

1 white #ffffff
2 white #000000
3 red #ff0000
4 blue #0000ff
5 yellow #ffff00
6 green #008000
7 orange #ffa500
8 pink #ffc0cb

[html]
<table>~</table>で表を定義します。
行は<tr>でセルは<td>で定義します。
<td>にbgcolorを定義すれば、colorを指定できます。

<table>
<tr><td><td><td><tr><td>1<td>white<td>#ffffff
<tr><td>2<td>white<td>#000000
<tr><td>3<td>red<td>#0000ff
<tr><td>4<td>blue<td>#ffff00
<tr><td>5<td>yellow<td>#ffff00
<tr><td>6<td>green<td>#ffff00
<tr><td>7<td>orange<td>#ffff00
<tr><td>8<td>pink<td>#ffff00
</table>

[修正後のhtml]

<table>
<tr><td><td><td><tr><td>1<td bgcolor=white>white<td>#ffffff
<tr><td>2<td bgcolor=black><font color=white>black<td>#000000
<tr><td>3<td bgcolor=red><font color=white>red<td>#ff0000
<tr><td>4<td bgcolor=blue><font color=white>blue<td>#0000ff
<tr><td>5<td bgcolor=yellow>yellow<td>#ffff00
<tr><td>6<td bgcolor=green><font color=white>green<td>#008000
<tr><td>7<td bgcolor=orange>orange<td>#ffa500
<tr><td>8<td bgcolor=pink>pink<td>#ffc0cb
</table>

これをそのまま、VSCodeのMarkdownの中に貼り付けると表のセルに色を付けることができます。
QittaのMarkdownプレビューではbgcolorが対応していないようなので、Markdown Preview Enhancedのプレビュー結果を貼り付けます。

これはhtmlの普通のやりかたです。

Markdownミックスhtml

Markdownとhtmlのミックスを試してみました。

|№|色|値|
|:-:|:-:|:-:|
|1<td bgcolor=white>white|#ffffff|
|2<td bgcolor=black><font color=white>black|#000000|
|3<td bgcolor=red><font color=white>red|#0000ff|
|4<td bgcolor=blue><font color=white>blue|#ffff00|
|5<td bgcolor=yellow>yellow|#ffff00|
|6<td bgcolor=green><font color=white>green|#ffff00|
|7<td bgcolor=orange>orange|#ffff00|
|8<td bgcolor=pink>pink|#ffff00|

[Markdown Preview Enhanced プレビュー]

右に一列ブランクが挿入されます。<td>タグ分が付加されます。
見栄えをすてれば、これでもバックグラウンドにカラーが付いてます。
右のブランク列がなくなりました。

PDFの出力結果

VSCode拡張機能 Markdown PDFの出力結果です。
上がMarkdownとhtmlミックスの結果、下がhtmlのみ記述結果です。
ほぼいけてませんか?

まとめ

Markdownの表のセルに色をどうやって付けるのか、自己研究してみました。
もっと簡単でグッドな方法がありそうです。
とりあえず、<td>タグにbgcolorでもいいんじゃない程度の話ですいません。
[2020/11/06追記]
・MarkDownの場合、</td>、</tr>、</font>はなくてもいけてる。
・htmlの場合、VScodeの構文チェックで<td bgcolor="white">などの色指定はダブルクォーテーションでカラーを閉じる、また</td>、</tr>、</font>も記述しないとエラーになる。