{"id":16144394,"url":"https://github.com/ryanj/gist-reveal","last_synced_at":"2025-04-12T21:33:55.669Z","repository":{"id":66461828,"uuid":"20608383","full_name":"ryanj/gist-reveal","owner":"ryanj","description":"Gist-powered reveal.js presentations","archived":false,"fork":false,"pushed_at":"2025-01-11T17:47:29.000Z","size":4468,"stargazers_count":146,"open_issues_count":1,"forks_count":43,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-05T01:02:31.352Z","etag":null,"topics":["css","gist","javascript","presentations","revealjs","websockets"],"latest_commit_sha":null,"homepage":"http://gist-reveal.it","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-06-08T03:25:31.000Z","updated_at":"2025-01-11T17:47:32.000Z","dependencies_parsed_at":"2024-11-25T02:19:47.369Z","dependency_job_id":"5e615c43-0761-441e-b5ba-2107be15c1ce","html_url":"https://github.com/ryanj/gist-reveal","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fgist-reveal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fgist-reveal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fgist-reveal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fgist-reveal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanj","download_url":"https://codeload.github.com/ryanj/gist-reveal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248636803,"owners_count":21137527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","gist","javascript","presentations","revealjs","websockets"],"created_at":"2024-10-10T00:12:56.048Z","updated_at":"2025-04-12T21:33:55.650Z","avatar_url":"https://github.com/ryanj.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gist-reveal\n\n[Gist-reveal](http://gist-reveal.it/) is a slideshow templating service that makes it possible to view and share [reveal.js](https://github.com/hakimel/reveal.js) presentations using github's [gist](http://gist.github.com) service as a datastore.\n\nReveal.js CSS and Javascript includes are automatically provided in each page request.\n\nTry it out at: https://gist-reveal.it\n\n## Gist-powered reveal.js presentations\n\nStore revealjs [HTML](https://revealjs.com/markup/) or [Markdown](https://revealjs.com/markdown/) `\u003csection\u003e`s in a [gist](http://gist.github.com), then append your resulting gist id to any `gist-reveal` site url to view your slides:\n\n    https://gist-reveal.it/YOUR_GIST_ID\n    \nFor example, the slide sources at https://gist.github.com/af84d40e58c5c2a908dd can be viewed here:\n\n    https://gist-reveal.it/af84d40e58c5c2a908dd\n\nUse [bit.ly](http://bit.ly) or another url shortener to make these long urls easier to share, and to make enagement rates easier to track.\n\n### Broadcast slide transitions\n\nPresenters can visit [`/login`](https://gist-reveal.it/login) to configure their browser as a presentation device:\n\n    https://gist-reveal.it/login\n\n*WARNING:* Only the gist owner is allowed to broadcast slide transitions to viewers. If needed, fork the slide deck and present using the new gist ID. See the web console output for additional details.\n\nVisit [`/logout`](https://gist-reveal.it/logout) to exit presentation mode:\n\n    https://gist-reveal.it/logout\n\n### Gist-powered themes\n\nUse the \"`?theme=`\" querystring parameter to access site themes.  Available [CSS themes](https://gist-reveal.it/#/themes) include the default list of [revealjs themes](https://revealjs.com/themes/):\n\n * [revealjs black theme](http://gist-reveal.it/?theme=black#/themes)\n * [revealjs simple theme](http://gist-reveal.it/?theme=simple#/themes)\n * [revealjs league theme](http://gist-reveal.it/?theme=league#/themes)\n * [revealjs sky theme](http://gist-reveal.it/?theme=sky#/themes)\n\nIt is also possible to load a custom theme using [another gist](https://gist-reveal.it/#/gist-themes). For example:\n\n * [a dark winter theme](http://gist-reveal.it/?theme=60e54843de11a545897e#/gist-themes)\n\n### Nicer presentation paths\n\nCreating a [bit.ly](http://bit.ly) shortname for your longer `gist-reveal/gist_id` deck urls will also make your presentations available at an alternate presentation path:\n\n    http://gist-reveal.it/bit.ly/SHORTNAME\n\nExample:\n\n    http://gist-reveal.it/bit.ly/k8s-workshops\n\nMuch nicer!  Make sure to continue sending traffic to the shorter `bit.ly/shortname` url for metrics collection purposes.\n\n### Export to PDF\n\nAdd \"`print-pdf`\" to the querystring to render a printer-friendly version of your slides:\n\n    http://gist-reveal.it/YOUR_GIST_ID?print-pdf\n\nThen, [print to file](https://revealjs.com/pdf-export/#instructions) to generate the PDF\n\n## Running gist-reveal\nRun your own Gist-powered reveal.js slideshow service with `gist-reveal`\n\n### Application Config\n\nThe following environment variables can be used to configure gist-reveal:\n\nVariable Name  | Contents   |  Default Value\n---------------|------------|---------------\nDEFAULT_GIST   | The default gist id content for the site | [af84d40e58c5c2a908dd](https://gist.github.com/ryanj/af84d40e58c5c2a908dd)\nREVEAL_THEME | The site's default theme. Can be a locally bundled theme name, or a remote gist_id | [450836bbaebcf4c4ae08b331343a7886](https://gist.github.com/ryanj/450836bbaebcf4c4ae08b331343a7886) \nGH_API_TOKEN | GitHub API token | unset\nCLIENT_ID | GitHub OAuth Client ID. Required for Websocket connections | unset\nCLIENT_SECRET | GitHub OAuth Client Secret. Required for Websocket connections | unset\nPRIVATE_KEY | TLS private key provided as Env var or file: `private.key` | unset\nPUBLIC_CRT | Public TLS certificate as Env var or as file: `public.crt` | unset\nPORT | the server port | 8080\nGA_TRACKER | Google Analytics tracker token | unset\nGIST_THEMES | Allow reveal.js CSS themes to be installed dynamically via querystring \"?theme=gist_id\" | \"true\"\nSANITIZE_INPUT | Sanitize gist input. Strip script tags and iframes | \"false\"\nGIST_PATH | Load slides from a local gist repo (Disable API and Websockets) | unset\nGIST_FILENAME | Load slides from a local gist repo (Disable API and Websockets) |unset\n\nTo enable websocket connections, provide an [OAuth](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app) `CLIENT_ID` and `CLIENT_SECRET` with a redirect url configured to: `YOUR_SITE/github/callback`\n\n### Local Development\n\nInstall dependencies:\n```bash\nnpm install\n```\n\nStart the app:\n```bash\nnpm start\n```\n\nOptionally generate a [localhost certificate](https://letsencrypt.org/docs/certificates-for-localhost/) for testing https+wss connections:\n```bash\nopenssl req -x509 -out public.crt -keyout private.key \\\n  -newkey rsa:2048 -nodes -sha256 \\\n  -subj '/CN=localhost' -extensions EXT -config \u003c( \\\n   printf \"[dn]\\nCN=localhost\\n[req]\\ndistinguished_name = dn\\n[EXT]\\nsubjectAltName=DNS:localhost\\nkeyUsage=digitalSignature\\nextendedKeyUsage=serverAuth\")\n```\n\n#### Local Dev with Local Slides\n\nPrefer to develop slides using your own editor? Or, plan to make a lot of changes to your presentation sources? Try loading a local clone of your gist repo!\n\n1. Make a local clone of your gist repo in another folder:\n```bash\ngit clone git@gist.github.com:af84d40e58c5c2a908dd ../example-slides\n```\n\n2. Use the `GIST_PATH` and `GIST_FILENAME` parameters to load local slides:\n```bash\nGIST_PATH=../example-slides GIST_FILENAME=gist-reveal.it-slides.html npm start\n```\n\nWhen you are done editing, `add` and `commit` your changes then `git push` to deploy.\n\n### Containers\n\nRun the [container image](https://registry.hub.docker.com/r/ryanj/gist-reveal) locally on port `8080` using `podman` or `docker`:\n\n```bash\ndocker run --rm -p 8080:8080 ryanj/gist-reveal\n```\n\n[Environment variables](#application-config) can be passed into the container to configure the default theme, or to change the default slideshow content:\n\n```bash\ndocker run --rm -p 8080:8080 -e \"DEFAULT_GIST=YOUR_DEFAULT_GIST_ID\" ryanj/gist-reveal\n```\n\n### Kubernetes \nCreate a kubernetes `pod` and `service`, both named `gist-reveal`:\n\n```bash\nkubectl run gist-reveal --image=ryanj/gist-reveal --expose --port=8080 \\\n--env=\"DEFAULT_GIST=YOUR_DEFAULT_GIST_ID\" \\\n--env=\"GH_API_TOKEN=YOUR_GH_API_TOKEN\" \\\n--env=\"CLIENT_SECRET=YOUR_GH_CLIENT_SECRET\" \\\n--env=\"CLIENT_ID=YOUR_CLIENT_ID_VALUE\"\n```\n\n## License\n\n[gist-reveal](https://gist-reveal.it/) was created at the first [DockerCon Hackathon](https://web.archive.org/web/20140715021725/http://blog.docker.com/2014/07/dockercon-video-dockercon-hackathon-winners/) by [@ryanj](https://github.com/ryanj) and [@fkautz](https://github.com/fkautz).\n\n[Reveal.js](https://github.com/hakimel/reveal.js) is MIT licensed\nCopyright (C) 2014 Hakim El Hattab, http://hakim.se\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanj%2Fgist-reveal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanj%2Fgist-reveal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanj%2Fgist-reveal/lists"}