Building
pnpm pdf # every document in cv-tex/
pnpm pdf cv # one
pnpm pdf --tex-only # only the .tex files, no TeX installation needed
pnpm pdf --verbose # with LaTeX's full outputnpm run pdf # every document in cv-tex/
npm run pdf -- cv # one
npm run pdf -- --tex-only # only the .tex files, no TeX installation needed
npm run pdf -- --verbose # with LaTeX's full outputIt needs latexmk and biber, from any current TeX distribution (TeX Live, MacTeX, MiKTeX). LaTeX's output is shown only when something fails — then TeX's own error, the line it happened on, and where the full log is.
What the build writes
cv-tex/
cv.tex, cv.yml, preamble.tex, prose/ your files, never modified
cv.pdf the result
generated/cv/ everything else: section .tex files,
vitakit-cv.cls, and all of latexmk's
auxiliary outputObsolete generated section files are removed on each build, so deleting a data source cannot silently leave its old entries in the PDF. Remove its \vitasection line too; an input for a missing source is an error, not an empty selection. Bibliography output is regenerated even when no publications remain.
cv-tex/generated/ is disposable; latexmk's auxiliary files are kept between builds, and you can delete the directory for a completely clean build.
Without a TeX installation
After pnpm pdf --tex-only, a plain latexmk cv.tex in cv-tex/ works as well, from an editor, another machine or a CI action: cv-tex/latexmkrc lets LaTeX find the generated document class. The CV workflow included with the GitHub Pages and Cloudflare presets does exactly this, and attaches the PDF to the run as an artifact; see publishing.
The PDF is never part of the website: see privacy.