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.
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.
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.
Available CSS themes include the default reveal.js list of themes, but can be easily extended by storing new themes in a gist:
- a theme from the CoreOS team
- a theme for OpenShift fans
- the revealjs black theme
- the revealjs simple theme
- the revealjs league theme
- the revealjs sky theme
Conference organizers can host their own modified gist-reveal templating service (with it's own default theme), to provide a consistent look for all presentations at an event.
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_CLIENT_SECRET | GitHub client secret | unset |
GH_CLIENT_ID | GitHub client ID | 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 plugin/hosted/index.js
for more information about the site's configuration options.
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
Gist-reveal makes it easy to run your own Gist-powered RevealJS slideshow service
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
.
To create a kubernetes deployment
and NodePort
service
, both named gist-reveal
:
kubectl run gist-reveal --image=ryanj/gist-reveal --expose --port=8080 --service-overrides='{ "spec": { "type": "NodePort" } }' \
--env="DEFAULT_GIST=YOUR_DEFAULT_GIST_ID" \
--env="GH_CLIENT_SECRET=YOUR_GH_CLIENT_SECRET" \
--env="GH_CLIENT_ID=YOUR_GH_CLIENT_ID" \
--env="REVEAL_SOCKET_SECRET=0P3N-S0URC3" \
--env="GA_TRACKER=YOUR_GA_TRACKER"
Minikube users should be able to open the new service in their browser by running:
minikube service gist-reveal
To run the docker image locally on port 8080
:
docker pull ryanj/gist-reveal
docker run -d -p 8080:8080 ryanj/gist-reveal
Environment variables can be passed into the Docker container in order to configure the websocket relay, or to change the default slideshow content:
docker run -e "REVEAL_SOCKET_SECRET=0P3N-S0URC3" -e "DEFAULT_GIST=YOUR_DEFAULT_GIST_ID" ryanj/gist-reveal
Build from GitHub, using Source2Image:
oc process -v REVEAL_SOCKET_SECRET=1234 -f https://raw.githubusercontent.com/ryanj/gist-reveal/master/gist-reveal-github.json | oc create -f -
Deploy a pre-built image from DockerHub:
oc process -v REVEAL_SOCKET_SECRET=1234 -f https://raw.githubusercontent.com/ryanj/gist-reveal/master/gist-reveal-dockerhub.json | oc create -f -
Or, install one or both of the templates to make these projects easier to launch (from the web, or via oc new-app templatename
):
oc create -f https://raw.githubusercontent.com/ryanj/gist-reveal/master/gist-reveal-dockerhub.json
oc create -f https://raw.githubusercontent.com/ryanj/gist-reveal/master/gist-reveal-github.json
oc process gistreveal -v DEFAULT_GIST=${DEFAULT_GIST},GH_CLIENT_ID=${GH_CLIENT_ID},GH_CLIENT_SECRET=${GH_CLIENT_SECRET},REVEAL_SOCKET_SECRET=${REVEAL_SOCKET_SECRET} | oc create -f -
If you are building from GitHub, using S2I, you should be able to trigger a build with the following command:
oc start-build gistreveal
To view the logs for the build, use osc get builds
to find its name, and supply that name to the command oc build-logs
. For example: oc build-logs gistreveal-1
.
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