はじめに
NotionRubyMapping 解説の第19回目です。TextSubBlockColorBaseBlock
の子クラスがだいたい終わったので、今度は FileBaseBlock の子クラスを解説します。ほとんど機能がないので、全部一括で紹介してもいいのですが、長くなりそうなので二つずつ紹介する形にします。今日の作業ページはこちらです。
あらかじめページを取得しておきます。
irb(main):002> page = Page.find "https://hkob.notion.site/FileBlock-ImageBlock-19-0195c24a4acf4e83bcfa6eb7e1fdaf84?pvs=4" => NotionRubyMapping::Page-0195c24a4acf4e83bcfa6eb7e1fdaf84
FileBlock
FileBlock
はファイルのリンクを保持するブロックです。Notion のアプリでは、ファイル自体をアップロードして Notion のサーバに置くことができますが、Notion API ではアップロード機能は提供されておらず、外部にあるリンクを保持するだけになります。
irb(main):003> fb = page.append_block_children FileBlock.new("https://img.icons8.com/ios-filled/250/000000/mac-os.png", caption: "macOS icon") => NotionRubyMapping::FileBlock-53ac00c111dd4ab2be697251e726b0e0
実行した結果以下のようなファイルリンクが用意されました。
ImageBlock
同じ URL を ImageBlock で設定すると画像が表示できるブロックになります。
irb(main):004> ib = page.append_block_children ImageBlock.new("https://img.icons8.com/ios-filled/250/000000/mac-os.png", caption: "macOS icon") => NotionRubyMapping::ImageBlock-c39f74d093aa403186eb35e8ab1020a6
なお、url で設定した URL が取得できます。url = で更新することもできます。また、caption で RichTextArray object が取得できます。こちらも編集は可能です。
irb(main):014> ib.url => "https://img.icons8.com/ios-filled/250/000000/mac-os.png" irb(main):015> ib.caption => #<NotionRubyMapping::RichTextArray:0x0000000160058118 @key="caption", @rich_text_objects= [#<NotionRubyMapping::TextObject:0x0000000160238578 @options= {"plain_text"=>"macOS icon", "bold"=>false, "italic"=>false, "strikethrough"=>false, "underline"=>false, "code"=>false, "color"=>"default", "href"=>nil}, @text="macOS icon", @type="text", @will_update=false>], @will_update=false>
おわりに
今回は FileBaseBlock の子クラスである FileBlock
, ImageBlock
を解説してみました。次回は PDFBlock, VideoBlock などを紹介します。
FileBlock や ImageBlock のマニュアルはこちら。