Notion API がついに引用ブロックをサポートしました。
これが引用ブロックです。
これでブログに必要なブロックはすべてサポートされたんじゃないかなと思います。
このエントリでは、公式APIを使って引用ブロックを表示する方法を説明します。
APIで引用ブロックを取得するために、最初にライブラリのアップデートを行っておきましょう。
yarn を使っている場合は yarn add
でアップデートすることができます。
$ yarn add @notionhq/client
それではAPIクライアントを引用ブロックに対応していきます。
引用ブロックを QuoteBlock
、引用を Quote
と定義しておきます。
interface QuoteBlock extends Block {
Quote: Quote
}
interface Quote {
Text: RichText[]
}
インターフェイスを定義したら type: quote
のとき QuoteBlock
を返す処理を記述していきます。
case 'quote':
const quote: Quote = {
Text: item[item.type].text.map(item => {
const text: Text = {
Content: item.text.content,
Link: item.text.link,
}
const annotation: Annotation = {
Bold: item.annotations.bold,
Italic: item.annotations.italic,
Strikethrough: item.annotations.strikethrough,
Underline: item.annotations.underline,
Code: item.annotations.code,
Color: item.annotations.color,
}
const richText: RichText = {
Text: text,
Annotation: annotation,
PlainText: item.plain_text,
Href: item.href,
}
return richText
}),
}
block = {
Id: item.id,
Type: item.type,
HasChildren: item.has_children,
Quote: quote,
}
break
次に src/pages/blog/[slug].tsx
で block.Type
が quote
の場合の表示を追加していきます。
case 'quote':
toRender.push(
React.createElement(
components.blockquote,
{ key: block.Id },
block.Quote.Text.map(
richText => richText.Text.Content
).join('')
)
)
break
これで下記のように引用ブロックが表示できます。
引用ブロックです。
引用ブロックのスタイルを調整したい場合は src/styles/blog.module.css
の中にある .post blockquote
を変更しましょう。
以上です。
このエントリでは Notion Blog で引用ブロックに対応する方法を解説しました。
コメントを送る
コメントはブログオーナーのみ閲覧できます