はじめに
NotionRubyMapping 解説の第16回目です。今日もほぼこれまでと同様の形式を持つ ToggleBlock を解説します。今日紹介する ToggleBlock も TextSubBlockColorBaseBlock
というクラスの子クラスです。今日の作業ページはこちらです。
あらかじめページを取得しておきます。
irb(main):002> page = Page.find "https://hkob.notion.site/ToggleBlock-16-1e25b2cf9a5148ddb720c3dcf9e89875?pvs=4" => NotionRubyMapping::Page-1e25b2cf9a5148ddb720c3dcf9e89875
ToggleBlock
ToggleBlock
は開閉できるトグルを持つテキストブロックです。 text_info
と color
が設定できるのは ParagraphBlock
と同様です。
irb(main):003> t_a = page.append_block_children ToggleBlock.new("A", color: "blue") => NotionRubyMapping::ToggleBlock-28b299e0926544c384bcd43c1eefdd29
実行した結果以下のようなトグルブロックが用意されました。
ToggleBlock
は子ブロックとして、下位のブロックを持つことができます。今作ったトグルの下に A-1 というトグルを追加してみます。
irb(main):004> t_a.append_block_children ToggleBlock.new("A-1") => NotionRubyMapping::ToggleBlock-53a93639f6414b2e87750c74c4bc7636
結果は以下のようになりました。BulletedListItemBlock
と同様に色を指定しないと親と同じ色になるのですね。
ToggleBlock
も作成時に sub_blocks
を指定できます。
irb(main):005> t_b = page.append_block_children ToggleBlock.new("B", sub_blocks: [ToggleBlock.new("B-1"), ToggleBlock.new("B-2")]) => NotionRubyMapping::ToggleBlock-233eadbf92bf47739ecefecfbf47e29a
結果は以下のようになりました。最初から階層的なトグルブロックが記述できました。
ParagraphBlock
と同様に color =
で色を変更できます。
irb(main):006> t_b.color = "green" => "green" irb(main):007> t_b.save => NotionRubyMapping::ToggleBlock-233eadbf92bf47739ecefecfbf47e29a
結果はこんな感じになりました。
トグルの記号は色が変わっていますが、テキストは色が変わっていませんでした。rich_text_array
で色を変更してみます。
irb(main):008> t_b.rich_text_array => #<NotionRubyMapping::RichTextArray:0x0000000126c153f0 @key="rich_text", @rich_text_objects= [#<NotionRubyMapping::TextObject:0x00000001279701f8 @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> t_b.rich_text_array.first.color = "green" => "green" irb(main):010> t_b.save => NotionRubyMapping::ToggleBlock-233eadbf92bf47739ecefecfbf47e29a
これでテキストも色が変わりました。
おわりに
今回は ToggleBlock
を解説してみました。TextSubBlockColorBaseBlock
の子クラスなので、これまで解説していたものと同じ機能があることがわかります。
ToggleBlock のマニュアルはこちら。