Skip to content
@quarto-vitae

quarto-vitae

Quarto Vitae hex logo

Quarto Vitae

Quarto extensions for writing CVs, résumés, and biographies.

quarto-vitae.github.io

Every template here shares the same entry syntax: a listing is a table inside a div with a style, written either by hand

::: {.entries style="detailed"}
| what             | with                | when      |
|------------------|---------------------|-----------|
| Ph.D. in Physics | University of Paris | 1891-1895 |
:::

or printed by a code cell, tagged with the same style:

```{r}
#| echo: false
#| vitae:
#|   style: detailed
#|   fields:
#|     what: degree
#|     with: institution
#|     when: years
education |> filter(completed)
```

The two are equivalent, but the code cell is usually the more useful of the pair: your CV data lives in one data frame, and filter(), arrange() and the rest of R, Python or Julia are what turn it into a job-specific CV — one filter(...) away from a version tailored to a particular application, without hand-editing a table.

Because the syntax is shared, switching designs is a one-line change to format: — the same document renders in whichever of the templates below you point it at.

Templates

Template Design Install
awesomecv Awesome-CV by Byungjin Park — a LaTeX CV with a matching cover letter format. quarto use template quarto-vitae/awesomecv
hyndman The CV style used by Rob J Hyndman — a shaded header box and coloured sans-serif section headings. quarto use template quarto-vitae/hyndman
latexcv All seven designs from jankapunkt/latexcv, from a plain centred résumé to a tinted sidebar — one repo, seven format: values. quarto use template quarto-vitae/latexcv

Rendering these needs a LaTeX installation (quarto install tinytex if you have none). Each repository's README covers its YAML options, listing styles, and colour/font customisation in full.

Creating a new template

Templates are built on curriculum, the Lua filter that every template above embeds. It is the shared machinery that lets a .entries table become a CV listing in any format, and it's what "teaches" an ordinary Quarto extension to speak the vitae entry syntax:

  • An author writes a listing as a table, or a code cell prints one and tags it with #| vitae: {style: ..., fields: ...}.
  • curriculum finds that data, applies any fields renaming, and hands each entry to your template's handler for that style — one small pandoc template per listing shape (entries/detailed.tex, entries/brief.tex, ...).
  • Everything else — an author's YAML header, section headings, colours — is ordinary Quarto format code with no filter involvement.

So building a new template means writing the usual Quarto extension (a document class, a pandoc template, fonts) plus a handler per listing style you support, and embedding curriculum into it with:

quarto add quarto-vitae/curriculum --embed yourcv

The full guide — _extension.yml conventions, resolving and overriding handlers, style-naming conventions, and the embedding workflow in detail — is at quarto-vitae.github.io/creating-templates, with awesomecv as a working template to read alongside it.

Popular repositories Loading

  1. awesomecv awesomecv Public

    A Quarto vitae template for Awesome-CV

    TeX 3

  2. quarto-vitae.github.io quarto-vitae.github.io Public

    Documentation for using and creating Quarto Vitae formats

    CSS 2

  3. hyndman hyndman Public

    A Quarto vitae template created and used by Rob Hyndman

    Lua 2

  4. latexcv latexcv Public

    A Quarto vitae template for latexcv

    TeX 2

  5. highlight-authors highlight-authors Public

    Quarto extension for highlighting specific authors in your document

    Lua 1

  6. .github .github Public

    1

Repositories

Showing 7 of 7 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…