<aside> πŸ‘‰

Links (Block base class)

Page

AudioBlock

Block

CalloutBlock

DividerBlock

Heading1Block

ImageBlock

ParagraphBlock

TableOfContentsBlock

ToggleHeading2Block

Database

BookmarkBlock

CodeBlock

EmbedBlock

Heading2Block

LinkPreviewBlock

PdfBlock

ToDoBlock

ToggleHeading3Block

DataSource πŸ†•

BreadcrumbBlock

ColumnBlock

EquationBlock

Heading3Block

LinkToPageBlock

QuoteBlock

ToggleBlock

ToggleHeading4Block

List

BulletedListItemBlock

ColumnListBlock

FileBlock

Heading4Block

NumberedListItemBlock

SyncedBlock

ToggleHeading1Block

VideoBlock

Notion Ruby Mapping Public API Reference

</aside>

1. Class methods

self.new(text_info, emoji: nil, file_url: nil, sub_blocks: nil, color: β€œdefault”) β†’ CalloutBlock

self.new creates a CalloutBlock object using text_info. Specify exactly one of emoji or file_url; a Callout icon is required by the Notion API. sub_blocks and color are optional. The method raises ArgumentError when neither icon argument is specified or when both are specified.

b = CalloutBlock.new "ABC", emoji: "βœ…"
b.block_json
# => {"type"=>"callout", "callout"=>{"rich_text"=>[...], "color"=>"default", "icon"=>{"type"=>"emoji", "emoji"=>"βœ…"}}}

b = CalloutBlock.new "ABC", file_url: "<https://example.com/icon.png>", color: "green"
b.block_json
# => {"type"=>"callout", "callout"=>{"rich_text"=>[...], "color"=>"green", "icon"=>{"type"=>"external", "external"=>{"url"=>"<https://example.com/icon.png>"}}}}

CalloutBlock.new "ABC"
# => raises ArgumentError: Specify either emoji or file_url.

CalloutBlock.new "ABC", emoji: "βœ…", file_url: "<https://example.com/icon.png>"
# => raises ArgumentError: Specify either emoji or file_url, not both.

β€£

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\"}}]}'"

color β†’ String

color returns the color string for CalloutBlock.

b = CalloutBlock.new "ABC", emoji: "βœ…"; b.block_json; b.color
# => "default"

color=(new_color)

color= updates the color parameter for CalloutBlock and sets update_block_key of the payload object.

emoji β†’ String, nil

emoji returns the emoji string for CalloutBlock.