{"id":38529612,"url":"https://github.com/mcanouil/quarto-revealjs-tabset","last_synced_at":"2026-01-17T06:53:22.905Z","repository":{"id":326007308,"uuid":"1103381201","full_name":"mcanouil/quarto-revealjs-tabset","owner":"mcanouil","description":"Quarto extension enabling proper tabset navigation with keyboard controls and PDF export support for Reveal.js presentations.","archived":false,"fork":false,"pushed_at":"2026-01-01T19:13:40.000Z","size":35,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-07T03:15:47.840Z","etag":null,"topics":["quarto","quarto-extension","revealjs","revealjs-plugin","stable","tabset","tabset-panels"],"latest_commit_sha":null,"homepage":"https://m.canouil.dev/quarto-revealjs-tabset/","language":"JavaScript","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/mcanouil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"mcanouil","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-11-24T19:50:20.000Z","updated_at":"2026-01-01T19:13:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mcanouil/quarto-revealjs-tabset","commit_stats":null,"previous_names":["mcanouil/quarto-revealjs-tabset"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mcanouil/quarto-revealjs-tabset","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcanouil%2Fquarto-revealjs-tabset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcanouil%2Fquarto-revealjs-tabset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcanouil%2Fquarto-revealjs-tabset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcanouil%2Fquarto-revealjs-tabset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcanouil","download_url":"https://codeload.github.com/mcanouil/quarto-revealjs-tabset/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcanouil%2Fquarto-revealjs-tabset/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28502972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["quarto","quarto-extension","revealjs","revealjs-plugin","stable","tabset","tabset-panels"],"created_at":"2026-01-17T06:53:22.800Z","updated_at":"2026-01-17T06:53:22.892Z","avatar_url":"https://github.com/mcanouil.png","language":"JavaScript","funding_links":["https://github.com/sponsors/mcanouil"],"categories":[],"sub_categories":[],"readme":"# Reveal.js Tabset Extension For Quarto\n\nA Reveal.js plugin that brings proper tabset support to Quarto presentations.\nThis extension enables fragment-based navigation through panel tabsets, allowing smooth transitions between tabs using keyboard navigation.\n\n## Features\n\n- **Fragment Navigation**: Tabs are treated as fragments, enabling smooth keyboard-based navigation.\n- **PDF Export Support**: Correct tab state is preserved when exporting presentations to PDF.\n- **Multiple Tabsets**: Support for multiple tabsets per slide.\n- **Nested Fragments**: Fragments within tabs are properly indexed and navigated.\n- **Bidirectional Navigation**: Navigate forwards and backwards through tabs seamlessly.\n\n## Installation\n\n```bash\nquarto add mcanouil/quarto-revealjs-tabset\n```\n\nThis will install the extension under the `_extensions` subdirectory.\nIf you are using version control, you will want to check in this directory.\n\n## Usage\n\n### Basic Setup\n\nAdd the plugin to your Reveal.js presentation:\n\n```yaml\n---\ntitle: \"My Presentation\"\nformat:\n  revealjs: default\nrevealjs-plugins:\n  - tabset\n---\n```\n\n### Creating Tabsets\n\nUse Quarto's native panel tabset syntax to create tabs in your slides:\n\n```markdown\n## Slide with Tabset\n\n:::: {.panel-tabset}\n\n### Tab 1\n\nContent for the first tab.\n\n### Tab 2\n\nContent for the second tab.\n\n### Tab 3\n\nContent for the third tab.\n\n:::\n```\n\n### Navigation\n\n- Use **arrow keys** or **space bar** to navigate through tabs.\n- Press **right arrow** or **space** to advance to the next tab.\n- Press **left arrow** to return to the previous tab.\n- Tabs are treated as fragments in the presentation flow.\n\n## How it Works\n\nThe plugin automatically:\n\n1. Detects all panel tabsets (`.panel-tabset`) in your slides.\n2. Assigns fragment indices to tab content and any nested fragments.\n3. Creates invisible fragment triggers for tab switching.\n4. Listens to fragment events to switch tabs during navigation.\n5. Ensures correct tab state during PDF export.\n\n## PDF Export\n\nFor proper PDF export with separate slides for each tab state, you must enable the `pdf-separate-fragments` option in your document YAML:\n\n```yaml\nformat:\n  revealjs:\n    pdf-separate-fragments: true\n```\n\nThis ensures that each tab appears on a separate page in the exported PDF, allowing viewers to see all tab content sequentially.\n\n## Example\n\nHere is the source code for a comprehensive example: [example.qmd](example.qmd).\n\nOutput of `example.qmd`:\n\n- [Reveal.js](https://m.canouil.dev/quarto-revealjs-tabset/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcanouil%2Fquarto-revealjs-tabset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcanouil%2Fquarto-revealjs-tabset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcanouil%2Fquarto-revealjs-tabset/lists"}