mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 08:36:25 +00:00
feat(add-template): make /add-template engine-agnostic (#238)
* feat(add-template): make /add-template engine-agnostic so Typst can register alongside LaTeX /add-template hardcoded a lualatex|xelatex|pdflatex engine enum and .tex assumptions, so custom templates could only be LaTeX. Replace the enum with a declared source extension + compile command, so any toolchain (Typst via `typst compile`, or others) registers the same way stock LaTeX templates did. Stock CV/cover-letter pipeline stays LaTeX and untouched (per #181). Also fixes a latent bug this surfaced: apply.md's compile step ignored the ACTIVE-TEMPLATE block and always ran lualatex/xelatex on .tex regardless of the active template, and .gitignore's cv/main_*.tex pattern would not have ignored a non-.tex draft (personal-data leak). Both now resolve from the declared extension/command. * fix(add-template): satisfy security_guards on the .gitignore Typst fix security_guards.py pins the personal-data ignore rules by exact string and gates negations through an allowlist, so broadening cv/main_*.tex and cover_letters/cover_*.tex to *.* (for .typ drafts) needed a matching update to REQUIRED_IGNORE_RULES. Also tighten the .gitignore itself per review: keep the re-include negations at .tex instead of widening them to *.* too. The stock example files are always LaTeX, so .tex is enough to re-include them, and a wildcard negation would have also re-included build artifacts (main_example.pdf/.aux) that should stay ignored. ALLOWED_IGNORE_NEGATIONS needs no change since the negations are unchanged. Also adds a CHANGELOG entry under Unreleased for the Typst/custom-template support.
This commit is contained in:
+6
-6
@@ -1,6 +1,6 @@
|
||||
# Custom Templates
|
||||
|
||||
This folder holds user-registered LaTeX templates, managed by the `/add-template` command. The framework works out of the box with its stock templates (moderncv for CVs, `cover.cls` for cover letters) — this folder only gets content when you register your own.
|
||||
This folder holds user-registered templates (LaTeX, Typst, or any other toolchain with a declared compile command), managed by the `/add-template` command. The framework works out of the box with its stock templates (moderncv for CVs, `cover.cls` for cover letters) — this folder only gets content when you register your own.
|
||||
|
||||
## Layout
|
||||
|
||||
@@ -8,9 +8,9 @@ This folder holds user-registered LaTeX templates, managed by the `/add-template
|
||||
templates/
|
||||
├── cv/
|
||||
│ └── <template-name>/
|
||||
│ ├── template.tex # Profile-agnostic skeleton ([PLACEHOLDER] tokens)
|
||||
│ ├── TEMPLATE.md # Manifest: engine, fonts, page limit, style rules, pitfalls
|
||||
│ ├── *.cls / *.sty # Custom class/style files (if the template needs them)
|
||||
│ ├── template.<ext> # Profile-agnostic skeleton ([PLACEHOLDER] tokens), e.g. template.tex or template.typ
|
||||
│ ├── TEMPLATE.md # Manifest: source extension, compile command, fonts, page limit, style rules, pitfalls
|
||||
│ ├── *.cls / *.sty # Custom class/style files, or Typst packages (if the template needs them)
|
||||
│ └── fonts/ # Bundled font files (if not using system fonts)
|
||||
└── cover_letters/
|
||||
└── <template-name>/
|
||||
@@ -19,8 +19,8 @@ templates/
|
||||
|
||||
## How it works
|
||||
|
||||
- `/add-template` interviews you for the template's instructions (compile engine, fonts, style rules, page limit), stores the files here, and runs a mandatory test compile before registering anything.
|
||||
- Activating a template adds a managed block to `05-cv-templates.md` or `06-cover-letter-templates.md`, which is what `/apply` reads when drafting — no other wiring needed.
|
||||
- `/add-template` interviews you for the template's instructions (source extension, compile command, fonts, style rules, page limit), stores the files here, and runs a mandatory test compile before registering anything.
|
||||
- Activating a template adds a managed block to `05-cv-templates.md` or `06-cover-letter-templates.md`, which is what `/apply` reads when drafting and compiling — no other wiring needed.
|
||||
- `/add-template --list` shows registered templates; `/add-template --use <name>` switches; `/add-template --use default` reverts to the stock templates.
|
||||
|
||||
Templates are stored with `[PLACEHOLDER]` tokens instead of personal data, so they are safe to commit and share.
|
||||
|
||||
Reference in New Issue
Block a user