# blog.skypress.content.gutenberg

> Published by [skypress.blog](https://lexicon.garden/identity/did:plc:sov5kv5byjmdksdjacjiysg3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:sov5kv5byjmdksdjacjiysg3/blog.skypress.content.gutenberg)
- [Documentation](https://lexicon.garden/lexicon/did:plc:sov5kv5byjmdksdjacjiysg3/blog.skypress.content.gutenberg/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:sov5kv5byjmdksdjacjiysg3/blog.skypress.content.gutenberg/examples)

## Definitions

### `blog.skypress.content.gutenberg`

**Type**: `object`

A WordPress Gutenberg block tree, the canonical content of a SkyPress document. Placed inside the open `content` union of a `site.standard.document`. Readers that don't understand this format should fall back to the document's `textContent`.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `blocks` | `array` | Yes | The Gutenberg block tree exactly as produced by the editor's `onSaveBlocks` (NOT rendered HTML). Each item is a block node: `{ name: string, attributes: object, innerBlocks: block[] }`, where `name` is the Gutenberg block name (e.g. `core/paragraph`). Items are typed `unknown` because block attributes are open-ended per block type. |
| `version` | `integer` | Yes | Serialization version of the block tree. Bump only for breaking changes; non-breaking changes are additive. Currently 1. |
| `mentions` | `array` | No | Optional, additive. Accounts mentioned in the body, mirrored from the inline `<a data-did>` anchors in the block tree. A flat discovery list for other appviews; SkyPress's own reader renders mentions from the inline anchors, not this field. Each item is `{ did: string, handle: string }`. |

## Raw Schema

```json
{
  "id": "blog.skypress.content.gutenberg",
  "defs": {
    "main": {
      "type": "object",
      "required": [
        "version",
        "blocks"
      ],
      "properties": {
        "blocks": {
          "type": "array",
          "items": {
            "type": "unknown"
          },
          "description": "The Gutenberg block tree exactly as produced by the editor's `onSaveBlocks` (NOT rendered HTML). Each item is a block node: `{ name: string, attributes: object, innerBlocks: block[] }`, where `name` is the Gutenberg block name (e.g. `core/paragraph`). Items are typed `unknown` because block attributes are open-ended per block type."
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "description": "Serialization version of the block tree. Bump only for breaking changes; non-breaking changes are additive. Currently 1."
        },
        "mentions": {
          "type": "array",
          "items": {
            "type": "unknown"
          },
          "description": "Optional, additive. Accounts mentioned in the body, mirrored from the inline `<a data-did>` anchors in the block tree. A flat discovery list for other appviews; SkyPress's own reader renders mentions from the inline anchors, not this field. Each item is `{ did: string, handle: string }`."
        }
      },
      "description": "A WordPress Gutenberg block tree, the canonical content of a SkyPress document. Placed inside the open `content` union of a `site.standard.document`. Readers that don't understand this format should fall back to the document's `textContent`."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
