Skip to content

vitakit 0.2.0

Choose a tag to compare

@behackl behackl released this 27 Oct 21:57
· 29 commits to main since this release

The vitakit command

One command answers questions about a project and makes the common changes,
showing every change before it is made:

vitakit status every section, where it appears on the website and in the PDF, what is wrong
vitakit explain <section|document|/route/> where it comes from and where it goes; --field prints lines that show a field
vitakit validate everything a build checks, without building or LaTeX
vitakit add section <name> the file, a schema drafted from its entries, one line on a page and in a PDF
vitakit add field <section> <name> one more field a section accepts
vitakit add page <name> a page that can show sections, in the menu
vitakit customize <section> a component, a PDF template or a schema of your own
vitakit pdf build the PDFs (concise output; TeX's own error on failure)
vitakit verify check the generated website
vitakit eject <file> take over a shared component, the citation style or the LaTeX class

Breaking changes

  • Scripts. build:cv is now pdf, check:static is gone. In an existing
    project's package.json:
    "pdf": "vitakit pdf",
    "check": "pnpm typecheck && pnpm generate && vitakit verify"
    (npm: npm run typecheck && npm run generate && vitakit verify.)
  • Binaries. vitakit-build-cv and vitakit-check are removed; use
    vitakit pdf and vitakit verify. --no-pdf is --tex-only.
  • Commands. vitakit add <name> is vitakit add section <name>;
    vitakit list is vitakit eject --list; ejecting a schema is
    vitakit customize <section> --schema --copy (publications:
    vitakit customize publications); ejecting a template is
    vitakit customize <section> --pdf.
  • linked replaces institution and link. Every "name that may link"
    is { label, url? }. YAML may still write { name, url }; code reading
    .name (e.g. profile.affiliation.name in a page) must read .label.
    Schemas importing institution or link import linked (and
    requiredLink for links that need a URL). The context-line part kind is
    'linked', INSTITUTION_FIELDS is LINKED_FIELDS.

New

  • VitaSection takes where (like where in a PDF document's .yml) and
    title (heading and anchor, hidden without entries). The scaffold's
    cv.vue is one <VitaSection id title /> line per section, and cv.tex
    writes headings inline, \vitasection[Heading]{id}.
  • where values may be numbers; an entry's own year field wins over the
    year of its date.
  • One broken schema no longer hides the other sections during development.
  • The LaTeX class uses T1 font encoding under pdfLaTeX, so „, ł, ő and similar
    characters typeset.
  • Shared helper asLinkedList for templates.