QuoteBlock: NotionRubyMapping 解説 (15)

はじめに

NotionRubyMapping 解説の第15回目です。今日もほぼこれまでと同様の形式を持つ QuoteBlock を解説します。今日紹介する QuoteBlock も TextSubBlockColorBaseBlock というクラスの子クラスです。今日の作業ページはこちらです。

hkob.notion.site

あらかじめページを取得しておきます。

irb(main):002> page = Page.find "https://hkob.notion.site/QuoteBlock-15-1917a19d0f2942f39e10bc39236ec533?pvs=4"
=> NotionRubyMapping::Page-1917a19d0f2942f39e10bc39236ec533

QuoteBlock

QuoteBlock はチェックボックスを持つテキストブロックです。 text_infocolor が設定できるのは ParagraphBlock と同様です。

irb(main):003> q_a = page.append_block_children QuoteBlock.new("A", color: "pink
")
=> NotionRubyMapping::QuoteBlock-beb6084b39b44f2fa0f2acebd4273941

実行した結果以下のような引用が用意されました。

A

QuoteBlock は子ブロックとして、下位のブロックを持つことができます。今作った引用の下に A-1 という 引用を追加してみます。

irb(main):004> q_a.append_block_children QuoteBlock.new("A-1")
=> NotionRubyMapping::QuoteBlock-75d47834c2b24b779e28b0c91cf747fa

結果は以下のようになりました。BulletedListItemBlock と同様に色を指定しないと親と同じ色になるのですね。

A-1

QuoteBlock も作成時に sub_blocks を指定できます。

irb(main):005> td_b = page.append_block_children ToDoBlock.new("B", sub_blocks: [ToDoBlock.new("B-1"), ToDoBlock.new("B-2", true)])
=> NotionRubyMapping::ToDoBlock-6ecef9d7d79f4e11a0bb206087842bf3

結果は以下のようになりました。最初から階層的な引用が記述できました。

B

ParagraphBlock と同様に color = で色を変更できます。

irb(main):007> q_b.color = "yellow"
=> "yellow"
irb(main):008> q_b.save
=> NotionRubyMapping::QuoteBlock-54375b1759214ba79b182f16e3b2efda

結果はこんな感じになりました。

BC1

引用の枠は色が変わっていますが、テキストは色が変わっていませんでした。rich_text_array で色を変更してみます。

irb(main):009> q_b.rich_text_array
=>
#<NotionRubyMapping::RichTextArray:0x0000000122f14e38
 @key="rich_text",
 @rich_text_objects=
  [#<NotionRubyMapping::TextObject:0x000000012345c350
    @options=
     {"plain_text"=>"B",
      "bold"=>false,
      "italic"=>false,
      "strikethrough"=>false,
      "underline"=>false,
      "code"=>false,
      "color"=>"default",
      "href"=>nil},
    @text="B",
    @type="text",
    @will_update=false>],
 @will_update=true>
irb(main):010> q_b.rich_text_array.first.color = "yellow"
=> "yellow"
irb(main):011> q_b.save
=> NotionRubyMapping::QuoteBlock-54375b1759214ba79b182f16e3b2efda

これでテキストも色が変わりました。

BC2

おわりに

今回は QuoteBlock を解説してみました。TextSubBlockColorBaseBlock の子クラスなので、これまで解説していたものと同じ機能があることがわかります。

QuoteBlock のマニュアルはこちら。

hkob.notion.site

NotionRubyMapping解説