{"id":23150984,"url":"https://github.com/coatless-quarto/panelize","last_synced_at":"2025-08-17T19:32:12.967Z","repository":{"id":240275812,"uuid":"801306766","full_name":"coatless-quarto/panelize","owner":"coatless-quarto","description":"Quarto extension that formats code cells into a tabset panel, displaying static and interactive code cells side-by-side with code cell options.","archived":false,"fork":false,"pushed_at":"2024-06-15T15:13:21.000Z","size":935,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-06-16T16:35:06.770Z","etag":null,"topics":["quarto","quarto-extension","tabset","tabset-panels","wasm"],"latest_commit_sha":null,"homepage":"https://quarto.thecoatlessprofessor.com/panelize/","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coatless-quarto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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},"funding":{"github":["coatless"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2024-05-16T01:29:06.000Z","updated_at":"2024-06-15T15:12:02.000Z","dependencies_parsed_at":"2024-05-17T18:42:23.917Z","dependency_job_id":"49d1f4a6-5471-48e1-a48c-6f3015cf0bf3","html_url":"https://github.com/coatless-quarto/panelize","commit_stats":null,"previous_names":["coatless-quarto/panelize"],"tags_count":1,"template":false,"template_full_name":"coatless-devcontainer/quarto-extension-dev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coatless-quarto%2Fpanelize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coatless-quarto%2Fpanelize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coatless-quarto%2Fpanelize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coatless-quarto%2Fpanelize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coatless-quarto","download_url":"https://codeload.github.com/coatless-quarto/panelize/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230160656,"owners_count":18182731,"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":["quarto","quarto-extension","tabset","tabset-panels","wasm"],"created_at":"2024-12-17T18:19:41.718Z","updated_at":"2024-12-17T18:19:42.292Z","avatar_url":"https://github.com/coatless-quarto.png","language":"Lua","funding_links":["https://github.com/sponsors/coatless"],"categories":[],"sub_categories":[],"readme":"# panelize: Tabset Code Cells in Quarto \u003cimg src=\"logo-panelize.png\" align =\"right\" alt=\"\" width =\"150\"/\u003e\n\nThe `quarto-panelize` extension allows you to tabbify existing code cells to show their source or add interactivity.\n\n## Installation\n\nTo install the `quarto-panelize` extension, follow these steps:\n\n1. Enter a Quarto project.\n\n2. Open your terminal inside the Quarto project.\n\n3. Run the following command:\n\n```bash\nquarto add coatless-quarto/panelize\n```\n\nIf you wish to make your code interactive, please install the following Quarto extensions:\n\n```sh\n# For Python\nquarto add coatless-quarto/pyodide\n\n# For R\nquarto add coatless/quarto-webr\n```\n\nThese commands will download and install the extension as well as any dependencies under the `_extensions` subdirectory of your Quarto project. If you are using version control, ensure that you include this directory in your repository.\n\n## Usage\n\nFor each document, place the `panelize` filter in the document's header:\n\n```yml\nfilters:\n  - panelize\n```\n\nThen, wrap existing R or Python code cells using a `Div` and specify the a panelize class. \nSupported options include:\n\n| Class         | Description                                                                         |\n|---------------|-------------------------------------------------------------------------------------|\n| `.to-source`  | Convert a code cell to show rendered output and its source.                         |\n| `.to-pyodide` | Convert code cell from static Python code to interactive Python code using Pyodide. |\n| `.to-webr`    | Convert code cell from static R code to interactive R code using webR.              |\n\n\n### Display Source\n\nFor example, if we have a code cell with R that we want to show its options, then we use:\n\n```` md\n:::{.to-source}\n```{r}\n#| echo: fenced\n#| eval: true\n1 + 1\n```\n:::\n````\n\nThis will generate output equivalent to: \n\n```` md\n:::{.panel-tabset}\n### Results\n```{r}\n#| eval: true\n1 + 1\n```\n### Source\n```{{r}}\n#| eval: true\n1 + 1\n```\n:::\n````\n\n### Interactivity\n\nFor creating a tabset that contains both rendered results and interactive option, modify the document header and place the desired extension filter **after** `panelize`, e.g.\n\n```yml\nfilters:\n  - panelize\n  - pyodide\n  - webr\n```\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e Order matters! Please make sure to place the filters after `panelize`.\n\u003e Otherwise, the interactivity filter will *not* detect the code cell!\n\u003e\n\nNext, wrap the existing code cell using a `Div` with a class of either `.to-pyodide` or `.to-webr`.\n\nFor Python, that looks like: \n\n````md\n:::{.to-pyodide}\n```{python}\n4 + 5\n```\n:::\n````\n\nFor R, that looks like: \n\n````md\n:::{.to-webr}\n```{r}\n1 + 1\n```\n:::\n````\n\n## Acknowledgements\n\nThanks to [@mcanouil](https://github.com/mcanouil) and [@cscheid](https://github.com/cscheid) who provided great insight into approaching this problem by re-orienting it in a way that is more managable. Please see the [full discussion](https://github.com/quarto-dev/quarto-cli/discussions/9646).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoatless-quarto%2Fpanelize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoatless-quarto%2Fpanelize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoatless-quarto%2Fpanelize/lists"}