Format specification
An open format for your presentations
Read, save and generate decks as structured data. Use the specification to build tools that work with that content.
- File format and schemas
Read the fields, validate a deck and inspect the package.
- Slide types
Find a type and the content fields it accepts.
- Compatibility
Check what a reader must support and how it handles unfamiliar content.
A slide and the data behind it
The type identifies the slide's structure. Its content fields hold the text and other values. A renderer turns that data into a slide.
Slide data (excerpt)
{
"type": "eu.deckyard.slide.quote",
"content": {
"quote": "A deck is data, not a rendering.",
"authorName": "Deckyard",
"authorTitle": "Format specification"
}
} The preview and the downloadable deck use the same content. The code shown here is an excerpt; use the complete file for validation.
A package carries the deck and its assets
The JSON file describes the presentation. A deck package places it in a ZIP archive alongside its manifest and bundled assets.
Deck package application/vnd.deckyard.deck
-
mimetypeMedia type -
manifest.jsonManifest -
deck.jsonDeck data -
theme.jsonTheme, if it is a database theme -
slide-types/<slug>.jsonCustom slide types, if any -
assets/<sha256>.<ext>Bundled assets
To display the deck, you need a reader and renderer that support its content. The package is not a standalone HTML player. External resources may still need a network connection.
Build on the content
-
Keep an archive
Store the deck with its assets and record which format versions your reader supports.
-
Generate decks
Map content from another system to slide fields, then validate the result against the schemas.
-
Build a reader
Start with the format contract and use the compatibility requirements to define what your implementation supports.
Versions, licences and compatibility
- Versions
- Envelope version 1; content schema version 15. These versions describe different parts of the format.
- Licences
- The core documents
deck-format.mdanddeck-bundle-format.mdare CC0-1.0. That licence does not cover every page in this section. Deckyard, the reference implementation, is MIT-licensed. - Media type
-
application/vnd.deckyard.deckidentifies the package. Registration with IANA records the media type; it does not certify compatibility. The registration template - Compatibility
- The conformance page defines the requirements for readers and renderers, including fallback behaviour.