質問: *この投稿は MSE でアナウンスされた Feature Preview: Table Support の投稿を翻訳、抜粋したものです。より詳しい内容については元の投稿を参照してください。* --- いつから? * 2020-11-23 Meta StackExchange & DBA Meta (*訳注: リリース済み*) * 2020-12-07 の週 ネットワーク全体 (大きな問題が無ければ) --- そうです、いよいよ Markdown でテーブル構文をサポートする時が来ました。これは 長い間要望されていた機能 であり、ついにそれについてお知らせできることを嬉しく思います。本日 (*編注: 日本語版では12/07の週*) より、GitHub フレーバーの Markdown テーブル構文を使用して、投稿にテーブルを含めることができます。 これまで、Markdown にテーブル構文を導入することを躊躇してきました。一つの理由は、良い基準の欠如でした。Web にはさまざまな形式がありますが、明確に定義された標準は長い間ありませんでした。 CommonMark は、バージョン 0.29 でもテーブルを指定していません。 もう一つの大きな理由は、テーブルを引っ張るのが難しいということでした。うまく行かないと、不正なテーブルがページレイアウト全体を台無しにするリスクがあります。そして、私たちがまだ独自の Markdwon レンダラーを維持しているとき、たくさんの Markdown を適切なテーブルに変えることは常に恐ろしい仕事でした。 多くの時間が経過し、私たちの懸念を再評価する時が来ました。 CommonMark への切り替え は利益を生んでいます。新しく導入されたオープンソースの Markdown レンダラーはテーブル構文をサポートしており、このトリッキーなタスクを信じられないほどうまく処理するためにそれらを信頼できます。 The uncertainty around a well-specified table syntax hasn't completely gone away. Ideally, we'd use the official CommonMark syntax, if only there was one. However, we think that GitHub-flavored markdown offers a table syntax that's stable and usable enough to serve our purpose. 構文 -- どのようにテーブルを使用すればよいかは Markdown のヘルプ にも追記される予定ですが、概要を以下に示します。 もっとも単純なテーブルは以下の様になります: ``` | A header | Another header | | -------- | -------------- | | First | row | | Second | row | ``` ### 記述時のルール * 常にヘッダー行が必要です * セルはパイプ記号 (`|`) を使用して区切ります * 行頭と行末にパイプを含めることができますが、必須ではありません * ヘッダー行の後には、同じセル数を持つセパレータ行を含める必要があります (`|---|---|` の行) * セル内で空白文字や `-` 記号を使って幅を揃える必要はありません (しかし、それらを使えば Markdwon 上での見栄えは整うでしょう) * 区切り行の対応するセルに `:` 記号を含めることで、配置を設定できます。左側の `:` は列を左寄せにします (これがデフォルトです)。右側の `:` は右寄せに、両端に `:` を含めると中央寄せになります。 ``` | left | center | right | |:---- |:------:| -----:| | One | Two | Three | ``` ### 制限 Markdown のテーブルではいくつかの制限があります。HTML のテーブルで出来ることをすべてサポートしているわけではなく、これらは意図的なものです。各セルには **インラインコンテンツ** (テキスト、画像、リンク、インラインコード) のみを含めることができます。 セルの行や列を結合することはできません。 複数の段落、リスト、コードブロック、サブテーブル、その他の複雑なものを含むブロックコンテンツは機能しません。Markdown テーブルとインライン HTML を混在させようとしている場合は、意図しない動作を引き起こす可能性があります。 列の幅を手動で変更することはできません。ブラウザがテーブル内容に基づいて、特定の列に適した幅を決定します。 より詳細な情報が必要な場合は、GitHub フレーバー Markdown 仕様のテーブル に関するセクションを参照してください。 ### FAQ (*追記予定*)
回答: ヘッダー行の手前に空行がないと、プレビュー中はテーブルが表示されるものの、投稿された結果はテーブルが解除されるようです。 空行あり | A header | Another header | | --- | --- | | First | row | | Second | row | 空行なし | A header | Another header | | -------- | -------------- | | First | row | | Second | row |