feat: add sidebar-cv Typst theme with typography/color settings#2
Conversation
Add a new "Sidebar CV" Typst theme inspired by the user's CV design. Features a tinted left sidebar with photo, name, headline, summary, skills, languages, and contact details, with the main content area on the right for professional experience and other sections. Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/ffb0aacb-46e9-4725-b797-661aeab6cca3 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
- Split name across two lines with wide 8pt tracking - Larger 26pt name, regular weight (not bold) to match original - Bold italic headline at 12pt - Sidebar section headings: 12pt, 2pt tracking, centered gray line - Main section headings: 16pt, 2pt tracking, teal accent - Entry titles: 11pt bold uppercase with pipe separator - Date/location line: 8.5pt small caps - Body text: paragraph style with 14pt first-line indent - Contact block includes full name above address - Sidebar padding and main padding adjusted for balance Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/594f2a8d-264d-4452-b4dc-b72043d0aea0 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a new adapted Typst resume theme (sidebar-cv) to the resume renderer, providing a two-column layout with a tinted sidebar intended for photo/summary/contact content while keeping experience and other sections in the main column.
Changes:
- Added
sidebar-cvto the generated Typst theme enums/labels/descriptions. - Added a new
sidebar-cvtheme manifest (theme.json) registered as anadaptedtheme. - Implemented the
sidebar-cvTypst template (main.typ) with sidebar + main-column rendering driven byresume-data.json.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| shared/src/generated/typst-themes.ts | Registers sidebar-cv in the generated theme list/metadata. |
| orchestrator/src/server/services/resume-renderer/typst-themes/sidebar-cv/theme.json | Adds the theme manifest for the new adapted theme. |
| orchestrator/src/server/services/resume-renderer/typst-themes/sidebar-cv/main.typ | Adds the full Typst template implementing the sidebar CV layout. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…nder, add render test Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/5cdbc21b-75a7-404a-b924-11244bd099c5 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/e3118850-ef0c-4c4f-8d81-c09166de85dc Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/e3118850-ef0c-4c4f-8d81-c09166de85dc Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/e3118850-ef0c-4c4f-8d81-c09166de85dc Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/e3118850-ef0c-4c4f-8d81-c09166de85dc Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/b170f5ab-08d8-4b0e-b5df-5e3a42fa5364 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/b170f5ab-08d8-4b0e-b5df-5e3a42fa5364 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/b170f5ab-08d8-4b0e-b5df-5e3a42fa5364 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
|
@copilot when selecting typst compact or classic I now see this error: Fix root cause |
…ons to resolve __HEADING_FONT__ in headlineBlock Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/66941e30-cbe6-44db-b58a-545f85c9091b Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Fixed in c33f5d0. Root cause: in The fix reorders the call so |
|
In our new sidebar-cv theme, only the first page is rendered. When I change to anopther typst theme, i see multiple pages (correctly). Analyse and fix rootcause. @copilot |
- types.ts: add LatexResumeOrderedSectionKey type, sectionOrder field in LatexResumeDocument, and type aliases (ResumeRenderDocument, NormalizeResumeJsonOptions, etc.) - document.ts: add ORDERABLE_SECTION_KEYS, getOrderedSectionKeys(), improved stripHtml preserving bold/italic tags, sectionOrder field in normalizeResumeJsonToLatexDocument, buildResumeRenderDocument alias - index.ts: export buildResumeRenderDocument alongside normalizeResumeJsonToLatexDocument - typst.ts: add escapeRawTypst + HTML-aware escapeTypstText, renderOrderedCoreSections, convertDocFieldsToTypst; wire sectionOrder into buildTypstDocument; use convertDocFieldsToTypst for adapted themes - typst.test.ts: add section ordering, HTML formatting, and convertDocFieldsToTypst tests; import convertDocFieldsToTypst - document.test.ts: add "preserves basic formatting tags and strips other HTML tags" test Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/fad5eadd-65e5-48a3-8dda-1d0de30b38e6 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
…egex comment Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/fad5eadd-65e5-48a3-8dda-1d0de30b38e6 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
|
@copilot carefully review and resolve the merge conflicts |
…, kanban, section-ordering) Merge upstream commits: - 4d86871 Profile items in header (DaKheera47#553) - e183cdd Show bold text in local PDF renderers (DaKheera47#551) - 199ad9c fix: kanban horizontal auto-scroll (DaKheera47#550) - 60107ef chore: release 0.8.0 - 239dde3 Ordering resume sections (DaKheera47#545) Conflict resolutions: - types.ts: keep LatexResumeStyle/LatexResumeStyleOverrides (our feature) - document.ts: keep buildStyle/normalizeColorToHex/componentToHex/clamp (our feature) - document.test.ts: keep color normalization test (our feature) - index.ts: use NormalizeResumeJsonOptions, keep LatexResumeStyleOverrides import - typst.ts: keep LatexResumeStyleOverrides import, simplified tagStack.pop(), normalizeTypstDocumentPicturePath; remove duplicate renderOrderedCoreSections brought in by merge - typst.test.ts: keep picture path normalization tests (our feature) Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Resolved in be73aae. The upstream had moved forward 5 commits since our merge base (
All 35 resume-renderer tests pass. |
… resolveTypstStyleOverrides return type Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/b3e79194-7bbc-4a92-9a61-53ab3e09f241 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
@copilot see here for a list of failing checks: https://github.com/DaKheera47/job-ops/pull/549/checks
2s
Run biome ci .
orchestrator/src/client/App.tsx:5:1 FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━
✖ The imports and exports are not sorted.
ℹ Safe fix: Organize Imports (Biome) Checked 884 files in 1950ms. No fixes applied. ✖ Some errors were emitted while running checks. Error: Process completed with exit code 1. ⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/client/pages/settings/index.test.tsx [ src/client/pages/settings/index.test.tsx ] ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 237 passed (238) npm error Lifecycle script 17s
Error: src/client/pages/settings/index.test.tsx(7,22): error TS2307: Cannot find module '../api' or its corresponding type declarations. |
…aths in settings/index.test.tsx Agent-Logs-Url: https://github.com/tamaygz/job-ops/sessions/0418b07a-41f6-4e0a-98d6-f26d1433b952 Co-authored-by: tamaygz <92460164+tamaygz@users.noreply.github.com>
... Fixed in ac1ed22. Two root causes:
|

This pull request adds a new "Typst Theme Style" section to the settings page, allowing users to customize fonts and colors for Typst-rendered PDF resumes. It introduces new form fields, updates default and null payloads, and integrates the new settings into the navigation, form handling, and data mapping logic. Additionally, it refactors file and import paths for consistency with the new structure.
New Typst Theme Style Section and Settings:
TypstStyleSettingsSectioncomponent that allows users to override fonts and colors for Typst PDF resumes, including custom font pickers and color pickers with validation and previews. (orchestrator/src/client/pages/settings/components/TypstStyleSettingsSection.tsx)orchestrator/src/client/pages/settings/index.tsx) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]Refactoring and File Organization:
SettingsPagefiles and updated import paths throughout the codebase to use the new lowercasesettingsdirectory, improving consistency and organization. (orchestrator/src/client/App.tsx,orchestrator/src/client/App.test.tsx,orchestrator/src/client/pages/settings/index.test.tsx) [1] [2] [3]These changes collectively enhance the flexibility and user experience for customizing Typst-rendered resumes and improve the maintainability of the settings code.