Changelog
Source:NEWS.md
curriculr 0.3.0
Breaking changes
read_cv_data()now requires theopenxlsx2package instead ofreadxl. Removereadxland addopenxlsx2to any explicit dependencies in your own projects that callread_cv_data()directly.create_cv()no longer falls back to a bundled placeholder image whenphoto = NULLin render mode. Omittingphotonow produces a single-column header layout with no image. Supply a path explicitly to restore the two-column layout with a profile photo.
New features
Resume variant.
create_cv()andread_cv_data()gain avariantargument ("cv"or"resume"). Whenvariant = "resume", only rows whereinclude_in_resumeis checked in the workbook are included in the rendered output. Every section sheet now carries aninclude_in_resumecolumn for row-level control.Font Awesome icons.
create_cv()gains ause_iconsargument ("fontawesome"or"none"). When"fontawesome"(the default), contact fields in the CV header are rendered with Font Awesome icons via the Typst@preview/fontawesomepackage. Fields with no icon equivalent fall back to plain text with a warning. The new exported functioncv_contact_line()assembles the contact line and can be called directly in custom templates.Workbook-controlled theming. A new
themesheet in the workbook controls fonts, colors, and page layout. Keys map directly to the Typst style block and the Quartoformat: typst:YAML block, both of which are now injected bycreate_cv()via sentinel substitution. If thethemesheet is absent, built-in defaults are used and individual missing keys are filled from defaults, so partial theme sheets are supported.add_section(). New exported function that adds a new sheet to an existing curriculr workbook and registers it in thesectionscontrol sheet. The new sheet is pre-populated with the standard column spine includinginclude_in_resume. Thesectionsrow is appended or updated in place without touching the sheet’s formatting.No-photo header layout. When
photo = NULL,CV.qmdnow emits a single full-width centered header block instead of a two-column grid with an empty left column.
Improvements
-
read_cv_data()reads thethemesheet as a named character vector keyed by thekeycolumn, parallel to theprofilesheet. ReturnsNULLif the sheet is absent. -
read_cv_data()coerces all section columns to character after import, including numeric year columns and logical boolean columns, giving the rendering pipeline a uniform contract. -
read_cv_data()gains a.coerce_col()internal helper that normalizesNAstrings produced byas.character(NA)back toNA_character_. -
create_cv()injectsvariantanduse_iconsintoCV.qmdas Quarto params so the Quarto subprocess applies the same filtering and icon settings as the calling R session. - The
cv-data-template.xlsxtemplate workbook gains athemesheet with all twelve default theming keys and adescriptioncolumn for in-workbook documentation. Thereadmesheet is updated to document thethemesheet and to reflect thatinclude_in_resumeis now present on all section sheets. - Internal helpers
.cv_theme_defaults(),.resolve_theme(),.build_format_block(),.build_typst_theme_block(), and.fa_icon_map()are added to support theming and icon assembly.
curriculr 0.2.0
Breaking changes
-
create_cv()has been redesigned. The old scaffolding behavior is replaced by two distinct modes triggered by whetherdatais supplied or not.
New features
-
create_cv()scaffold mode (no arguments) copies the template workbook and placeholder image to the current working directory and prints step-by-step instructions. Does not render. -
create_cv()render mode (withdataandphoto) reads the workbook, writesCV.qmd, and rendersCV.pdfinto the same directory as the workbook. - Added
sectionssheet support. The workbook now controls which sections are rendered and in what order. Row order is render order. Deleting a row excludes a section. Adding a row for any sheet that follows the standard column schema renders it automatically. - Added
resolve_date_fun()which mapsdate_funtoken strings ("date","year","month_year","year_only","none") to R date formatting functions. -
typst_escape(),cv_section(), andresolve_date_fun()are now exported. -
inst/templates/CV.qmdsimplified – section rendering is now driven by iterating overcv$sections. The template uses sentinel strings thatcreate_cv()replaces with resolved paths at render time.
Improvements
-
read_cv_data()skips thereadmesheet entirely. -
read_cv_data()validates thesectionssheet column names on read. -
read_cv_data()returns thesectionssheet in row order without sorting. - Non-ASCII characters in cli messages replaced with Unicode escapes for CRAN portability.
curriculr 0.1.0
- Initial release.
-
read_cv_data()reads a curriculr-formatted Excel workbook into a named list of data frames. -
cv_render_section()renders a CV section from a data frame into raw Typst output inside a Quarto document. -
create_cv()scaffolded a new CV project with a template workbook, placeholder image, and ready-to-render Quarto document.