$schema: http://json-schema.org/draft-07/schema# title: Reveal.yaml Schema description: The validator of Reveal.yaml definitions: path: type: string pattern: ^(?:https?://)?(?:[\w.-]+/?)+ $sized: type: object minProperties: 1 required: [src] properties: src: title: Soure path $ref: "#/definitions/path" width: title: Width type: [integer, string] height: title: Height type: [integer, string] sized: $ref: "#/definitions/$sized" additionalProperties: false img: $ref: "#/definitions/$sized" properties: label: title: Image caption type: string title: Image $slide: title: A slide type: object minProperties: 1 properties: title: title: Single line Markdown level 2 title type: string doc: title: Multiline Markdown pargraph type: string include: title: Include a Markdown file from path, append after "doc" $ref: "#/definitions/path" math: title: Latex math without "$$" brackets type: string youtube: title: Youtube video $ref: "#/definitions/sized" embed: title: External resource like PDF $ref: "#/definitions/sized" img: title: Images anyOf: - $ref: "#/definitions/img" - type: array items: {$ref: "#/definitions/img"} minItems: 1 fragment: title: Fragment option type: object minProperties: 1 additionalProperties: false properties: math: {type: string} img: {type: string} youtube: {type: string} embed: {type: string} slide: $ref: "#/definitions/$slide" additionalProperties: false hslide: $ref: "#/definitions/slide" additionalProperties: false properties: sub: title: Vertical slides anyOf: - $ref: "#/definitions/slide" - type: array items: {$ref: "#/definitions/slide"} minItems: 1 type: object required: [nav] properties: lang: title: Page language type: string default: en title: title: Page title, default is same as first page type: string description: title: Page description type: string author: title: Page author type: string cdn: title: Accessible CDN path if missing local files $ref: "#/definitions/path" watermark: title: Watermark source $ref: "#/definitions/path" watermark-size: title: Source width type: [integer, string] outline: title: Outline page under first column with depth type: integer default: 0 maximum: 2 minimum: 0 theme: title: Reveal.js theme type: string default: serif code-theme: title: Highlight theme type: string default: zenburn icon: title: Icon path $ref: "#/definitions/path" default: img/icon.png default-style: title: Use default style type: boolean default: true extra-style: title: Extra CSS style path $ref: "#/definitions/path" nav-mode: title: Reveal navigation mode option type: string show-arrows: title: Show control arrows type: boolean default: true center: title: Auto center the "doc" type: boolean default: true loop: title: Loop the slides type: boolean default: false history: title: Enable page history type: boolean default: true slide-num: title: Slide number style type: [boolean, string] default: c/t progress: title: Show progress bar type: boolean default: true mouse-wheel: title: Allow wheel control type: boolean default: false preview-links: title: Open a preview window for links type: boolean default: false transition: title: Transition mode type: string default: linear footer: title: Footer block $ref: "#/definitions/$sized" properties: label: title: Footer title type: string link: title: Link for footer title $ref: "#/definitions/path" plugin: description: Plugin enable / disable options type: object minProperties: 1 additionalProperties: false properties: zoom: type: boolean default: false notes: type: boolean default: true search: type: boolean default: false highlight: type: boolean default: true math: type: boolean default: false nav: title: Horizontal slides anyOf: - $ref: "#/definitions/hslide" - type: array items: {$ref: "#/definitions/hslide"} minItems: 1