Skip to content

vitakit 0.3.0

Choose a tag to compare

@behackl behackl released this 27 Oct 21:44
· 10 commits to main since this release

Publication lists

Which publications are shown, in what order and in which groups is now
declared once per list in content/publication-lists.yml. A page or a PDF
only says where a list goes and under which heading, so the same list shows
the same publications on the website and in the PDF:

# content/publication-lists.yml
recent:
  limit: 3
<VitaPublications list="recent" title="Recent publications" />
\vitapublications[Recent publications]{recent}
  • Select with where (any BibTeX field; keywords matches one of an
    entry's keywords), keys (exactly these, in this order), since/until
    and limit.
  • Sort by date (default), year, title, source or any field.
  • Group by status, year or any field; entries without it go under
    otherLabel ("Other").
  • vitakit status, vitakit explain publications and
    vitakit explain publication-list <name> say what each list selects, what
    each setting removed, the citation keys left, and where it is shown. A
    misspelt status, field or citation key is an error naming the list.
  • New projects declare all (grouped by status, on /publications/ and in
    the PDF) and recent (the three newest, on the home page).

See Publications and lists.

New commands

vitakit add publication-list <name> declares a list and shows it on a page or in a PDF, asking what it should select if no options are given; checked against publications.bib before anything is written
vitakit migrate updates a project written for an earlier vitakit, showing every change and asking before writing; --dry-run only shows; safe to run again

Updating from 0.2

pnpm add @anja.codes/vitakit@latest
pnpm vitakit migrate --dry-run   # see what would change
pnpm vitakit migrate             # make the changes
pnpm vitakit validate

Step by step, with what may look different afterwards:
Updating vitakit.

Breaking changes

vitakit migrate converts all of these, except where noted:

  • <VitaPublications> takes list and title only. groups,
    headings, where, limit, … on the page fail the build; declare a list
    instead.
  • \vitainput{publications} is replaced by
    \vitapublications[Heading]{list}, and publications.groups in a
    document's .yml by a list.
  • schemas/publications.ts: groups/defaultGroup are now
    statuses/defaultStatus.
  • usePublications() is replaced by usePublicationList('<list>').
    migrate points to each use, but you change it by hand.
  • Copies of VitaPublications.vue or publications.eta made with
    vitakit eject/customize need updating by hand; migrate lists them.
  • PDF order: publications in a PDF now follow the list's order, as on the
    website: newest first, then the order in publications.bib. Before, biblatex
    sorted them by year and then author. Each group is numbered from 1.
  • vitakit explain takes the kind first when a name is shared, as add
    does: explain section talks, explain document cv,
    explain publication-list recent, explain page cv. --section and
    --document are gone. A name alone still works while it is unique.

Fixes

  • A syntax error in a project's TypeScript file (e.g. schemas/*.ts) names
    the line, shows the code with a caret, and hints at a missing comma.
  • A schemas/publications.ts that does not load is reported as such, without
    follow-up errors about statuses.
  • The diff of a planned edit shows each change with its own context, instead
    of one block from the first changed line to the last.
  • Help text that starts with an example keeps its indentation.
  • create-vitakit: the SSH/rsync deployment preset uses GitHub Actions
    (.github/workflows/rsync.yml) instead of Forgejo Actions.

Docs

Publications have their own place throughout: a feature on the home page, a
section in the concepts, a "Publications and lists" page, and tutorial
chapter 4 rewritten around lists. "Updating vitakit" walks through updating.
The tutorial's customization chapter and the explanations of schemas and file
paths were made easier to read (#16).