Hugo Theme RevealJS is a Hugo theme that compiles Markdown content into a single-page slideshow presentation powered by reveal.js, letting you build decks with the static site toolchain rather than a dedicated slide app. It is maintained by RealOrangeOne on GitHub and is free to use.
What is Hugo Theme RevealJS?
Hugo Theme RevealJS is a theme for the Hugo static site generator that turns Markdown content into a reveal.js presentation. You write your slides as Hugo content files, then run Hugo to generate a single index.html that runs the reveal.js slideshow in any browser. The theme loads reveal.js and highlight.js from cdnjs, so you don't need to install front-end packages or bundle JavaScript yourself. The project is developed at github.com/RealOrangeOne/hugo-theme-revealjs and has an example site hosted on Netlify at hugo-theme-revealjs.netlify.com.
Key Features
- Hugo Markdown authoring — Write each slide as a Hugo content file; the theme converts them into a reveal.js deck during the Hugo build.
- reveal.js rendering — The output is a complete reveal.js presentation, giving you slide transitions, keyboard navigation, and the other standard reveal.js behaviors.
- Theme switching — Set
params.reveal_themein your site config to choose a CSS theme (default:night) andparams.hljs_themeto pick a code highlight theme (default:monokai_sublime). - Custom reveal.js options — Any options you put in
params.revealjsare passed directly toReveal.initialise, overriding the defaults indata/reveal_defaults.yml. - CDN asset loading — All static assets are fetched from cdnjs, so the generated site is small and has no local JavaScript dependencies.
- Output optimization — Because reveal.js is a single-page app, only
index.htmlis needed; you can setdisableKindsto remove extra Hugo output like the sitemap and keep just the required files.
Who is it for?
- Hugo users — Developers and writers who already use Hugo and want to produce slide decks without adopting a separate presentation tool.
- Technical conference speakers — People preparing talk materials who want to keep slides in version control and rebuild them automatically.
- Static site deployers — Anyone publishing to Netlify, GitHub Pages, or another static host who wants a presentation that's plain HTML with no server-side requirements.
What can you do with it?
- Build a pitch deck from Markdown: Write the content once in Hugo's content format and generate a browser-based slideshow you can present or share.
- Self-host your slides: Because the output is just static files, you can drop the deck on any static hosting service, including the Netlify site used in the theme's example.
- Tailor the appearance: Change the reveal.js theme and syntax-highlighting theme with two params, and pass additional reveal.js settings for fine-grained control.
How does it work?
After installing the theme in a Hugo site, add the theme to your site config, then set the reveal and highlight theme names. Hugo reads your Markdown content and builds the presentation; the theme's single-page template wires everything to reveal.js loaded from cdnjs. To ship only what's needed, you can disable the sitemap kind and restrict output to the homepage HTML.
FAQ
Is Hugo Theme RevealJS free?
Yes, the theme is open source and hosted on GitHub. You can download it, modify it, and use it in personal or commercial projects without licensing fees.
How do I change the look of the presentation?
Set the params.reveal_theme value in your Hugo config to any reveal.js theme name, and set params.hljs_theme to a highlight.js theme name for code highlighting. The defaults are night and monokai_sublime respectively.
Do I need to install reveal.js separately?
No. The theme loads reveal.js and highlight.js from cdnjs automatically when the generated page is visited, so you don't bundle or install them in your project.
What output does the build produce?
A standard Hugo build produces a single page with the slideshow, plus any other content you haven't disabled. For a minimal deployment, you can disable output kinds such as sitemap so the site consists of only the required index.html.





