update multiplex setup instructions (#98)

This commit is contained in:
Hakim El Hattab 2013-03-08 19:16:29 -05:00
parent 825fe51de9
commit cc869cb629
2 changed files with 43 additions and 24 deletions

View file

@ -344,17 +344,6 @@ Reveal.toggleOverview();
### Fullscreen mode ### Fullscreen mode
Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode. Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode.
## Multiplexing
The multiplex plugin allows your audience to view the slides on their own phone, tablet or laptop. As the master navigates the slides, all clients will update in real time. See a demo at [http://revealjs.jit.su/](http://revealjs.jit.su)
Configuration is via the multiplex object in index.html. To generate unique secret and token values, visit [revealjs.jit.su/token](revealjs.jit.su/token)
multiplex.secret should only be configured on those pages you wish to be able to control slide navigatoin for all clients. Multi-master configurations work, but if you don't wish your audience to be able to control your slides, set the secret to null. In this master/slave setup, you should create a publicly accessible page with secret set to null, and a protected page containing your secret.
You are very welcome to use the server running at reveal.jit.su, however availability and stability are not guaranteed. For anything mission critical I recommend you run your own server. It is simple to deploy to nodejitsu or run on your own environment.
### Known Issues
## PDF Export ## PDF Export
@ -392,8 +381,16 @@ By default notes are written using standard HTML, see below, but you can add a `
In some cases it can be desirable to run notes on a separate device from the one you're presenting on. The Node.js-based notes plugin lets you do this using the same note definitions as its client side counterpart. Include the requried scripts by adding the following dependencies: In some cases it can be desirable to run notes on a separate device from the one you're presenting on. The Node.js-based notes plugin lets you do this using the same note definitions as its client side counterpart. Include the requried scripts by adding the following dependencies:
```javascript ```javascript
{ src: '/socket.io/socket.io.js', async: true }, Reveal.initialize({
...
dependencies: [
{ src: 'socket.io/socket.io.js', async: true },
{ src: 'plugin/notes-server/client.js', async: true } { src: 'plugin/notes-server/client.js', async: true }
]
});
``` ```
Then: Then:
@ -403,6 +400,38 @@ Then:
3. Run ```node plugin/notes-server``` 3. Run ```node plugin/notes-server```
## Multiplexing
The multiplex plugin allows your audience to view the slides on their own phone, tablet or laptop. As the master navigates the slides, all clients will update in real time. See a demo at [http://revealjs.jit.su/](http://revealjs.jit.su).
Configuration is via the multiplex object in ```Reveal.initialize```. To generate unique secret and token values, visit [revealjs.jit.su/token](revealjs.jit.su/token). Below is an example configuration with the multiplex plugin enabled:
```
Reveal.initialize({
...
// Generate a unique id and secret at revealjs.jit.su/token
multiplex: {
id: '',
secret: '',
url: 'revealjs.jit.su:80'
},
dependencies: [
{ src: 'socket.io/socket.io.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'plugin/multiplex/client.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'plugin/multiplex/master.js', async: true, condition: function() { return !!document.body.classList; } },
]
});
```
```multiplex.secret``` should only be configured on those pages you wish to be able to control slide navigatoin for all clients. Multi-master configurations work, but if you don't wish your audience to be able to control your slides, set the secret to null. In this master/slave setup, you should create a publicly accessible page with secret set to null, and a protected page containing your secret.
You are very welcome to use the server running at reveal.jit.su, however availability and stability are not guaranteed. For anything mission critical I recommend you run your own server. It is simple to deploy to nodejitsu or run on your own environment.
## Theming ## Theming
The framework comes with a few different themes included: The framework comes with a few different themes included:

View file

@ -359,13 +359,6 @@ function linkify( selector ) {
theme: Reveal.getQueryHash().theme, // available themes are in /css/theme theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
// Generate a unique id and secret at http://revealjs.jit.su/token
multiplex: {
id: '',
secret: '',
url: 'revealjs.jit.su:80'
},
// Optional libraries used to extend on reveal.js // Optional libraries used to extend on reveal.js
dependencies: [ dependencies: [
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }, { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
@ -373,11 +366,8 @@ function linkify( selector ) {
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }, { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } }, { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
// { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } },
// { src: 'socket.io/socket.io.js', async: true, condition: function() { return !!document.body.classList; } },
// { src: 'plugin/multiplex/client.js', async: true, condition: function() { return !!document.body.classList; } },
// { src: 'plugin/multiplex/master.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } } { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
// { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }
] ]
}); });