<aside> 👉

Links (Block base class)

Page

AudioBlock

Block

CodeBlock

EmbedBlock

Heading2Block

LinkPreviewBlock

PdfBlock

TableOfContentsBlock

ToggleHeading1Block

VideoBlock

Database

BookmarkBlock

CalloutBlock

ColumnBlock

EquationBlock

Heading3Block

LinkToPageBlock

QuoteBlock

TableRowBlock

ToggleHeading2Block

DataSource 🆕

BreadcrumbBlock

ChildDatabaseBlock

ColumnListBlock

FileBlock

Heading4Block

NumberedListItemBlock

SyncedBlock

ToDoBlock

ToggleHeading3Block

List

BulletedListItemBlock

ChildPageBlock

DividerBlock

Heading1Block

ImageBlock

ParagraphBlock

TableBlock

ToggleBlock

ToggleHeading4Block

Notion Ruby Mapping Public API Reference

</aside>

1. Class methods

self.new(block_id: nil, sub_blocks: nil) → SyncedBlock

Creates either an original synced block or a copy.

# Create an empty original synced block.
empty_original = SyncedBlock.new

# Create an original synced block with children.
original = SyncedBlock.new(
  sub_blocks: [ParagraphBlock.new("Synchronized content")]
)

# Create a copy from the original synced block ID.
copy = SyncedBlock.new(
  block_id: "4815032e-6f24-43e4-bc8c-9bdc6299b090"
)

<aside> ⚠️

ArgumentError is raised when block_id is empty or when both block_id and sub_blocks are specified.

</aside>

2. Instance methods

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

$\fbox{implemented in Block}$

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, nil

Returns the normalized ID of the original synced block when this object is a copy. Returns nil when this object is an original. This is not the ID of the current block; use id for the current block ID.

original = SyncedBlock.new
original.block_id
# => nil

copy = SyncedBlock.new(
  block_id: "4815032e-6f24-43e4-bc8c-9bdc6299b090"
)
copy.block_id
# => "4815032e6f2443e4bc8c9bdc6299b090"

synced_block_original? → Boolean

Returns true when this object is an original synced block and false when it is a copy.

SyncedBlock.new.synced_block_original?
# => true

SyncedBlock.new(block_id: "4815032e-6f24-43e4-bc8c-9bdc6299b090").synced_block_original?
# => false

synced_block_original_id → String, nil