A data-driven personal website and CV. Content lives in versioned CSV files under
data/; a multi-page Quarto website (*.qmd) renders to docs/ for GitHub Pages, and
a separate Typst document renders the PDF CV.
This replaces the earlier single-page CV (and, before that, the datadrivencv /
pagedown Google Sheet setup). Old files are preserved under archive/.
data/*.csv -> R/cv_functions.R -> *.qmd -> docs/ (website) + cv.pdf
Every website page is a thin .qmd that sources the R helpers, calls
create_cv("data") once, and prints only the sections relevant to that page. The
section column in data/entries.csv routes each row to a page.
| Page | Content |
|---|---|
index.qmd |
About: headshot, intro bio, profile links (trestles template) |
research.qmd |
Publications, conference papers, technical reports, research interests, field research |
software.qmd |
Open data & software, grants, awards |
teaching.qmd |
Courses, workshops, talks |
media.qmd |
Press and video coverage (from data/media.csv) |
blog.qmd |
Blog posts as external links |
cv.qmd |
HTML CV summary with a PDF download button |
cv-pdf.qmd |
The full Typst CV; renders to cv.pdf. Not part of the website render list. |
data/entries.csv- every job, project, publication, report, talk. Columns includesection(routes to a page),type(article,conference,report, …) andstatus(blank = published;under review/work in progressrender as tags).data/media.csv- press/video coverage (outlet, date, kind, title, url).data/contact_info.csv,data/language_skills.csv,data/technical_skills.csv,data/text_blocks.csv- supporting data.text_blocks.csvholds the intro bio and the per-page intro and prose blocks (research interests, field research, etc.).data/braindump_entries.csv- work-in-progress rows you fill in by hand; rows still containingTODOare skipped automatically.
assets/styles.css- site chrome and list patterns (navbar,pub-list,pub-tag,media-list,teaching-table,section-intro,cv-download-btn, skill bars).assets/typst-helpers.typ- Typst helpers (Font Awesome contact lines, skill bars, header band) used only by the PDF (cv-pdf.qmd).assets/profile-lars-schoebitz.jpg- profile photo (About page and favicon).
./render.sh
This runs two steps: it renders cv-pdf.qmd to cv.pdf at the repo root, then renders
the website into docs/ (which picks up cv.pdf as a declared resource so the CV
page's download button resolves). The root cv.pdf is a gitignored build intermediate;
docs/cv.pdf is the single tracked copy. docs/ is committed and is what Netlify
serves.
To refresh harvested source data (optional): Rscript scripts/harvest.R re-pulls ORCID
works and GitHub org repos into data/staging/ for review. Curated content stays in
data/*.csv.
- Netlify serves the pre-built
docs/folder frommain(netlify.toml: publishdocs, no build command). Merging a PR intomaintriggers a redeploy. - Custom domain:
www.lse.de(primary) andlse.de, configured in Netlify's domain settings; DNS A records at hosttech point both at Netlify.
- Publications, reports, software, datasets: ORCID
0000-0003-2196-5015, cross-checked against the Zotero exportdata/my-articles.bib. - Open-data projects & packages: GitHub orgs (openwashdata, rstatsZH, Global-Health-Engineering, ethopen).
- Roles, courses, workshops, education, media: hand-entered (
data/BRAINDUMP.md).