This repository contains a static team homepage for GitHub Pages. The site is built with plain HTML, CSS, and small client-side scripts. There is no build step and no framework dependency.
index.html: page structure and client-side rendering logicstyles.css: visual styles and layoutpaper.csv: publication datasetmembers.json: member datasetsupport.json: awards and funding datasetteaching.json: teaching datasetYSC.jpg,award.gif,ETH.svg,TUM.png: visual assets used by the page
The page loads structured data in the browser:
- publications are loaded from
paper.csv - members are loaded from
members.json - awards and funding are loaded from
support.json - teaching content is loaded from
teaching.json
This means most content updates should be done by editing data files instead of changing index.html.
Edit members.json.
Each item uses this shape:
{
"name": "Member Name",
"role": "Role Title",
"type": "featured",
"image": "photo.jpg",
"description": "Short profile text.",
"highlights": [
"Highlight 1",
"Highlight 2"
]
}Notes:
typeis optional. Use"featured"for the large first member card.imageis only needed for a featured card.highlightsis optional.
For a normal member card:
{
"name": "Member Name",
"role": "Student Researcher",
"description": "Short profile text."
}Edit support.json.
Each card uses this shape:
{
"title": "Section Title",
"image": "award.gif",
"items": [
"Line 1",
"Line 2"
]
}Notes:
imageis optional.itemsshould be a short list of bullet points.
Edit teaching.json.
Each item uses this shape:
{
"title": "Course or Activity",
"description": "Short explanation.",
"tag": "Category label"
}Notes:
tagis optional but recommended for clarity.
Edit paper.csv.
Current columns:
year,id,title,link,status,author,cofauthor,corauthor,level,venue,note
The current page uses these fields:
yearidtitlelinkauthorlevelvenuenote
Notes:
- publications are grouped by
year - within the same year, they are sorted by
id statusis currently not shown on the page- venue abbreviations are supplemented in
index.htmlby a small mapping function
If a new venue abbreviation is missing, update getVenueLabel() in index.html.
Update:
index.htmlfor static sections such as hero, about, and research areas- the data files for members, support, teaching, and publications
Edit styles.css.
The main design tokens are near the top of the file:
--bg--surface--surface-muted--text--brand--accent--shadow
- Add the new image file to the repository root.
- Update the corresponding filename in
index.htmlor JSON data. - Keep filenames simple and web-safe.
Because the page uses fetch() to load CSV and JSON, opening index.html directly with file:// may fail in some browsers.
Recommended local preview options:
- Use GitHub Pages after pushing changes.
- Run a small local static server.
Example:
python3 -m http.server 8000Then open:
http://localhost:8000/
This site is compatible with GitHub Pages as a plain static website.
Typical workflow:
- Edit the data files or page files.
- Commit and push to the GitHub Pages branch.
- Wait for GitHub Pages to publish the update.
- Keep all homepage copy in English unless bilingual content is intentionally introduced.
- Prefer updating data files over editing rendering logic.
- Keep descriptions concise. This page works better with short academic summaries than long paragraphs.
- When adding publications, keep
year,id, andvenueconsistent. - If content grows significantly, consider moving
aboutandresearchinto their own JSON files as well.
Possible reasons:
- the site was opened with
file:// - the data file name is wrong
- the JSON syntax is invalid
- the CSV format is broken
Check:
- commas and quotes in the JSON file
- whether the file is valid JSON
- whether required fields such as
titleornameare present
Update the getVenueLabel() mapping in index.html.
- move
aboutcontent intoabout.json - move
research areasintoresearch.json - add explicit
abbrcolumn topaper.csvto avoid hardcoded venue mapping