Project Notes
CV ↔ Website Sync
The CV and website share a single source of truth: YAML data files in _data/.
Workflow
- Edit YAML files in
_data/(add/update papers, talks, people, etc.) - Run
python sync.py(orpython sync.py --no-compileto skip PDF) - Both
index.mdand__CV/CV_Kangwook_Lee.texare updated betweenSYNC:markers - CV PDF is compiled and copied to
CV_Kangwook_Lee.pdfat the repo root
NEVER edit generated sections in index.md or CV_Kangwook_Lee.tex directly. Edit the YAML instead and re-run sync.py. Generated sections are between <!-- SYNC:...:BEGIN --> / <!-- SYNC:...:END --> markers in index.md and % SYNC:...:BEGIN / % SYNC:...:END markers in the .tex file.
Data files (_data/)
| File | Contents | |——|———-| | publications.yml | All papers (145+). Key fields: title, authors, venue, year, type (preprint/conference/workshop/journal/abstract), selected, url, award, award_type, cv_label, venue_full, location, month | | talks.yml | All talks (95+). Key fields: title, venue, year, month, topic (foundation_models/fairness/distributed_ml/other), selected, video | | people.yml | Lab members & alumni. Key fields: name, role, link, photo, graduation_year, current_position | | awards.yml | Awards and honors | | grants.yml | Research grants | | teaching.yml | Courses taught | | service.yml | Professional service (reviewing, editing, etc.) | | background.yml | Education, appointments, work experience |
Common tasks
- Add a paper: Add entry to
publications.yml, setselected: trueif it should appear in the selected list, then runpython sync.py - Add a talk: Add entry to
talks.ymlwith atopicfield, then runpython sync.py - Add a lab member: Add entry to
people.ymlwith a photo inassets/images/members/, then runpython sync.py
CV
- The correct CV LaTeX file is
__CV/CV_Kangwook_Lee.tex(NOT_cv_Lee_wo_grants.tex) - Compile with
pdflatexfrom the__CV/directory - The website serves
CV_Kangwook_Lee.pdf(copied from compiled output)
Website
- Jekyll site using Just-the-Docs theme, deployed on GitHub Pages
- Single-page layout: all content in
index.md, sidebar hidden via CSS - Custom JS is inlined in
index.md(theme doesn’t auto-load_includes/js/custom.js) - Custom styles in
_sass/custom/custom.scss bundle exec jekyll serveto preview locally