Links (Block base class)
PageBookmarkBlockCodeBlockEmbedBlockHeading2BlockLinkToPageBlockQuoteBlockToDoBlockToggleHeading3Block
DatabaseBreadcrumbBlockColumnBlockEquationBlockHeading3BlockNumberedListItemBlockSyncedBlockToggleBlockVideoBlock
1. Singleton methods
self.new(text_info, emoji: nil, file_url: nil, sub_blocks: nil, color: “default”) → CalloutBlock
- [PARAM] text_info
- a String like as “text” (String)
- an Array of Strings (Array of Strings)
- a RichTextObject (RichTextObject)
- an Array of RichTextObjects (Array of RichTextObjects)
- a RichTextArray (RichTextArray)
The following objects are used for this argument.
- [PARAM(optional)] a_emoji icon’s emoji
- [PARAM(optional)] file_url icon’s file url
- [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.
- [PARAM(optional)] color color string. When a_color is not specified, use “default”
- This block can have children blocks.
self.new
creates a CalloutBlock
object using a text_info
. emoji
, file_url
, sub_blocks
and color
are optional parameters.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json # => {"type"=>"callout", "callout"=>{"rich_text"=>[{"type"=>"text", "text"=>{"content"=>"ABC", "link"=>nil}, "plain_text"=>"ABC", "href"=>nil}], "color"=>"default", "icon"=>{"type"=>"emoji", "emoji"=>"✅"}}} b = CalloutBlock.new "ABC", emoji: "✅", color: "green"; b.block_json # => {"type"=>"callout", "callout"=>{"rich_text"=>[{"type"=>"text", "text"=>{"content"=>"ABC", "link"=>nil}, "plain_text"=>"ABC", "href"=>nil}], "color"=>"green", "icon"=>{"type"=>"emoji", "emoji"=>"✅"}}} b = CalloutBlock.new "ABC", file_url: "a_url", color: "green"; b.block_json # => # {"type"=>"callout", "callout"=> #{"rich_text"=>[{"type"=>"text", "text"=>{"content"=>"ABC", "link"=>nil}, "plain_text"=>"ABC", "href"=>nil}], "color"=>"green", "icon"=>{"type"=>"external", "name"=>"a_url", "external"=>{"url"=>"a_url"}}}} b = CalloutBlock.new "ABC", file_url: "a_url"; b.block_json # => {"type"=>"callout", "callout"=> {"rich_text"=>[{"type"=>"text", "text"=>{"content"=>"ABC", "link"=>nil}, "plain_text"=>"ABC", "href"=>nil}], "color"=>"default", "icon"=>{"type"=>"external", "name"=>"a_url", "external"=>{"url"=>"a_url"}}}}
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\"}}]}'"
color → String
color
returns the color string for CalloutBlock
.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.color # => "default"
color=(new_color)
- [PARAM] new_color new color string
color=
updates the color parameter for CalloutBlock
and sets update_block_key
of the payload object.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.color b.color = "red" b.update_block_json # => {"callout"=>{"color"=>"red"}}
emoji → String
emoji
returns the emoji string for CalloutBlock
.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.emoji # => "✅"
emoji=(emoji)
- [PARAM] emoji new emoji string
color=
updates the color parameter for BulletedListItemBlock
and sets update_block_key
of the payload object.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.emoji b.emoji = "💡" b.update_block_json # => {"callout"=>{"icon"=>{"type"=>"emoji", "emoji"=>"💡"}}}
file_url → String
file_url
returns the file url string for CalloutBlock
.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.emoji # => "✅"
file_url=(url)
- [PARAM] url new url string
file_url=
updates the color parameter for CalloutBlock
and sets update_block_key
of the payload object.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.emoji b.emoji = "💡" b.update_block_json # => {"callout"=>{"icon"=>{"type"=>"emoji", "emoji"=>"💡"}}}
save(dry_run: false)
- [PARAM] dry_run: true if you want to create a verification script
save
updates the Block object with update block API
. The updated object has block information generated from the JSON response.block = Block.find "899e342cec84415f9ff86225704cbb75" # Notion API call block.url = "https://www.apple.com/" block.save # => #<NotionRubyMapping::Block:...> # updated Block object
Block.find(id, dry_run: true)
creates a shell script using Retrieve a block API for verification.block = Block.find "899e342cec84415f9ff86225704cbb75" # Notion API call block.url = "https://www.apple.com/" block.save dry_run: true # => # curl -X PATCH 'https://api.notion.com/v1/blocks/899e342cec84415f9ff86225704cbb75' \ # -H 'Notion-Version: 2022-02-22' \ # -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ # -H 'Content-Type: application/json' \ # --data '{"bookmark":{"url":"https://www.apple.com/"}}'
rich_text_array → RichTextArray
rich_text_array
returns the rich_text parameter of BulletedListItemBlock
.b = CalloutBlock.new "ABC", emoji: "✅"; b.block_json; b.rich_text_array # => #<NotionRubyMapping::RichTextArray:...>