Skip to content

Major overhaul to the PDF generation pipeline by switching from Playwright-based PDF rendering to a new Typst-based pipeline#5

Merged
EtienneLescot merged 6 commits intomainfrom
typst
Feb 24, 2026
Merged

Major overhaul to the PDF generation pipeline by switching from Playwright-based PDF rendering to a new Typst-based pipeline#5
EtienneLescot merged 6 commits intomainfrom
typst

Conversation

@EtienneLescot
Copy link
Copy Markdown
Owner

This pull request introduces a major overhaul to the PDF generation pipeline by switching from Playwright-based PDF rendering to a new Typst-based pipeline. It also adds a comprehensive Typst template for generating CV PDFs, updates build scripts and CI workflows, and makes minor improvements to project metadata.

Key changes:

PDF Generation Pipeline Overhaul

  • Added a new script, build-pdf-typst.js, which generates all CV PDF variants (French/English × dark/light) using Typst, including argument parsing, binary detection, preprocessing, and compilation logic. (build-pdf-typst.js)
  • Updated build.js to use the Typst pipeline for PDF generation if available, falling back to the legacy Puppeteer method otherwise. (build.js) [1] [2]
  • Added new npm scripts for Typst PDF builds in package.json (e.g., build:pdf:typst, build:pdf:typst:fr, build:pdf:typst:en). (package.json)

CI/CD and Build Process Updates

  • Updated GitHub Actions workflows to install Typst instead of Playwright, and switched PDF build steps to use the Typst pipeline. (.github/workflows/build-deploy.yml, .github/workflows/build-pdf-commit.yml) [1] [2]
  • Removed Playwright installation from build-all-branches.js, as it is no longer needed. (build-all-branches.js)

Typst Template Addition

  • Added a complete Typst template for the CV in typst/cv.typ, including theme definitions, layout, and all content sections, designed to closely match the web version's appearance. (typst/cv.typ)

Content and Metadata Fixes

  • Updated Open Source project links in both English and French locale files to use full https://github.com/... URLs for correctness. (locales/en.yml, locales/fr.yml) [1] [2]

References:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

- Introduced a new Typst CV template (cv.typ) with customizable themes and structured layout.
- Added a preprocessing script (preprocess.js) to convert YAML locale files into JSON for the Typst template.
- Updated package.json with new build commands for generating PDFs using Typst in different locales (fr, en).
- Replaced the accent bullet glyph with a small filled circle graphic.
- Introduced a new `section-heading` function for consistent styling of section titles.
- Removed decorative prefixes from section boxes to simplify the layout.
- Updated section boxes for profile, skills, experiences, formation, languages, and interests to use the new heading style.
…nch locales

style(typst): adjust margins, leading, and spacing for improved layout in CV

refactor(typst): streamline project and mission sections in CV for better readability
@EtienneLescot EtienneLescot merged commit b92df7b into main Feb 24, 2026
1 check failed
@EtienneLescot EtienneLescot deleted the typst branch February 24, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant