🧱

SyncedBlock

1. Singleton methods

self.new(block_id: nil, sub_block: nil, color: “default”) →
🧱
SyncedBlock

  • [PARAM(optional)] block_id reference synced block’s id
  • [PARAM(optional)] sub_blocks children blocks (Array of Blocks). In append block children API , there is a limit for nesting children as follows. So, children blocks can not have any children.
    • For blocks that allow children, we allow up to two levels of nesting in a single request.
  • This block can have children blocks when it is an original synced block.
self.new creates a SyncedBlock object using a sub_blocks of block_id are optional parameters.
b = QuoteBlock.new "quote text" b.block_json # => {"type"=>"quote", "object"=>"block", "quote"=>{"rich_text"=>[{"type"=>"text", "text"=>{"content"=>"quote text", "link"=>nil}, "plain_text"=>"quote text", "href"=>nil}], "color"=>"default"}}

2. Instance methods

append_block_children(*blocks, dry_run: false) → Array<Block>, String

  • [PARAM] blocks array of blocks
  • [PARAM(optional)] dry_run: true if you want to create a verification script
append_block_children method of an existing block appends some block objects. Some blocks allow child blocks to be set up at the same time. However, due to API limitations, grandchild blocks cannot be created at once. There are many types of blocks, so check the page(
🧪
Append block children sample
) to see how to create blocks.
parent_block = Block.find "065babbba0854c188e964feb56291be2" parent_block.append_block_children CodeBlock.new("% ls -l", caption: "List files") # => # #<NotionRubyMapping::Block:0x0000000104e7d150
append_block_children(blocks, dry_run: true) creates a shell script using Append block children API for verification.
parent_block.append_block_children CodeBlock.new("% ls -l", caption: "List files"), dry_run: true # => "#!/bin/sh\ncurl -X PATCH 'https://api.notion.com/v1/blocks/065babbba0854c188e964feb56291be2/children' \\\n -H 'Notion-Version: 2022-02-22' \\\n -H 'Authorization: Bearer '\"$NOTION_API_KEY\"'' \\\n -H 'Content-Type: application/json' \\\n --data '{\"children\":[{\"type\":\"code\",\"object\":\"block\",\"code\":{\"rich_text\":[{\"type\":\"text\",\"text\":{\"content\":\"% ls -l\",\"link\":null},\"plain_text\":\"% ls -l\",\"href\":null}],\"caption\":[{\"type\":\"text\",\"text\":{\"content\":\"List files\",\"link\":null},\"plain_text\":\"List files\",\"href\":null}],\"language\":\"shell\"}}]}'"

block_id → String

block_id returns the color string for SyncedBlock.
b = SyncedBlock.new block_id: "block_id" b.block_id # => "block_id"