This project is a Typst-based resume, based on an early version of imprecv. It uses a Meson build system and custom post-processing to overcome Typst's current limitations regarding native PDF attachment linking.
The following CLI tools are required to build the project (tested versions in parentheses):
- Typst (>= 0.14.2): The core typesetting engine.
- Meson (>= 1.11.1): The build configuration system.
- Ninja (>= 1.13.2): The backend build executor.
- qpdf (>= 12.3.2): Used for PDF structural transformations.
- jq (>= 1.8.1): Used for JSON-based PDF link patching.
The following font families must be installed for correct rendering:
- Inter: Used for the main body.
- IBM Plex Serif: Used for headings.
- IBM Plex Mono: Used for the footer/end note.
To generate the resume artifacts, use the following commands:
# Initialize the build directory
meson setup build
# Optional: Configure build options (e.g., PDF standard, YAML embedding)
# Use 'meson configure build' to see all current settings
meson configure build -Dpdf_standard=2.0 -Dembed_yml=true
# Compile all targets (PDF + HTML)
meson compile -C buildThe final outputs will be located at:
build/resume.pdf(Patched PDF with optional attachment)build/resume.html(Experimental HTML version)
pdf_standard: The PDF standard to enforce conformance with (e.g.,1.7,a-2b,ua-1). Default isnone.embed_yml: Boolean. Iftrue(default), embeds theresume.ymlsource file into the PDF and enables the clickable attachment link in the footer. Iffalse, generates a standard PDF and omits the attachment logic.
The build system performs the following steps:
typst_compile: Compilesresume.typinto a PDF. Ifembed_ymlis enabled, it produces an intermediateresume_raw.pdfwith the embedded file.patch_pdf_links: (Only ifembed_yml=true) Post-processes the PDF usingqpdfandjqto convert theattach:resume.yamlplaceholder link into a native PDF Go-To-Embedded action.resume_html: Generates an experimental HTML version of the resume using Typst's development features.
Typst currently lacks native support for links that trigger the opening of embedded attachments (see Typst Issue #6200). This project circumvents that by using a custom protocol (attach:) which is then transformed into a native PDF Go-To-Embedded action during the build phase.
This project includes a GitHub Action (.github/workflows/build.yml) that automatically:
- Installs all required dependencies and the latest Typst compiler.
- Builds the PDF and HTML versions of the resume.
- Uploads the results as artifacts, renamed to include the current date.