OPF
SpecDefinition referenceView source

Asset

Reusable or inline resource. A string is shorthand for { "src": value }. Source strings accept 'asset:<id>' references, HTTPS URLs, data URIs, relative paths resolved against the OPF file location, or local filesystem paths. Use object form when metadata such as alt text, title or mediaType matters.

Metadata

Definition
#/$defs/Asset
Form
2 alternative forms (oneOf)
Source
spec/schemas/opf.schema.json

Field index

This definition uses the forms or value constraints below.

oneOf 1 · string

Exact constraints for oneOf 1
oneOf 1 schema
{
  "type": "string",
  "examples": [
    "asset:acme-logo",
    "https://cdn.acme.com/image.png",
    "./assets/image.png",
    "data:image/png;base64,..."
  ]
}

oneOf 2 · object

FieldTypeReq.DefaultDescription
srcstringyes—Resource source. Accepts an 'asset:<id>' reference, HTTPS URL, data URI, relative path resolved against the OPF file location, or local filesystem path.
altstring——Alternative text for images and other visual assets.
titlestring——Human-readable asset title for editors and asset pickers.
descriptionstring——Optional notes about the asset's contents, provenance, or intended use.
mediaTypestring——Optional MIME media type when it cannot be inferred from src.

src

typestringrequiredyesdefault—

Resource source. Accepts an 'asset:<id>' reference, HTTPS URL, data URI, relative path resolved against the OPF file location, or local filesystem path.

src.json
{
  "src": "asset:acme-logo"
}

alt

typestringrequirednodefault—

Alternative text for images and other visual assets.

title

typestringrequirednodefault—

Human-readable asset title for editors and asset pickers.

description

typestringrequirednodefault—

Optional notes about the asset's contents, provenance, or intended use.

mediaType

typestringrequirednodefault—

Optional MIME media type when it cannot be inferred from src.

mediaType.json
{
  "mediaType": "image/svg+xml"
}
Exact constraints for oneOf 2
oneOf 2 schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "src"
  ],
  "properties": {
    "src": {
      "type": "string",
      "description": "Resource source. Accepts an 'asset:<id>' reference, HTTPS URL, data URI, relative path resolved against the OPF file location, or local filesystem path.",
      "examples": [
        "asset:acme-logo",
        "./assets/logo.svg",
        "https://cdn.acme.com/logo.png",
        "data:image/svg+xml;base64,...",
        "/Users/alice/decks/data/revenue.csv"
      ]
    },
    "alt": {
      "type": "string",
      "description": "Alternative text for images and other visual assets."
    },
    "title": {
      "type": "string",
      "description": "Human-readable asset title for editors and asset pickers."
    },
    "description": {
      "type": "string",
      "description": "Optional notes about the asset's contents, provenance, or intended use."
    },
    "mediaType": {
      "type": "string",
      "description": "Optional MIME media type when it cannot be inferred from src.",
      "examples": [
        "image/svg+xml",
        "image/png",
        "text/csv",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
      ]
    }
  }
}
Complete definition constraints
Schema constraints
{
  "description": "Reusable or inline resource. A string is shorthand for { \"src\": value }. Source strings accept 'asset:<id>' references, HTTPS URLs, data URIs, relative paths resolved against the OPF file location, or local filesystem paths. Use object form when metadata such as alt text, title or mediaType matters.",
  "oneOf": [
    {
      "type": "string",
      "examples": [
        "asset:acme-logo",
        "https://cdn.acme.com/image.png",
        "./assets/image.png",
        "data:image/png;base64,..."
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "src"
      ],
      "properties": {
        "src": {
          "type": "string",
          "description": "Resource source. Accepts an 'asset:<id>' reference, HTTPS URL, data URI, relative path resolved against the OPF file location, or local filesystem path.",
          "examples": [
            "asset:acme-logo",
            "./assets/logo.svg",
            "https://cdn.acme.com/logo.png",
            "data:image/svg+xml;base64,...",
            "/Users/alice/decks/data/revenue.csv"
          ]
        },
        "alt": {
          "type": "string",
          "description": "Alternative text for images and other visual assets."
        },
        "title": {
          "type": "string",
          "description": "Human-readable asset title for editors and asset pickers."
        },
        "description": {
          "type": "string",
          "description": "Optional notes about the asset's contents, provenance, or intended use."
        },
        "mediaType": {
          "type": "string",
          "description": "Optional MIME media type when it cannot be inferred from src.",
          "examples": [
            "image/svg+xml",
            "image/png",
            "text/csv",
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
          ]
        }
      }
    }
  ]
}