コードブロックのキャプションがサポートされたとのことで試してみる。まずは概要から。

概要説明

code ブロックタイプの caption の追加、更新、取得のサポートが追加されました。

以下は append block children の結果を示したものです。

{
    "object": "list",
    "results": [
        {
            "object": "block",
            "id": "block-id",
            "created_time": "2021-10-14T18:10:00.000Z",
            "last_edited_time": "2021-10-14T18:10:00.000Z",
            "has_children": false,
            "archived": false,
            "type": "code",
            "code": {
                "caption": [
                    {
                        "type": "text",
                        "text": {
                            "content": "Hello Caption!",
                            "link": null
                        },
                        "annotations": {
                            "bold": false,
                            "italic": false,
                            "strikethrough": false,
                            "underline": false,
                            "code": false,
                            "color": "default"
                        },
                        "plain_text": "Hello Caption!",
                        "href": null
                    }
                ],
                "text": [
                    {
                        "type": "text",
                        "text": {
                            "content": "const foo = \\"bar\\"",
                            "link": null
                        },
                        "annotations": {
                            "bold": false,
                            "italic": false,
                            "strikethrough": false,
                            "underline": false,
                            "code": false,
                            "color": "default"
                        },
                        "plain_text": "const foo = \\"bar\\"",
                        "href": null
                    }
                ],
                "language": "javascript"
            }
        },
    ],
    "next_cursor": null,
    "has_more": false
}

検証

いつものように検証しましょう。せっかくなので先日サポートされた mermaid を追加してみましょう。

curl -X PATCH '<https://api.notion.com/v1/blocks/6acefcebdbe14939a98aa2f4deb8ec1c/children>' \\
  -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
  -H "Content-Type: application/json" \\
  -H "Notion-Version: 2021-08-16" \\
  --data '{
  "children": [
    {
      "object": "block",
      "type": "code",
      "code": {
        "caption": [
          {
            "type": "text",
            "text": {
              "content": "キャプションを付けたコードブロック"
            }
          }
        ],
        "text": [
          {
            "type": "text",
            "text": {
              "content": "pie title test\\n  \\"りんご\\" : 4\\n  \\"みかん\\" : 3\\n  \\"梨\\" : 2\\n  \\"もも\\" : 1\\n"
            }
          }
        ],
        "language": "mermaid"
      }
    }
  ]
}'

戻ってきた JSON はこちら。

{
    "object": "list",
    "results": [
        {
            "object": "block",
            "id": "5a058c49-9051-4db0-8514-aca5ba31a315",
            "created_time": "2022-01-25T23:56:00.000Z",
            "last_edited_time": "2022-01-25T23:56:00.000Z",
            "has_children": false,
            "archived": false,
            "type": "code",
            "code": {
                "caption": [
                    {
                        "type": "text",
                        "text": {
                            "content": "キャプションを付けたコードブロック",
                            "link": null
                        },
                        "annotations": {
                            "bold": false,
                            "italic": false,
                            "strikethrough": false,
                            "underline": false,
                            "code": false,
                            "color": "default"
                        },
                        "plain_text": "キャプションを付けたコードブロック",
                        "href": null
                    }
                ],
                "text": [
                    {
                        "type": "text",
                        "text": {
                            "content": "pie title test\\n  \\"りんご\\" : 4\\n  \\"みかん\\" : 3\\n  \\"梨\\" : 2\\n  \\"もも\\" : 1\\n",
                            "link": null
                        },
                        "annotations": {
                            "bold": false,
                            "italic": false,
                            "strikethrough": false,
                            "underline": false,
                            "code": false,
                            "color": "default"
                        },
                        "plain_text": "pie title test\\n  \\"りんご\\" : 4\\n  \\"みかん\\" : 3\\n  \\"梨\\" : 2\\n  \\"もも\\" : 1\\n",
                        "href": null
                    }
                ],
                "language": "mermaid"
            }
        }
    ],
    "next_cursor": null,
    "has_more": false
}

実行結果

上のスクリプトでこんな感じのパイチャートが描けました。

pie title test
  "りんご" : 4
  "みかん" : 3
  "梨" : 2
  "もも" : 1


Notion API Changelog まとめ