- JavaScript 88.3%
- CSS 8.4%
- HTML 2.3%
- Shell 0.7%
- PHP 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| libs | ||
| pictures | ||
| .gitignore | ||
| app.js | ||
| favicon.svg | ||
| index.html | ||
| kiosk.sh | ||
| LICENSE | ||
| presentation.html | ||
| preview.html | ||
| preview.js | ||
| README.md | ||
| setup.sh | ||
| upload-presentation.php | ||
Revealy
Revealy is a browser-based WYSIWYG editor for reveal.js presentations. Craft your slides on any device, then upload them to present them on a connected screen. It works fully offline.
Operation explained
Revealy has two halves: the editor, which you drive from a browser on your own device, and the screen you present on that is connected to the Raspberry Pi:
- Join the Wi-Fi network
Revealyon your laptop, phone, or tablet. - Your device notices there is no internet on that network and pops up its captive portal. That window is the editor. If it does not pop up on its own, open http://revealy.local in your browser.
- Give your presentation a unique name (Top right corner of the editor). Create one or more slides.
Click on
Projects...button to open a list of saved presentations. Click onExport all (.zip).Always save your presentations !!!
- Check your work with Preview button.
- Click
Upload presentationin the top bar to upload it to the device itself and to present it on the connected screen.
Pictures
Slides Editor
Preview Mode
Settings menues
Project list view. Revealy can handle multiple projects/presentations at the same time.
Project settings view. Set global settings for a project/presentation.
Setup instructions
- Install Raspberry Pi OS (64-bit) (Desktop) on SD Card via Raspberry Pi Imager. After that plug the sd card into the Raspbarry Pi and finish installation process.
- Open terminal
- Install
apache2andphp:
sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y
sudo apt install apache2 php -y
- Copy content of this repo into
/var/www/html:
sudo rm -rf /var/www/html/*
sudo git clone https://forgejo.hostlab.tech/suitdeer/Revealy.git /var/www/html/
sudo chown -R "$(id -un)":www-data /var/www/html/
sudo chmod -R 770 /var/www/html/
- Install and configure Raspberry Pi to be a captive portal on the wlan interface:
sudo /var/www/html/setup.sh
- OPTIONAL: Download the map tiles for the map-element if you need it.
Here the page where you need to select a country you want the map data to be downloaded https://bundle.tiles.coalition.space/bundles. Download as zip-file:
sudo apt install unzip -y
cd /tmp
# Example url for german map tiles: https://bundle.tiles.coalition.space/bundles/germany/germany-osm-bright-z0-z15-20261003.zip
sudo wget "<bundle-url-from-the-bundles-page>"
sudo mkdir -p /var/www/html/libs/leaflet/tiles
sudo unzip <bundle-filename> -d /var/www/html/libs/leaflet/tiles
sudo rm <bundle-filename>
sudo chown -R "$(id -un)":www-data /var/www/html/libs
sudo chmod -R 770 /var/www/html/libs
Keyboard shortcuts
Cmd/Ctrl + S |
flush save |
Cmd/Ctrl + Shift + Enter |
new slide after current |
Cmd/Ctrl + P |
preview from start (press again to close) |
Cmd/Ctrl + Shift + P |
preview from current slide |
Escape |
close whatever modal is open; in preview, exits overview/fullscreen first, then closes the preview |
↑ ↓ ← → (in preview) |
navigate |
S (in preview) |
speaker view |
F (in preview) |
fullscreen |
O (in preview) |
slide overview |
B (in preview) |
black out the screen |
Tech stack
- Vanilla JS, no framework, no build step.
- reveal.js 6.0.2: Library that builds the presentations. Vendored under
libs/reveal/. - JSZip 3.10.2: for the
.zipimport/export, vendored underlibs/. - Bootstrap 6: all editor chrome — buttons, form controls, dialogs, the drawer, and menus — is styled with the vendored
libs/bootstrap/bootstrap.min.cssand driven bybootstrap.bundle.min.js(loaded as an ES module). There is no custom stylesheet. - Bootstrap Icons 1.13.2: toolbar and topbar icons, vendored under
libs/. - Leaflet 2.0.0-alpha.1: the map element, vendored under
libs/leaflet/along with its offline tile pyramid. - Google Fonts: the families used by the built-in themes and the custom-theme picker are downloaded under
libs/fonts/google/(fonts.css+ woff2 files, latin/latin-ext subsets), so themes and custom fonts render offline. Custom font families typed in by exact name only work if they're one of the vendored families.
License
MIT License - see LICENSE





