Add CV templates: one an applicant-tracking system reads cleanly and a Europass-style one to start #2

Open
opened 2026-10-01 07:02:05 +00:00 by tiagoagueda · 0 comments
Owner

The list asks for "Templates for CVs". The core has two built-in themes, plain and classic; this plugin (#1) adds more.

What a CV template is given

  • The kinds cv and portfolio (ThemeKind on postulo.plugins.api).
  • The context the core builds (src/postulo/documents/rendering.py in the core): cv, sections (each with its label already in the document's language, and its entries), contact, document_language, document_direction, document_title and csp_nonce.
  • Two ways to write one: extend the core's base_cv.html and base_portfolio.html and fill their blocks, or write the whole document, which then owes lang and dir itself.
  • The DOCX and plain-text exports never see a theme: they are built from the document's outline. The README should say a template shapes the PDF and the preview only.

What the plugin should do

  • Start with the two postulo/postulo#241 names: a CV that an applicant-tracking system reads cleanly (one column, real headings, no text in images) and a Europass-style one.
  • Each template sets portfolio as well as cv, so that a CV and a portfolio sent together look like a pair.
  • Each honours document_direction, so an Arabic CV is laid out right to left.
  • Each carries its translations (#7) and its assets (#8), and says which paper it is made for (#9).

Decisions

  • Which templates first. Recommended: the two above, then one more with a sidebar for people who want a denser page. More arrive as they are contributed.
  • A photograph. contact carries no picture, so no template can print one. Common in some countries, discouraged in others. Recommended: none for now; a CV with a photograph is a core change, not filed here.
  • Following the core's open work. postulo/postulo#308 (which details a CV prints) and postulo/postulo#309 (a form of address) will change what contact holds. Recommended: the templates print what contact gives and choose nothing themselves.

Needs from the core

Nothing: the kinds, the context and the plugin door exist.

Done when

  • The picker on a CV offers the new templates, and each draws a CV and a portfolio in both renderers without overflow.
  • A CV in a right-to-left language is laid out right to left.
  • The applicant-tracking template's PDF yields its text in reading order when the text is extracted.

New strings go through uv run postulo-messages extract, with French and European Portuguese filled on the commit and the European Union catalogues before a tag, as in the other official plugins (#7).

From the list of template improvements of 2026-09-30.

The list asks for "Templates for CVs". The core has two built-in themes, `plain` and `classic`; this plugin (#1) adds more. ## What a CV template is given - The kinds `cv` and `portfolio` (`ThemeKind` on `postulo.plugins.api`). - The context the core builds (`src/postulo/documents/rendering.py` in the core): `cv`, `sections` (each with its label already in the document's language, and its entries), `contact`, `document_language`, `document_direction`, `document_title` and `csp_nonce`. - Two ways to write one: extend the core's `base_cv.html` and `base_portfolio.html` and fill their blocks, or write the whole document, which then owes `lang` and `dir` itself. - The DOCX and plain-text exports never see a theme: they are built from the document's outline. The README should say a template shapes the PDF and the preview only. ## What the plugin should do - Start with the two postulo/postulo#241 names: a CV that an applicant-tracking system reads cleanly (one column, real headings, no text in images) and a Europass-style one. - Each template sets `portfolio` as well as `cv`, so that a CV and a portfolio sent together look like a pair. - Each honours `document_direction`, so an Arabic CV is laid out right to left. - Each carries its translations (#7) and its assets (#8), and says which paper it is made for (#9). ## Decisions - **Which templates first.** Recommended: the two above, then one more with a sidebar for people who want a denser page. More arrive as they are contributed. - **A photograph.** `contact` carries no picture, so no template can print one. Common in some countries, discouraged in others. Recommended: none for now; a CV with a photograph is a core change, not filed here. - **Following the core's open work.** postulo/postulo#308 (which details a CV prints) and postulo/postulo#309 (a form of address) will change what `contact` holds. Recommended: the templates print what `contact` gives and choose nothing themselves. ## Needs from the core Nothing: the kinds, the context and the plugin door exist. ## Done when - The picker on a CV offers the new templates, and each draws a CV and a portfolio in both renderers without overflow. - A CV in a right-to-left language is laid out right to left. - The applicant-tracking template's PDF yields its text in reading order when the text is extracted. New strings go through `uv run postulo-messages extract`, with French and European Portuguese filled on the commit and the European Union catalogues before a tag, as in the other official plugins (#7). From the list of template improvements of 2026-09-30.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo-templates#2
No description provided.