はじめに
NotionRubyMapping 解説の第20回目です。昨日に引き続き、FileBaseBlock
の子クラスを解説します。今日の作業ページはこちらです。
あらかじめページを取得しておきます。
irb(main):002> page = Page.find "https://hkob.notion.site/PdfBlock-VideoBlock-20-23532fa330944bd98ebfa1f8698c341f?pvs=4" => NotionRubyMapping::Page-23532fa330944bd98ebfa1f8698c341f
PdfBlock
PdfBlock
は PDF のリンクを保持し、プレビューを表示してくれるブロックです。Notion のアプリでは、ファイル自体をアップロードして Notion のサーバに置くことができますが、Notion API ではアップロード機能は提供されておらず、外部にあるリンクを保持するだけになります。
irb(main):003> pb = page.append_block_children PdfBlock.new("https://github.com/onocom/sample-files-for-demo-use/raw/151dd797d54d7e0ae0dc50e8e19d7965b387e202/sample-pdf.pdf") => NotionRubyMapping::PdfBlock-739444ae55e04643b0a195f4355a639c
実行した結果以下のような PDF が埋め込まれたブロックが用意されました。
VideoBlock
VideoBlock はビデオのリンクを保持し、プレビューを表示してくれるブロックです。
irb(main):004> vb = page.append_block_children VideoBlock.new("https://download.samplelib.com/mp4/sample-5s.mp4") => NotionRubyMapping::VideoBlock-cfd85e6b05e645dca3209750a894a56b
ビデオのプレビューが表示され、Notion の中で再生が可能になります。
なお、url で設定した URL が取得できます。url = で更新することもできます。また、caption で RichTextArray object が取得できます。こちらも編集は可能です。昨日は編集しなかったので、今回はつけていなかったキャプションを追加してみましょう。
irb(main):008> pb.caption << "Sample PDF" => #<NotionRubyMapping::TextObject:0x0000000123e3ad90 @options={"plain_text"=>"Sample PDF"}, @text="Sample PDF", @type="text", @will_update=false> irb(main):009> pb.save => NotionRubyMapping::PdfBlock-739444ae55e04643b0a195f4355a639c
以下のようにキャプションが追加されました。
同様に VideoBlock にもキャプションを追加してみました。
irb(main):010> vb.caption << "Sample Video" => #<NotionRubyMapping::TextObject:0x00000001245f88e8 @options={"plain_text"=>"Sample Video"}, @text="Sample Video", @type="text", @will_update=false> irb(main):011> vb.save => NotionRubyMapping::VideoBlock-cfd85e6b05e645dca3209750a894a56b
結果は以下のようになりました。
おわりに
今回は FileBaseBlock
の子クラスである PdfBlock
, VideoBlock
を解説してみました。次回は EmbedBlock
を紹介します。
PdfBlock や VideoBlock のマニュアルはこちら。