{"id":18838623,"url":"https://github.com/beeware/podium","last_synced_at":"2025-04-13T07:50:22.046Z","repository":{"id":43463059,"uuid":"62566864","full_name":"beeware/podium","owner":"beeware","description":"A Markdown-based native presentation tool","archived":false,"fork":false,"pushed_at":"2024-12-18T06:57:11.000Z","size":1839,"stargazers_count":185,"open_issues_count":9,"forks_count":28,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-04-04T05:08:30.970Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beeware.png","metadata":{"files":{"readme":"README.rst","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["freakboy3742"],"custom":["http://beeware.org/bee/join"]}},"created_at":"2016-07-04T14:06:45.000Z","updated_at":"2025-03-07T03:34:50.000Z","dependencies_parsed_at":"2024-01-09T01:56:50.307Z","dependency_job_id":"c8b47ea9-8188-45a6-a754-ef73d414b1d3","html_url":"https://github.com/beeware/podium","commit_stats":{"total_commits":100,"total_committers":13,"mean_commits":"7.6923076923076925","dds":"0.29000000000000004","last_synced_commit":"9b995547b341cbc99009cbae6ea67e9e429c47b9"},"previous_names":["pybee/podium"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beeware%2Fpodium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beeware%2Fpodium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beeware%2Fpodium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beeware%2Fpodium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beeware","download_url":"https://codeload.github.com/beeware/podium/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248681494,"owners_count":21144700,"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":[],"created_at":"2024-11-08T02:40:06.233Z","updated_at":"2025-04-13T07:50:22.022Z","avatar_url":"https://github.com/beeware.png","language":"JavaScript","funding_links":["https://github.com/sponsors/freakboy3742","http://beeware.org/bee/join"],"categories":[],"sub_categories":[],"readme":".. image:: https://beeware.org/project/projects/applications/podium/podium.png\n    :width: 72px\n    :target: https://beeware.org/project/projects/applications/podium\n\nPodium\n======\n\n.. image:: https://img.shields.io/discord/836455665257021440?label=Discord%20Chat\u0026logo=discord\u0026style=plastic\n   :target: https://beeware.org/bee/chat/\n   :alt: Discord server\n\nA markup-based slide presentation tool.\n\nWhy?\n----\n\nDevelopers go to conferences. And when they do, they need slide decks.\n\nUnfortunately, while presentation tools like `Keynote`_ and `PowerPoint`_\nare great for business presentations, they aren't well suited to the\nneeds of developers. The mainstay of developer presentations -- code\nsamples -- are generally painful to add to a Keynote presentation.\n\nThese presentation tools also come from a WYSIWYG (What You See Is What You\nGet) tradition. This can be powerful, because it makes it easy to put\nanything you want onto a slide. But it can also be painful, because you\nend up spending all your time pushing pixels into the right place, instead\nof focussing on the content of your talk. And if you want to make a style\nchange, you may need to apply that change manually to every slide. The lessons\nof separating content from markup can't be applied to a WYSIWYG world.\n\nOn top of all that, the document formats for Keynote and Powerpoint are\nbinary blobs -- they don't lend themselves to version control, collaborative\nediting, and so on.\n\nThe developer response to this has been to use HTML5. Recent years have seen\nthe development of a number of HTML-based presentation tools, like prezi_,\n`deck.js`_, `keydown`_ and `showoff`_. These tools exploit the power of HTML5\nto make full screen presentations.\n\nHowever, by using browser technology as the basis for these tools, they miss\none very important feature of WYSIWYG presentation tools: presenter mode.\nOne of the big features of Keynote and Powerpoint is that they aren't just\ndecks of slides -- they have presenter notes and timing tools, and the\ndisplay shown to the audience isn't the same as the display shown to the\npresenter. Web-based presentation tools are often missing presenter mode.\n\nOr, if they *do* have a presenter mode, they rely on you being able to\nindependently resize two separate web browsers, and they won't provide any\nassistance in hiding all the browser toolbars, menus, titlebars, and so on.\nThis can be done, but it's awkward.\n\nMany of these tools are also online-only. They assume that you have a good WiFi\nconnection, and will be able to display your content live off the internet...\nwhich if you've ever been to a developer conference, you'll know is a risky\nproposition.\n\nPodium attempts to bridge the gap between these two poles. It is comprised of:\n\n* A simple, text-based markup format, focussed on the needs of developer\n  presentations.\n* A graphical presentation tool that has a presenter display independent of\n  the slide display.\n\n.. _prezi: http://prezi.com\n.. _deck.js: http://imakewebthings.com/deck.js/\n.. _keydown: https://github.com/infews/keydown\n.. _showoff: https://github.com/drnic/showoff\n\nQuickstart\n----------\n\nOfficial releases of Podium can be downloaded from the `GitHub releases page\n\u003chttps://github.com/beeware/podium/releases\u003e`__.\n\nDownload the binary for your platform of choice, and run it. This should open a\nfile dialog, prompting you to open a ``.podium`` slide deck. An example Podium\nslide deck is also available in the releases folder. Unzip the deck, and open\nit in Podium.\n\n.. note::\n\n    The Linux AppImage format is a cross-platform binary that should run on\n    any Linux distribution using GLibC 2.23 or later - this includes Ubuntu\n    16.04 and later, Fedora 24 and later, and others.\n\n    After downloading the AppImage, you may need to mark the AppImage file as\n    executable (``chmod +x Podium-*.AppImage``) first. In Linux, ``.podium``\n    files appear as directories; select the directory and click ``Open``.\n\nControls from here are keyboard based:\n\n* CMD-Shift-P - Enter presentation mode; or, if in presentation mode, Pause timer\n* CMD-P - Open presentation in Print view\n* Esc - Exit presentation mode\n* CMD-Tab - Switch displays\n* Right/Left arrows - Next/previous slide\n* Down/Up arrows - Next/previous slide\n* Enter - Next slide\n* Home/End - first/last slide\n* CMD-A - Switch aspect ratio between 16:9 and 4:3\n* CMD-R - Reload slide deck\n* CMD-T - Reset timer\n\nIf you're on Linux, \"CMD\" is the Control key.\n\nDeveloping Podium\n-----------------\n\nPodium uses the `BeeWare \u003chttps://beeware.org\u003e`__ suite of tools and libraries -\nmost notably, the `Toga \u003chttps://github.com/beeware/toga\u003e`__ widget toolkit, and\nthe `Briefcase \u003chttps://github.com/beeware/briefcase\u003e`__ packaging tool.\n\nTo develop Podium, create a virtual environment, and install the BeeWare tools.\n\nIf you're using Linux, you'll need to install some system packages first::\n\n    # Ubuntu/Debian\n    $ sudo apt-get update\n    $ sudo apt-get install python3-dev libgirepository1.0-dev libcairo2-dev libpango1.0-dev libwebkit2gtk-4.0-37 gir1.2-webkit2-4.0\n\n    # Fedora\n    $ sudo dnf install pkg-config python3-devel gobject-introspection-devel cairo-devel cairo-gobject-devel pango-devel webkitgtk3\n\n\nThen, you can create a virtual environment and install the BeeWare tools::\n\n    $ mkdir beeware\n    $ cd beeware\n    $ python3 -m venv venv\n    $ source venv/bin/activate\n    (venv) $ pip install --pre beeware\n\nNow that you have the code, you can clone the Podium repository and run it in\ndeveloper mode::\n\n    (venv) $ git clone https://github.com/beeware/podium.git\n    (venv) $ cd podium\n    (venv) $ briefcase dev\n\nThis should open the same file dialog as before.\n\nPackaging with Briefcase\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nUse `Briefcase`_ to package this repository as a standalone application::\n\n    $ briefcase package\n\nDepending on your platform, this will produce a ``macOS`` folder containing\na Podium DMG file, or a ``linux`` folder containing a ``.AppImage`` file.\n\n.. note::\n\n    Packaging cross-distribution Linux binaries is a complex process; See `the\n    notes on AppImage packaging\n    \u003chttps://briefcase.readthedocs.io/en/latest/reference/platforms/linux/appimage.html\u003e`__\n    in the Briefcase documentation for more details.\n\nOverriding Default themes\n-------------------------\n\nDefine a `style.css` file to override the default theme. You can use the\n**Debugging** section to help you create a theme that suites your style.\n\nDebugging\n---------\n\nIf you need to debug the CSS for a slide, you may want to use the \"inspect\nelement\" feature of the webview. You may need to enable manually enable the\nfeature at an operating system level:\n\n* **macOS**: at a terminal prompt, run:\n\n    defaults write org.beeware.podium WebKitDeveloperExtras -bool true\n\nDocumentation\n-------------\n\nDocumentation for Podium can be found on `Read The Docs`_.\n\nCommunity\n---------\n\nPodium is part of the `BeeWare suite`_. You can talk to the community through:\n\n* `@pybeeware on Twitter`_\n\n* `Discord \u003chttps://beeware.org/bee/chat/\u003e`__\n\nWe foster a welcoming and respectful community as described in our\n`BeeWare Community Code of Conduct`_.\n\nContributing\n------------\n\nIf you experience problems with Podium, `log them on GitHub`_. If you\nwant to contribute code, please `fork the code`_ and `submit a pull request`_.\n\n.. _BeeWare suite: https://beeware.org/\n.. _Keynote: https://en.wikipedia.org/wiki/Keynote_(presentation_software)\n.. _PowerPoint: https://en.wikipedia.org/wiki/Microsoft_PowerPoint\n.. _Briefcase: https://github.com/beeware/briefcase\n.. _Read The Docs: https://podium-app.readthedocs.io/en/latest/\n.. _@pybeeware on Twitter: https://twitter.com/pybeeware\n.. _beeware/general: https://gitter.im/beeware/general\n.. _BeeWare Community Code of Conduct: https://beeware.org/community/behavior/\n.. _log them on Github: https://github.com/beeware/podium/issues\n.. _fork the code: https://github.com/beeware/podium\n.. _submit a pull request: https://github.com/beeware/podium/pulls\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeeware%2Fpodium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeeware%2Fpodium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeeware%2Fpodium/lists"}