Create a mkslides.yml file in your project root to customize the generated index page, the slides themselves, and Reveal.js settings. All options are optional.
Configuration Hierarchy
Settings follow this precedence:
- Markdown Frontmatter (highest)
mkslides.yml- Default settings (lowest)
Key Configuration Sections
index: Settings for the landing page (title, navigation, theme, favicon).slides: Settings for the slideshows (theme, highlight theme, separators, preprocess scripts).revealjs: Direct options passed to the Reveal.js engine (height, width, transitions, etc.).plugins: A list of Reveal.js plugins, including custom CSS and JavaScript files.
Note: Relative file paths in mkslides.yml are relative to the directory containing your Markdown files (PATH). In Markdown frontmatter, paths are relative to the Markdown file itself.
index:
enable_footer: true
favicon: example-index-favicon.ico
nav:
- Example: example1.md
- "Example 2": somewhere/example1.md
title: example-title
template: example.jinja
theme: example-index-theme.css
slides:
charset: utf-8
favicon: example-slides-favicon.ico
highlight_theme: example-slides-highlight-theme.css
preprocess_script: tests/test_preprocessors/replace_ats.py
separator_notes: "^Notes?:"
separator_vertical: ^\s*-v-\s*$
separator: ^\s*---\s*$
template: ./example.jinja
theme: example-slides-theme.css
title: example-title
revealjs:
height: 1080
width: 1920
transition: fade
example_plugin:
example_plugin_option_A: true
example_plugin_option_B: qwerty
plugins:
- name: RevealExamplePlugin
extra_css:
- https://cdn.jsdelivr.net/npm/reveal.js-example-pluging/example.min.css
extra_javascript:
- https://cdn.jsdelivr.net/npm/reveal.js-example-pluging/example.min.js
- name: RevealMermaid
extra_javascript:
- https://cdn.jsdelivr.net/npm/reveal.js-mermaid-plugin/plugin/mermaid/mermaid.min.js
- extra_javascript:
- https://cdn.jsdelivr.net/npm/reveal-plantuml/dist/reveal-plantuml.min.js