How to host a reveal.js presentation

Nowadays (October, 2016) you don't need to create a specific branch (gh-pages) anymore. Create your repo then select 'Settings -> Options'. There is a 'GitHub Pages' panel where you can set any branch to be published as web pages.


Bruno's answer is very good as a one-off solution. But, if a user wants to host several presentations in GitHub Pages, then they would need to repeat the procedure every time. Another approach is to use one GitHub repository for multiple presentations.

Here are the steps:

  1. Create a clean repository in GitHub (without README etc.), say presentations
  2. Initialise the git repo and link to GitHub, in Linux that would be

    mkdir presentations
    cd presentations
    git init
    git remote add origin [email protected]:username/presentations.git
    
  3. Add reveal.js as "remote" and pull the repository

    git remote add upstream [email protected]:hakimel/reveal.js.git
    git pull upstream master
    
  4. Create an empty branch for your presentation and clean the working directory

    git checkout --orphan my-fancy-presentation
    git reset --hard
    
  5. Copy presentation to current folder and commit your changes

    cp path/to/my_fancy_presentation.html .
    git add .
    git commit -m 'Initial commit'
    
  6. Switch to master and merge your presentations there

    git checkout master
    git merge my-fancy-presentation
    
  7. Push all branches to GitHub

    git push --all origin
    
  8. Set up GitHub Pages to branch master and enjoy your presentation at https://username.github.io/presentations/my_fancy_presentation.html

Now, whenever you want to add another presentation, you just need to repeat steps 4-7. Besides, whenever you want to update reveal.js, you can simply do git pull upstream master.

As an example of this approach, see https://github.com/dougmvieira/presentations.


  1. Create a new repository on GitHub

  2. Let’s call it reveal_HelloWorld

  3. Clone it on your local machine:

    git clone [email protected]:yourusername/reveal_HelloWorld.git
    
  4. Clone reveal.js on your local machine:

    git clone [email protected]:hakimel/reveal.js.git
    
  5. Move the content of reveal.js folder into the reveal_HelloWorld folder

  6. Modify the index.html file

  7. Create and switch to a new branch

    git checkout -b 'gh-pages'
    
  8. Push

    git push
    
  9. From the GitHub website repo settings:

    1. Set the ‘gh-pages’ branch as default
    2. Delete the ‘master’ branch

You are done.

The slides are published at yourusername.github.io/reveal_HelloWorld.

Source: How to deploy Reveal.js presentations on Github

Screencast: https://vimeo.com/241196662

Credit: Angelo Basile