Skip to content

Add build system, rendering scripts, assets and GitHub Pages workflow for generated CV#2

Merged
CybotTM merged 1 commit into
mainfrom
codex/refactor-cv-repository-to-cv-as-code-ltsq4x
May 10, 2026
Merged

Add build system, rendering scripts, assets and GitHub Pages workflow for generated CV#2
CybotTM merged 1 commit into
mainfrom
codex/refactor-cv-repository-to-cv-as-code-ltsq4x

Conversation

@CybotTM

@CybotTM CybotTM commented May 10, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Convert the repository to a source-of-truth workflow where Markdown in src/ is rendered into public/ artifacts for GitHub Pages.
  • Provide a reproducible local and CI build that produces HTML and PDF outputs while allowing a fallback when external tools are not available.
  • Replace the previous monolithic generated HTML and styling with a maintainable asset pipeline and clearer project layout.

Description

  • Add a Makefile with targets build, html, pdf, index, check and clean, and with PANDOC/WEASYPRINT detection and fallbacks to bundled Python scripts.
  • Add Markdown source files under src/ (cv-executive.de.md, cv-technical.de.md, cv-full.private.md) and move/remove the old generated HTML/PDF and style.css.
  • Add rendering fallbacks: scripts/render_html.py to produce simple HTML from Markdown and scripts/render_pdf.py to emit a minimal PDF when weasyprint is not available.
  • Add presentation assets in assets/style.css, commit generated public/ artifacts (index.html, cv-*.html, cv-*.pdf), update README.md to document the workflow, and replace .gitignore with new patterns.
  • Add a GitHub Actions workflow .github/workflows/build.yml to build and upload a Pages artifact on pushes to main, installing pandoc and weasyprint and intentionally forcing the fallback renderers by setting PANDOC=__missing_pandoc__ and WEASYPRINT=__missing_weasyprint__ during the make build step.

Testing

  • No automated tests were executed as part of this change, but a CI workflow was added to run make build and publish public/ to GitHub Pages on pushes to main.
  • The repository now includes a make check target to verify generated artifacts are committed via git diff --exit-code public/ for future CI checks.

Codex Task

- Expand executive (de) and technical (de) source CVs with more substance
- Refresh assets/style.css with extended typography, layout and print styles
- Tweak scripts/render_html.py output to use the new asset path
- Update README to reflect the source-of-truth workflow
- Regenerate public/ HTML and PDF artifacts so CI's diff check passes

Drops the local-only src/cv-full.private.md that codex accidentally
committed — the .gitignore pattern src/*private* continues to exclude it.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings May 10, 2026 14:26
@CybotTM
CybotTM force-pushed the codex/refactor-cv-repository-to-cv-as-code-ltsq4x branch from 50e6b13 to 08c9f6d Compare May 10, 2026 14:26
@CybotTM
CybotTM merged commit 05f61f9 into main May 10, 2026
4 checks passed
@CybotTM
CybotTM deleted the codex/refactor-cv-repository-to-cv-as-code-ltsq4x branch May 10, 2026 14:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR moves the repo toward a “CV as source” workflow by updating the Markdown CV sources, improving the fallback HTML renderer, refreshing styling, and committing updated generated public/ HTML artifacts intended for GitHub Pages publishing.

Changes:

  • Updated the German executive and technical CV Markdown sources and regenerated corresponding public/ HTML pages.
  • Extended the fallback HTML renderer to support inline bold and Markdown links.
  • Reworked the shared stylesheet and refreshed the README to describe the workflow.

Reviewed changes

Copilot reviewed 8 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/cv-technical.de.md Updated technical CV content and added link section for navigation/downloads.
src/cv-executive.de.md Updated executive CV content and cross-links to other artifacts.
scripts/render_html.py Added a minimal inline Markdown renderer for bold + links and reused it across elements.
README.md Documented file layout and build/check/clean commands.
public/index.html Regenerated landing page HTML from source content.
public/cv-technical.de.html Regenerated technical CV HTML artifact.
public/cv-executive.de.html Regenerated executive CV HTML artifact.
assets/style.css Replaced prior styling with a new screen/print-friendly stylesheet.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread public/index.html
@@ -1,41 +1,56 @@
<!DOCTYPE html><html lang='de'><head><meta charset='utf-8'/><meta name='viewport' content='width=device-width, initial-scale=1'/><link rel='stylesheet' href='../assets/style.css'/></head><body>
Comment thread README.md
Comment on lines +25 to 30
Requirements:

- `make`
- `pandoc`
- `weasyprint`
- `make`

@@ -1,41 +1,56 @@
<!DOCTYPE html><html lang='de'><head><meta charset='utf-8'/><meta name='viewport' content='width=device-width, initial-scale=1'/><link rel='stylesheet' href='../assets/style.css'/></head><body>
@@ -1,52 +1,50 @@
<!DOCTYPE html><html lang='de'><head><meta charset='utf-8'/><meta name='viewport' content='width=device-width, initial-scale=1'/><link rel='stylesheet' href='../assets/style.css'/></head><body>
Comment thread scripts/render_html.py
Comment on lines 11 to 13
src = Path(sys.argv[1])
out = Path(sys.argv[2])
css_href = sys.argv[3]
Comment thread README.md
Comment on lines +49 to +55
## Source of truth

The Markdown files in `src/` are the source of truth. Files in `public/` are generated artifacts for GitHub Pages and downloadable HTML/PDF versions.

## Publishing

- `src/cv-full.private.md`: private/full CV source
- `src/cv-executive.de.md`: public executive CV (German)
- `src/cv-technical.de.md`: public technical CV (German)
- `assets/style.css`: shared stylesheet for generated HTML
- `Makefile`: reproducible local build pipeline
- `.github/workflows/build.yml`: CI build/check and GitHub Pages deployment
- `public/`: generated public HTML/PDF outputs
GitHub Pages serves the generated files from `public/`. The default published CV is `public/index.html`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants