BulletedListItemBlock: NotionRubyMapping 解説 (12)

はじめに

NotionRubyMapping 解説の第12回目です。今日は箇条書きブロックである BulletedListItemBlock を解説します。今日の作業ページはこちらです。

hkob.notion.site

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

irb(main):002> page = Page.find "https://hkob.notion.site/BulletedListItemBlock-12-5f5cf721828a4cf1a8e94003d3c6bd3
4?pvs=4"
=> NotionRubyMapping::Page-5f5cf721828a4cf1a8e94003d3c6bd34

BulletedListItemBlock

BulletedListItemBlock は箇条書きを保持するブロックです。 text_info と color が設定できるのは ParagraphBlock と同様です。

irb(main):004> bli_a = page.append_block_children BulletedListItemBlock.new("A", color: "green")
=> NotionRubyMapping::BulletedListItemBlock-e3cbf7dba0bf47bcaf86b18e0e4d344d

実行した結果以下のような箇条書きが用意されました。

A

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

irb(main):007> bli_a.append_block_children BulletedListItemBlock.new("A-1")
=> NotionRubyMapping::BulletedListItemBlock-86f7edbb21bf4e03a2c10ac6e9f17ca3

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

A-1

BulletedListItemBlock は作成時に sub_blocks を指定できます。

irb(main):012> bli_b = page.append_block_children BulletedListItemBlock.new("B", sub_blocks: [BulletedListItemBlock.new("B-1"), BulletedListItemBlock.new("B-2")])
=> NotionRubyMapping::BulletedListItemBlock-1a764d8f321148359285fe8c1c407e4c

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

B

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

irb(main):014> bli_b.color = "orange"
=> "orange"
irb(main):015> bli_b.save
=> NotionRubyMapping::BulletedListItemBlock-1a764d8f321148359285fe8c1c407e4c

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

bc1

箇条書きのマークは色が変わっていますが、テキストは色が変わっていませんでした。rich_text_array で色を変更してみます。

irb(main):016> bli_b.rich_text_array
=>
#<NotionRubyMapping::RichTextArray:0x0000000121efff70
 @key="rich_text",
 @rich_text_objects=
  [#<NotionRubyMapping::TextObject:0x00000001218be850
    @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):017> bli_b.rich_text_array.first.color = "orange"
=> "orange"
irb(main):018> bli_b.save
=> NotionRubyMapping::BulletedListItemBlock-1a764d8f321148359285fe8c1c407e4c

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

bc2

おわりに

今回は BulletListItemBlock を追加してみました。利用できる機能は ParagraphBlock と同じです。似たようなブロックも今後出てきますが、同じように確認していきたいと思います。

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

hkob.notion.site

NotionRubyMapping解説