` elements inside a `` container. The core handles layout, transitions, and state management, while an event-driven plugin system extends functionality. The build toolchain uses Rollup for bundling.
## Self-Hosting & Configuration
- Clone the repo and run `npm install && npm start` for a development server
- Alternatively, load reveal.js from a CDN in a standalone HTML file
- Configure options like `transition`, `autoSlide`, `hash`, and `controls` in the `Reveal.initialize()` call
- Write slides in Markdown using the built-in markdown plugin with external `.md` files
- Deploy the dist folder to any static hosting provider
## Key Features
- Markdown authoring support with external file loading and element attributes
- Auto-animate transitions between slides with matching elements
- Code syntax highlighting via highlight.js with line number and step-through support
- LaTeX math rendering through MathJax or KaTeX plugins
- Multiplexing allows one presenter to control slides on many viewer devices
## Comparison with Similar Tools
- **Slidev** — Vue-powered, developer-focused with code-centric features; reveal.js is framework-agnostic
- **Marp** — converts Markdown to slides via CLI; reveal.js offers richer interactivity in the browser
- **Impress.js** — uses 3D CSS transforms for spatial presentations; reveal.js focuses on traditional slide flow
- **Google Slides** — cloud-hosted with collaboration; reveal.js is self-hosted and version-controllable
- **Deck.js** — older HTML slide library; reveal.js has more features and active development
## FAQ
**Q: Can I use reveal.js without Node.js?**
A: Yes. Include the CSS and JS files from a CDN in a single HTML file and author slides directly.
**Q: How do I export slides to PDF?**
A: Append `?print-pdf` to the URL, then use the browser's print dialog to save as PDF. Decktape is another option for higher fidelity.
**Q: Does reveal.js support live collaboration?**
A: The multiplex plugin lets a presenter control navigation on remote viewers' browsers in real time.
**Q: Can I embed iframes and videos in slides?**
A: Yes. Slides support any HTML content including iframes, videos, canvas elements, and custom web components.
## Sources
- https://github.com/hakimel/reveal.js
- https://revealjs.com/
---
Source: https://tokrepo.com/en/workflows/68f7307b-4384-11f1-9bc6-00163e2b0d79
Author: Script Depot