VS Code extension for Kova: syntax highlighting, snippets, and Present with Kova...
JavaScript
0
12 commits
updated Sep 28, 2026
Syntax highlighting for Kova Markdown presentations, plus a Present with Kova... command to launch a file straight into fullscreen presentation mode.
Kova is a native desktop app that turns Markdown into slide decks. This extension does not require Kova to be installed to get highlighting; the Present command does, since it launches the Kova binary directly.
Install Kova: https://github.com/KovaMD/Kova/releases
Kova extends plain Markdown with a small, closed set of directives. This extension highlights all of them on top of VS Code's built-in Markdown grammar:
title, author, theme, theme_overrides, aspect_ratio, date, logo, footer--- (slide separator), ??? (speaker notes), ||| (column break)<!-- layout: NAME -->, <!-- hidden -->, <!-- color: ... -->, <!-- _color: ... -->, <!-- _class: ... -->, <!-- step --> / <!-- step: N -->!youtube[...], !video[...], !poll[...], !progress[...], !ref[...], !caption[...], !toc, !let, !sheet> [!note], > [!warning] Title, and other Obsidian/GitHub-style admonitions{title}, {author}, {date}, {slide_number}, {total}See examples/demo.kova.md for one file exercising every token, and the full syntax spec in the main Kova repo.
Two known limitations:
||| as a column break is ambiguous with an all-empty GFM table row. Kova's own parser disambiguates using table context; this grammar does not, so a ||| inside a table may occasionally be mis-highlighted.key:, not just inside the leading ---…--- block (a TextMate injection grammar can't reliably track that boundary). A slide body line that happens to start with title:, date:, etc. will be highlighted as if it were a frontmatter key.Run Kova: Present with Kova... from the command palette, or use the play icon in the editor title bar on any Markdown file. It saves the file if there are unsaved changes, then launches kova --present on it. If Kova isn't found on your PATH (or, on Linux, isn't installed as a Flatpak either), you'll get a prompt linking to the releases page instead of a silent failure.
Type a prefix and press Tab in a Markdown file: kova-slide, kova-notes, kova-col, kova-layout, kova-step, kova-yt, kova-video, kova-poll, kova-progress, kova-ref, kova-toc, kova-caption, kova-let, kova-sheet, kova-bg, kova-note / kova-tip / kova-warning / kova-danger / kova-info, and kova-frontmatter.
npm install
npm run compile
Then press F5 to launch an Extension Development Host with fixtures/sample.kova.md already open, to check both highlighting and the present command.
npm test runs a headless tokenizer test against the grammar (loads kova.tmLanguage.json directly via vscode-textmate/vscode-oniguruma and asserts on the scopes it produces) — no editor required. npm run package builds a .vsix with vsce as a packaging smoke test. Both run in CI on every push and PR.
This extension is free and open source software, released under the GNU General Public License v3.0.
You are free to use, study, modify, and distribute this software under the terms of the GPL v3. Any modified versions distributed to others must also be made available under the GPL v3.
JavaScript
67.4%
TypeScript
32.6%
VS Code extension for Kova: syntax highlighting, snippets, and Present with Kova...
JavaScript
0
12 commits
updated Sep 28, 2026
Syntax highlighting for Kova Markdown presentations, plus a Present with Kova... command to launch a file straight into fullscreen presentation mode.
Kova is a native desktop app that turns Markdown into slide decks. This extension does not require Kova to be installed to get highlighting; the Present command does, since it launches the Kova binary directly.
Install Kova: https://github.com/KovaMD/Kova/releases
Kova extends plain Markdown with a small, closed set of directives. This extension highlights all of them on top of VS Code's built-in Markdown grammar:
title, author, theme, theme_overrides, aspect_ratio, date, logo, footer--- (slide separator), ??? (speaker notes), ||| (column break)<!-- layout: NAME -->, <!-- hidden -->, <!-- color: ... -->, <!-- _color: ... -->, <!-- _class: ... -->, <!-- step --> / <!-- step: N -->!youtube[...], !video[...], !poll[...], !progress[...], !ref[...], !caption[...], !toc, !let, !sheet> [!note], > [!warning] Title, and other Obsidian/GitHub-style admonitions{title}, {author}, {date}, {slide_number}, {total}See examples/demo.kova.md for one file exercising every token, and the full syntax spec in the main Kova repo.
Two known limitations:
||| as a column break is ambiguous with an all-empty GFM table row. Kova's own parser disambiguates using table context; this grammar does not, so a ||| inside a table may occasionally be mis-highlighted.key:, not just inside the leading ---…--- block (a TextMate injection grammar can't reliably track that boundary). A slide body line that happens to start with title:, date:, etc. will be highlighted as if it were a frontmatter key.Run Kova: Present with Kova... from the command palette, or use the play icon in the editor title bar on any Markdown file. It saves the file if there are unsaved changes, then launches kova --present on it. If Kova isn't found on your PATH (or, on Linux, isn't installed as a Flatpak either), you'll get a prompt linking to the releases page instead of a silent failure.
Type a prefix and press Tab in a Markdown file: kova-slide, kova-notes, kova-col, kova-layout, kova-step, kova-yt, kova-video, kova-poll, kova-progress, kova-ref, kova-toc, kova-caption, kova-let, kova-sheet, kova-bg, kova-note / kova-tip / kova-warning / kova-danger / kova-info, and kova-frontmatter.
npm install
npm run compile
Then press F5 to launch an Extension Development Host with fixtures/sample.kova.md already open, to check both highlighting and the present command.
npm test runs a headless tokenizer test against the grammar (loads kova.tmLanguage.json directly via vscode-textmate/vscode-oniguruma and asserts on the scopes it produces) — no editor required. npm run package builds a .vsix with vsce as a packaging smoke test. Both run in CI on every push and PR.
This extension is free and open source software, released under the GNU General Public License v3.0.
You are free to use, study, modify, and distribute this software under the terms of the GPL v3. Any modified versions distributed to others must also be made available under the GPL v3.
JavaScript
67.4%
TypeScript
32.6%