Skip to content

ryanj/gist-reveal

Repository files navigation

Gist-Reveal

Gist-powered Revealjs presentations

Gist-Reveal.it is an open source slideshow templating service that makes it easy to create, edit, present, and share Reveal.js slides on the web by using github's gist service as a datastore.

gist-reveal.it/YOUR_GIST_ID

Store any Revealjs-compatible HTML or Markdown content in a gist, then append your resulting gist id to the end of any gist-reveal site url to view the resulting presentation:

http://gist-reveal.it/GIST_ID_CONTAINING_REVEALJS_SLIDE_CONTENT

Example:

http://gist-reveal.it/af84d40e58c5c2a908dd

Use bitly or another url shortener to make these long urls easier to share, and to make enagement rates easier to count.

gist-reveal.it/bit.ly/SHORTNAME

Creating a bit.ly shortname for your longer gist-reveal/gist_id deck urls will also make your presentations available at an alternate presentation path:

http://gist-reveal.it/bit.ly/SHORTNAME

Example:

http://gist-reveal.it/bit.ly/k8s-workshops

Much nicer! Make sure to continue sending traffic to the shorter bit.ly/shortname url for metrics collection purposes.

Gist-powered Slideshow Themes

Available CSS themes include the default reveal.js list of themes, but can be easily extended by storing new themes in a gist:

Conference organizers can host their own modified gist-reveal templating service (with its own default theme), to provide a consistent look for all presentations at an event.

Application Config

The following environment variables can be used to autoconfigure the application:

Variable Name Contents Default Value
DEFAULT_GIST The default gist id slideshow content for the site af84d40e58c5c2a908dd
REVEAL_THEME The site's default theme. Should be a locally bundled theme name, or a remote gist_id. 450836bbaebcf4c4ae08b331343a7886
GH_API_TOKEN GitHub API token unset
GA_TRACKER Google Analytics tracker token unset
PORT The server port number 8080
IP_ADDR The server IP address 0.0.0.0
GIST_THEMES Allow reveal.js CSS themes to be installed dynamically "url/?theme=gist_id". Disable this feature by setting this config to the string "false". "true"
REVEAL_SOCKET_SECRET the site's broadcast token (alphanumeric) randomly generated

See index.js for more information about the site's configuration options.

Broadcasting Slide Transitions

Administrators can configure the application's REVEAL_SOCKET_SECRET to broadcast slide transitions using Reveal's socket Multiplexing support.

Presenters who know the site's REVEAL_SOCKET_SECRET value can configure their browser as a presentation device using the setToken querystring param:

http://YOUR_REVEAL_HOST_URL/?setToken=REVEAL_SOCKET_SECRET_VALUE

This token will be stored in the browser's localStorage area (per host url) as localStorage.secret. To reconfigure your browser as a client device (as a listener), use the clearToken querystring param:

http://YOUR_REVEAL_HOST_URL/?clearToken

Running Gist-Reveal.it

Gist-reveal makes it easy to run your own Gist-powered RevealJS slideshow service

Local Development

The simplest way to get started with this project, is to clone a copy of the source from github (git clone http://github.com/ryanj/gist-reveal && cd gist-reveal), then run the app locally with npm install followed by npm start.

Kubernetes

Create a kubernetes pod and service, both named gist-reveal:

kubectl run gist-reveal --image=ryanj/gist-reveal --expose --port=8080 \
--env="DEFAULT_GIST=YOUR_DEFAULT_GIST_ID" \
--env="GH_API_TOKEN=YOUR_GH_API_TOKEN" \
--env="REVEAL_SOCKET_SECRET=0P3N-S0URC3" \
--env="GA_TRACKER=YOUR_GA_TRACKER"

Podman or Docker

Run the container image locally on port 8080:

podman run --rm -p 8080:8080 ryanj/gist-reveal

Environment variables can be passed into the container to configure the websocket relay, or to change the default slideshow content:

podman run --rm -p 8080:8080 -e "REVEAL_SOCKET_SECRET=0P3N-S0URC3" -e "DEFAULT_GIST=YOUR_DEFAULT_GIST_ID" ryanj/gist-reveal

License

gist-reveal.it was created at the first DockerCon Hackathon by @ryanj and @fkautz.

Reveal.js is MIT licensed Copyright (C) 2014 Hakim El Hattab, http://hakim.se