Multiplexing
Jens Lechtenbörger
Created: 2024-12-18 Wed 12:44
1. What is this?
- Multiplexing
means that your audience views your presentation on their devices
- State of your presentation mirrored on their devices
- Three ingredients
- You control the master presentation
- Publicly accessible URL for client presentations
- Publicly accessible socket.io server to distribute master events to clients
2.1. Basic setup
- Please follow instructions in
README of reveal.js
- Obtain your own socketID and secret and use them as in header of
this presentation
- Point audience to URL of client presentation
- Replace
.html
to obtain client URL: _client.html
- Maybe generate with
org-re-reveal-publish-to-reveal-client
(see GitLab CI for client presentation
below)
- (Or export with
C-c C-e v v
as usual, which generates
client and master presentations)
2.2. Presentation in Git?
- Obviously, you should not publish the master presentation
containing the secret
- Otherwise, your audience might use the master URL and mess with
your presentation
- My approach
- Use separate file, say
private/secret.org
- Add
private
to .gitignore
- Add
#+REVEAL_MULTIPLEX_SECRET:
0815...
to file private/secret.org
- In presentation, replace
#+REVEAL_MULTIPLEX_SECRET:
0815...
with #+INCLUDE: "private/secret.org"
2.2.1. GitLab CI for client presentation
- Publish presentations with
emacs-reveal
as GitLab Pages
- In
.gitlab-ci.yml
create bogus secret in before_script
:
mkdir private
"echo '#+REVEAL_MULTIPLEX_SECRET: 42' > private/secret.org"
- Note quotation marks above
- Use
org-re-reveal-publish-to-reveal-client
to publish client
presentation
2.2.2. Local master presentation
- Generate master presentation locally
- Present with Firefox from local file system
- This works with multiplexing and speaker notes
- (May need to set
security.fileuri.strict_origin_policy
to
false
if local fonts are refused; use separate profile then)
- Without
node
installation mentioned in README of reveal.js