{"id":26929345,"url":"https://github.com/christopherkenny/projector","last_synced_at":"2025-04-02T05:20:02.684Z","repository":{"id":284850905,"uuid":"849117385","full_name":"christopherkenny/projector","owner":"christopherkenny","description":"A Quarto template using Typst's Polylux to make slides","archived":false,"fork":false,"pushed_at":"2025-03-28T01:30:17.000Z","size":299,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T02:25:46.733Z","etag":null,"topics":["presentation","quarto","quarto-extension","quarto-template","typst","typst-lang","typst-template"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/christopherkenny.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":"2024-08-29T02:26:08.000Z","updated_at":"2025-03-28T02:16:58.000Z","dependencies_parsed_at":"2025-03-28T02:25:48.714Z","dependency_job_id":"1acb1032-a289-46e6-a1c8-cdc1a607573e","html_url":"https://github.com/christopherkenny/projector","commit_stats":null,"previous_names":["christopherkenny/projector"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopherkenny%2Fprojector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopherkenny%2Fprojector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopherkenny%2Fprojector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopherkenny%2Fprojector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/christopherkenny","download_url":"https://codeload.github.com/christopherkenny/projector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246759074,"owners_count":20829033,"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":["presentation","quarto","quarto-extension","quarto-template","typst","typst-lang","typst-template"],"created_at":"2025-04-02T05:20:02.185Z","updated_at":"2025-04-02T05:20:02.666Z","avatar_url":"https://github.com/christopherkenny.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# `projector` Format \u003cimg src='projector.png' align=\"right\" height=\"150\" /\u003e\n\nA Quarto format for making slides with [polylux](https://github.com/andreasKroepelin/polylux).\nThis template tries to replicate the Quarto-side syntax for [Beamer](https://quarto.org/docs/presentations/beamer.html), [PowerPoint](https://quarto.org/docs/presentations/powerpoint.html), and [Revealjs](https://quarto.org/docs/presentations/revealjs/) slides.\n\n\u003c!-- pdftools::pdf_convert('template.pdf') --\u003e\n![[template.qmd](template.qmd)](example.gif)\n\n## Design principles\n\nIn order of importance:\n\n1. Replicate the syntax of existing Quarto beamer slides so that `projector` can be used as a drop-in extension for the beamer type, up to any additional LaTeX-specific styling.\n\n2. Incorporate `polylux` features automatically, so that functions like `#slide` or `#toolbox.register-section` never need to be modified directly, but are fully controlled by regular Quarto features.\n\n3. Minimize nonstandard defaults. By setting as few features up automatically as possible, this should be customizeable using a header `.typ` file. When an option would be hard to control otherwise, it should be controlled via a YAML option in the Quarto doc.\n\n## Installing\n\n```bash\nquarto use template christopherkenny/projector\n```\n\nThis will install the format extension and create an example `.qmd` file\nthat you can use as a starting place for your slides.\n\n## Using `projector` to make Polylux slides\n\nThis template includes several custom arguments that can be supplied in the YAML header.\n\n- `mainfont`: sets font (see options with `quarto typst fonts`)\n- `margin`: sets page margins\n- `papersize`: the paper size to use (choices listed [here](https://typst.app/docs/reference/layout/page/))\n- `toc`: whether to display the table of contents\n- `toc_title`: title of the table of contents\n- `background-image`: the path to an image to put as the background\n- `handout`: display as a handout, removing incrementals\n- `theme`: a file name containing your customizations\n\n## Controlling Title, ToC, and Sections Slides\n\nTo modify these three particular slides, you need to adjust them in your template file.\nSimply redefine the functions that produce them with your own version.\n\nThe function signatures should be as follows:\n\n- `title-slide(title, subtitle, authors, date)`\n- `toc-slide(toc_title)`\n- `section-slide(name)`\n\n### Using other Typst functions\n\nThis extension comes preloaded with my [`typst-function`](https://github.com/christopherkenny/typst-function) Quarto extension to make it easy to use bits of Typst for formatting.\nThis feature is entirely optional, but may simplify making tweaks to your slides.\n\nDivs and spans that match names listed in the `functions` key are translated to Typst functions of the same name.\nAdding this to your metadata:\n\n```yaml\nfunctions: align\n```\n\nAllows you to write:\n\n```md\n::: {.align arguments=\"right\"}\nthis\n:::\n```\n\nSpans function similarly, so you can style like:\n\n```md\n[other text]{.align arguments=right}\n```\n\n\n## License\n\nThis template is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Thoughts from the author\n\nI actually quite dislike beamer and similar slide styles that are automatically generated.\nI find that they are (1) typically ugly and (2) encourage bad presenting habits.\nIf it's too easy to go from the paper to the presentation, people rarely think through the presentation.\nMy view is that presentations and papers have different goals.\nA paper needs to convey all of the scientific components that support why your work advances knowledge.\nA presentation is more of an infomercial for the paper.\nThat means you can tell the story of the paper.\nIt should be truthful and scientific, but it should also be interesting.\nTell the practical pieces, tell the hiccups along the way, make it clear how you came up with the project.\nFinally, it's okay if it looks nice: don't be worried that an aesthetically pleasing presentation implies you spent a little time on form instead of just function.\nHopefully, this extension helps bridge the gap between form and function, by using the prettier `polylux` with the simplicity of `beamer` via Quarto.\n\nThe logo for this *project* (haha) is inspired by `polylux`'s logo.\nThe name is also inspired by`polylux`'s name origin story, where to me, an updated \"beamer\" is a \"projector\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristopherkenny%2Fprojector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchristopherkenny%2Fprojector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristopherkenny%2Fprojector/lists"}