Yuichi Mizutani28 downloadsTurns a Marp note into an HTML presentation with animated Terminalogue terminals, and opens it in the default browser.
Turn a Marp note into an HTML presentation — with terminals that type themselves.
Terminalogue Presenter takes the note you are looking at, converts it with
Marp CLI, and opens the result in your default
browser. Any ```termlogue block in the deck becomes an animated terminal session:
commands typed one character at a time, output arriving line by line, playable and pausable
on the slide.
It is the presentation half of Terminalogue, whose Obsidian plugin renders those same blocks in Reading View.
---
marp: true
---
# Installing Nginx
```termlogue
@theme ubuntu
@size 72x16
@prompt [root@rhel10 ~]#
$ dnf install -y nginx
Updating repositories...
Complete!
```
Commands are never executed. A
termlogueblock is prose that looks like a shell session — see Security.
isDesktopOnly because it runs Marp CLI as a
separate program, which the mobile app cannot do.npm install -g @marp-team/marp-cli or scoop install marp, then check the path
in the plugin's settings.| Command | What it does |
|---|---|
| Present current note | Converts the note and opens the presentation in your browser. |
| Present current note with watch | The same, and keeps Marp running so edits refresh the page. |
| Export current note to HTML | Writes the presentation next to the note, inside your vault. |
| Stop presentation | Stops a running watch process. |
marp on PATH.
Set it explicitly when Obsidian was started from a launcher, because a launcher's PATH
is often not the shell's.Obsidian asks plugins to say this plainly, and it is worth knowing:
Nothing in a termlogue block is ever executed — not by this plugin, not by Marp, not
by the generated presentation. A block is text that is drawn to look like a terminal.
The one program this plugin starts is the Marp CLI its settings name. It is spawned with
shell: false, with the executable and its arguments kept separate, so no path and no note
content is ever interpreted as a shell command. On Windows an npm-installed marp.cmd is
launched through cmd.exe — Node refuses to spawn .cmd directly — with every argument
quoted individually, and arguments containing quotes or newlines are refused rather than
escaped.
npm install
npm run check # build, lint, typecheck, test
npm run build
vendor/terminalogue-marp-engine.mjs is the Terminalogue Marp engine, vendored: it is the
bundle @terminalogue/marp builds, embedded
into main.js as a string and written to a scratch directory when a presentation is
generated. That is what lets a deck's terminals animate without Marp needing anything
installed alongside it. Refresh it from a Terminalogue checkout with:
node scripts/vendor-engine.mjs ../Terminalogue
Lint includes eslint-plugin-obsidianmd,
the rule set the community directory runs against a submission, so npm run lint is the
same check the review makes.
MIT. See LICENSE.