fix(resume): escape < to fix rendercv 'unclosed label' error#29
Merged
Conversation
…label The Portfolio Template entry's bullet "deploy to GitHub Pages in <10 min" landed on personal in PR #26 with an unescaped <, which Typst (rendercv's backend) interprets as the start of a <label> token — failing the build with "unclosed label" and skipping the PDF regeneration. Fix: escape with double backslash in YAML (\\<), matching the pattern already used elsewhere in the resume (\\<0.22%, \\<5s, \\>95%, etc.). After YAML parse → \< on the wire → Typst treats as literal <. Verified locally: rendercv v2.3 (CI version) renders the PDF successfully after the fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR #26 introduced an unescaped `<` in a resume bullet (`"deploy to GitHub Pages in <10 min"`), which Typst (rendercv's renderer) interprets as the start of a `` token. The build that ran after merge failed with "unclosed label" at the rendercv step → no PDF regeneration → site is currently deployed without the freshly-rendered PDF.
Fix
One-line YAML escape, matching the pattern already used elsewhere in the resume (`\<0.22%`, `\<5s`, `\>95%`, `\>99.9%`):
```diff
```
YAML double-quoted `\\<` → parses as `\<` → Typst treats as literal `<`.
Reproduction + verification
Locally with rendercv v2.3 (matching CI):
```
Before fix:
An error occurred: unclosed label
❌ Error running rendercv
After fix:
✅ rendercv completed successfully
✅ Copied Subhayu_Kumar_Bala_CV.pdf → client/public/resume.pdf
```
Failed run for reference
https://github.com/subhayu99/subhayu99.github.io/actions/runs/24991878686/job/73179185700
Why this slipped past CI on PR #26
PR #26 was just a YAML content change with no CI-level rendercv step on personal-branch PRs (the deploy workflow only fires on merge-to-personal, not on PR opens). A one-time `npm run generate-resume:prod` smoke before merging would have caught it. Worth considering as a follow-up: add a render-pdf check on PRs that touch `resume.yaml` so this can't happen again.