This tool is based on the awesome VSCode-Reveal.
This is the first tool I've used to create markdown presentations, and I like the way it's put together. The only thing I missed, was a way to call it from the command line, and have the same output as I do with the extension.
Here you can read my quick blog post about the possibilities of creating slideshows in Markdown.
See version info in CHANGELOG
$ npm install revealjs-cli
$ revealjs-cli --help
Usage: revealjs-cli [options]
Options:
-d, --debug log additional debug info
-e, --debugserver log ejb debug info
-p, --port <port> serve app on specifict port
-b, --build save the generated presentation to the path specified in `exportHTMLPath`
-l, --location <location> save the generated presentation to the path specified. This is the strongest setting.
-y, --yes answer yes to every prompt
-s, --serve serve app on a random port
-r, --refresh do not cache generated template
-c, --config <location> config json file to override default values
-o, --open <location> source of the starter markdown file
-h, --help output usage information
You must specify the --open
flag to load a markdown file for generation.
You can find examples in the examples folder.
You may set the --build
flag to keep the generated files.
In case you do not specify a --port
, and the --serve
flag is not set either, then a build bundle is created even if the --build
flag is not set.
Under the hood, it currently uses the same engine as VSCode-Reveal.
For contributions getting started see dev docs.
Create reveal.js presentation directly from markdown file, open or create a new file in markdown and use default slide separator to see slide counter change in the status bar and title appear in the sidebar.
Since Reveal.js use marked to parse the markdown string you can use this in your document:
- GitHub flavored markdown.
- GFM tables
If you need a sample file you can get it here: https://raw.githubusercontent.com/budavariam/revealjs-cli/master/examples/sample/sample.md
reveal.js comes with a few themes built in:
- Black (default)
- White
- League
- Sky
- Beige
- Simple
- Serif
- Blood
- Night
- Moon
- Solarized
You can set it using revealjs.theme
parameter in Vs code config or in the document itself using front matter.
If you want a custom theme you can do it! Just add custom style to a CSS file in the same folder that your markdown.
example:
if your file name is my-theme.css
just add this in the front matter header :
---
customTheme : "my-theme"
---
Note that you can use both theme and custom theme at the same time. Your custom theme will be loaded after to override default reveal.js theme.
You can use code block in your markdown that will be highlighted by highlight.js.
So you can configure the coloration theme by setting revealjs.highlightTheme
parameter of VS Code, or set it using front matter.
---
highlightTheme : "other theme"
---
Get the theme list here https://highlightjs.org/
You can customize many setting on for your reveal.js presentation.
Name | Description | Default |
---|---|---|
revealjs.notesSeparator |
Revealjs markdown note delimiter | note: |
revealjs.theme |
Revealjs Theme (black, white, league, beige, sky, night, serif, simple, solarized | black |
revealjs.highlightTheme |
Highlight Theme | Zenburn |
revealjs.controls |
Display controls in the bottom right corner | true |
revealjs.progress |
Display a presentation progress bar | true |
revealjs.slideNumber |
Display the page number of the current slide | |
revealjs.history |
Push each slide change to the browser history | |
revealjs.keyboard |
Enable keyboard shortcuts for navigation | true |
revealjs.overview |
Enable the slide overview mode | true |
revealjs.center |
Vertical centering of slides | true |
revealjs.touch |
Enables touch navigation on devices with touch input | true |
revealjs.loop |
Loop the presentation | |
revealjs.rtl |
Change the presentation direction to be RTL | |
revealjs.shuffle |
Randomizes the order of slides each time the presentation loads | |
revealjs.fragments |
Turns fragments on and off globally | true |
revealjs.embedded |
Flags if the presentation is running in an embedded mode, i.e. contained within a limited portion of the screen | |
revealjs.help |
Flags if we should show a help overlay when the questionmark key is pressed | true |
revealjs.showNotes |
Flags if speaker notes should be visible to all viewers | |
revealjs.autoSlide |
Number of milliseconds between automatically proceeding to the next slide, disabled when set to 0, this value can be overwritten by using a data-autoslide attribute on your slides | |
revealjs.autoSlideMethod |
The direction in which the slides will move whilst autoslide is activated | Reveal.navigateNext |
revealjs.autoSlideStoppable |
Stop auto-sliding after user input | true |
revealjs.mouseWheel |
Enable slide navigation via mouse wheel | |
revealjs.hideAddressBar |
Hides the address bar on mobile devices | true |
revealjs.previewLinks |
Opens links in an iframe preview overlay | |
revealjs.transition |
Transition style (none/fade/slide/convex/concave/zoom) | default |
revealjs.transitionSpeed |
Transition speed (default/fast/slow) | default |
revealjs.backgroundTransition |
Transition style for full page slide backgrounds (none/fade/slide/convex/concave/zoom) | default |
revealjs.viewDistance |
Number of slides away from the current that are visible | 3 |
revealjs.parallaxBackgroundImage |
Parallax background image | |
revealjs.parallaxBackgroundSize |
Parallax background size (CSS syntax, e.g. 2100px 900px) | |
revealjs.parallaxBackgroundHorizontal |
Number of pixels to move the parallax background per slide | |
revealjs.parallaxBackgroundVertical |
Number of pixels to move the parallax background per slide |
revealjs.separator
|
Revealjs markdown slide separator |
^(
?|
)---(
?|
)$
|
revealjs.verticalSeparator
|
Revealjs markdown vertical separator |
^(
?|
)--(
?|
)$
|
You can change settings directly in your markdown file using front matter style. You can change all extention settings like this :
---
theme : "white"
transition: "zoom"
---
Note do not add
revealjs.
prefix before setting name.
---
enableMenu: false
---
---
enableChalkboard: false
---
---
enableTitleFooter: false
---
---
enableZoom: false
---
---
enableSearch: false
---
Note : The first time, Windows will ask you about the firewall. If you open the port for the application, you can see your presentation remotely.
Please add issues on Github.