NumberedListItemBlock: NotionRubyMapping 解説 (13)

はじめに

NotionRubyMapping 解説の第13回目です。昨日の箇条書きブロックとほぼ同じ番号付き箇条書きブロックである NumberedListItemBlock を解説します。中身はほとんど同じなので省略してもいいのですが、このページだけ見ても内容が完結するように同じ内容を記述します。今日はプレス発表の待機もあり、帰宅時間が遅かったというのも理由の一つです。今日の作業ページはこちらです。

hkob.notion.site

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

irb(main):002> page = Page.find "https://hkob.notion.site/NumberedListItemBlock-
13-117cd1ac08244aca9b749a8b49f0735d?pvs=4"
=> NotionRubyMapping::Page-117cd1ac08244aca9b749a8b49f0735d

NumberedListItemBlock

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

irb(main):003> nli_a = page.append_block_children NumberedListItemBlock.new("A", color: "blue")
=> NotionRubyMapping::NumberedListItemBlock-5b51c795163545febfb924be4b5df83d

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

A

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

irb(main):004> nli_a.append_block_children NumberedListItemBlock.new("A-1")
=> NotionRubyMapping::NumberedListItemBlock-56d95fb827204c02ba79b2dea50f6769

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

A-1

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

irb(main):005> nli_b = page.append_block_children NumberedListItemBlock.new("B", sub_blocks: [NumberedListItemBlock.new("B-1"), NumberedListItemBlock.new("B-2")])
=> NotionRubyMapping::NumberedListItemBlock-104d37ff16c24888b5e3042ad26116fd

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

B

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

irb(main):006> nli_b.color = "red"
=> "red"
irb(main):007> nli_b.save
=> NotionRubyMapping::NumberedListItemBlock-104d37ff16c24888b5e3042ad26116fd

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

BC1

番号付き箇条書きの数字は色が変わっていますが、テキストは色が変わっていませんでした。rich_text_array で色を変更してみます。

irb(main):008> nli_b.rich_text_array
=>
#<NotionRubyMapping::RichTextArray:0x000000012951ac78
 @key="rich_text",
 @rich_text_objects=
  [#<NotionRubyMapping::TextObject:0x000000012a138578
    @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):009> nli_b.rich_text_array.first.color = "red"
=> "red"
irb(main):010> nli_b.save
=> NotionRubyMapping::NumberedListItemBlock-104d37ff16c24888b5e3042ad26116fd

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

BC2

おわりに

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

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

NumberedListItemBlock

NotionRubyMapping解説