EmDashの本文はPortable Text|HTMLとの違いと中身の見方
EmDashは本文をHTMLではなくPortable Textで保存します。実際のデータを見ながら、段落・見出し・箇条書き・コードがどう入っているかを説明します。
EmDash の記事の本文は、HTML ではなく Portable Text という形式で保存されます。WordPress から来た人がまず戸惑うところです。編集部が雛形の中身を見て分かったことをまとめます。
Portable Text は「部品の並び」
HTML は文字の間に <p> や <h2> の印を入れていく形式です。Portable Text は、本文を「部品」に分けて順に並べたデータです。たとえば見出し1つと段落1つは、次のようになります。
[
{
"_type": "block",
"style": "h2",
"children": [{ "_type": "span", "text": "はじめに" }]
},
{
"_type": "block",
"style": "normal",
"children": [{ "_type": "span", "text": "本文の段落です。" }]
}
]よく使う部品
- 段落 …
_typeがblock、styleがnormal - 見出し …
styleがh2・h3など - 引用 …
styleがblockquote - 箇条書き …
blockにlistItem: "bullet"(番号付きは"number") - コード …
_typeがcode。中身はcodeに、言語はlanguageに入る - 太字・コード・リンク … 文字の部品(span)に
marksを付ける。リンクの行き先はmarkDefsに書く
EmDash の画面側の部品(emdash/ui)には、コード・画像・表・埋め込み・ギャラリーなどを表示する部品が最初から入っていました。
HTML でなくて何がよいか
- 見た目と中身が分かれているので、デザインを変えても本文を直さなくてよい
- プログラムやAIが本文を組み立てやすい(部品を並べるだけ)
- 同じ本文をWeb以外(アプリ・メールなど)にも使い回しやすい
WordPress の本文はどうなるか
WordPress の本文は HTML なので、移すときは Portable Text へ変換します。EmDash の部品には、WordPress のブロックエディタの本文を Portable Text に変える部品(@emdash-cms/gutenberg-to-portable-text)が入っていました。
表を使うときの注意
Portable Text には表の部品もありますが、列が多いとスマホで横にはみ出しやすくなります。このサイトでは表を使わず、箇条書きで書いています。