Repository navigation
feat(public-profile): set the résumé as a designed document in both renderers - #274
Merged
Merged
Conversation
…enderers Pagination keeps a heading with its date line and summary and lets bullet lists flow, so page one is no longer two-thirds blank. The standalone document embeds latin subsets of Source Serif 4 and Inter Tight (OFL) as base64 font faces, so the headless Chromium in the production image never falls back to Courier. Type scale drops to 10.5pt/1.35 with 18mm margins; dates render as 'Dec 2024 – Present' on the heading line; education leads with the institution; skills sit after the summary; projects are a compact indented list with their bullets as a sub-list; a running header repeats the name on pages after the first. The Svelte page mirrors the same order and hierarchy with the palette from #272 unchanged. Closes #233
…rst bullet Review finding: the item-level break-inside rule also kept a project and its whole sub-list together, which could push a long project to the next page and leave blank space. Project items may now break; the sub-list avoids starting on a new page so the project line never ends a page alone.
…et covers The white bullet (U+25E6) is outside the embedded latin subsets, so Chromium pulled a fallback serif for that one glyph.
Owner
Author
|
Pushed 10a8f2f: the project sub-bullet marker is now an en dash, which the embedded latin subsets cover; U+25E6 had pulled a fallback serif for that one glyph (seen when rendering a real snapshot). Validation re-run at 10a8f2f (specs, format-check, lint, check, build, knowledge:check all green); review-cycle round 3 recall on codex-sol: CLEAN. |
willgriffin
changed the base branch from
claude/project-bullets-snapshot-696186
to
main
October 29, 2026 18:49
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.
Closes #233. Stacked on #273 (project bullets); GitHub retargets this PR to
mainwhen #273 merges and its branch is deleted. Not to be merged from the authoring session.What changes
Will's design review of the deployed six-page PDF, applied to both the standalone document (
public-profile-render.ts, which feeds the PDF) and the Svelte page (PublicProfileResume.svelte):.keep); bullet lists flow across pages; headings carrybreak-after: avoid; each bullet stays whole; a project item may paginate but its first sub-bullet stays with the project line. Page one is full instead of two-thirds blank.app.htmlloads, are embedded as base64@font-facein the standalone document, so the headless Chromium in the production image (fonts-liberation only) never falls back to Courier. Generated modulepublic-profile-fonts.ts+ OFL notice + regeneration scriptscripts/vendor-public-profile-fonts.ts. No monospace face anywhere.renderHtmlToPdf), no gap between a heading and its date.formatPublicProfileDateRangerendersDec 2024 – Present/Sep 2003 – 2008from the snapshot'sYYYY-MM/YYYYstrings, right-aligned on the heading line.Known limit: Chromium has no
@pagemargin boxes orcounter(page), and@happyvertical/pdfdoes not pass Puppeteer header/footer templates, so there is no page number yet. Follow-up belongs upstream in@happyvertical/pdf(header/footer template passthrough).Verification
Synthetic six-position fixture rendered through
renderPublicProfilePdfwith local Chrome: 6 pages → 3 pages;pdffontslists only embeddedSourceSerif4andInterTightsubsets;pdftotext -bboxshows no orphaned glyph at any page foot (two Chromium print quirks found and worked around: duplicated outside list markers, and the next page's repeated header leaking its ascender ink onto the previous page).Spec extended for date formatting, heading-line dates, education order, keep wrapper, project list, section order, running header, embedded faces, margins, break rules.
pnpm format-check,pnpm lint, sitecheck(svelte-check 0 errors), sitebuild,pnpm knowledge:check, and the public-profile specs (60 tests) pass. The Svelte page was compiled and type-checked but not opened in a browser in this session.Review cycle
iolaus-233-resume-design, standard risk, codex-sol (gpt-6.1-sol, balanced): round 1 one accepted P2 (project items could not paginate), fixed in the second commit; round 2 recall CLEAN.