This is a boilerplate of a web presentation template using reveal, grunt, assemble, libsass and socket.io.
It also has the config to deploy the presentatios to heroku.
Using web presentations should be easy and quick, this tool, aims to making it easier. It uses standard tools, we web developers use in our daily work, such as assemble.io, grunt, yeoman, sass.
You will need to have pre-installed in your computer:
- npm
- bower
- Yeoman
- libsass
- BEM-OOCSS naming convention
- Assemble to build the pages
- grunt connect as server
- Yeoman generator to create new presentations, and in the future, new slides.
|- dist // Contains the built files for the server
|- configs
|- presentations // Folder with the presentations
|- src // Source code
- Install Yeoman, grunt and bower globally
npm install -g grunt grunt-cli bower yeoman
- Install project dependencies
npm install
- Start creating presentations
- Run the server
To create a new presentation, you will need to:
- Install Yeoman
- Run the new presentation generator
yo reveal-presentation myAwesomePresentation
- Update reveal settings in your config.yml, though it is not required
- Start adding slides.
When you run the server, you will have two pages available:
-
/index.html, here you will find a list of all the available presentations.
-
/masters.html, all the master pages (pages with config only for presenters) will be here
Within the folder of your presentation, you might have an index and master pages.
-
The index page is the link you will give the attendees to access the presentation.
-
The master page is the page you will use as presenter. If you are using sockets or remote.io, then this will be required, because in this page the socket key will be added, and when you change a slide, the slide of the attendees will be changed as well.
As long as the slide creation process is manual, in order to ensure the order of your slides in the presentation, you need to prepend to your slides name a number. ie: (Note: use md for the slides)
|- 0-title.md
|- 1-agenda.md
|- 2-awesome-content.md
|- 3-thank-you.md
The following data needs to be added in your slide:
---
title: "Title of the slide"
**presentation: shortLinkNameForTheURL //Note that this is the same name you used for menuLink in the index.hbs**
classes:
- CssClass1
- CssClass1
slideDataAttr:
- revealConfigDataAttr1: value
---
You can add as many classes or data attributes as you want. I owe you a list of possible options of data attributes supported by reveal.
###Without sockets
To create the dist, run:
grunt build
To run the server and watch your changes run :
grunt serve
The default tasks builds everything and then runs the serve task
grunt
To create the dist, run:
grunt build
To create the dist, run:
npm start
The default keyboard shortcuts are:
- ← or H: Navigate left
- → or L: Navigate right
- ↑ or K: Navigate up
- ↓ or J: Navigate down
- N or SPACE: Next slide
- Home: First slide
- End: Last slide
- B: Pause
- F: Full-screen
- S: Show slide notes
- O: Toggle overview
- . (Period or b: Turn screen black
- Esc: Escape from full-screen, or toggle overview
- Add a generator for new slides
- Add proper code highlighting
- Add an editor for the slides :)
- Add generic way to add custom JS to presentations. Maybe directly to the presentation generator
- Enhance documentation