Repository guide
Repository guide
This repository is a Jekyll/GitHub Pages personal academic site. Keep changes small, preserve existing URLs, and verify the specific surface you touch.
Site structure
about.mdis the homepage (/)._config.ymlowns site metadata, author details, navigation, plugins, and global defaults._posts/contains archived long-form tech posts; the site currently has no public tech-blog index or navigation entry._layouts/and_includes/contain Liquid templates. Shared styling enters throughassets/css/main.scss; local overrides live in_sass/layout/and theme variables in_sass/theme/._data/tech_log.ymland_data/tech_concepts.ymlretain curated tech-log data.images/contains site images.assets/contains public PDFs, video, fonts, and the published CV.CV_Latex/contains CV source and build artifacts.blog.mdis a planning document without Jekyll front matter; it is not the published blog index.
Generated learning-log content
Renyuan_Log.md is the source of truth for dated learning-log text.
python3 scripts/generate_tech_log_archive.pyregeneratestech-log-full.md,_data/tech_log_blocks.yml, and_data/tech_log_artifacts.yml.python3 scripts/update_post_source_coverage.pyregenerates_data/post_source_coverage.ymland the sections between<!-- source-log-coverage:start -->and<!-- source-log-coverage:end -->in every tech post.- Do not hand-edit generated files or generated coverage blocks. Edit the source log, the assignment map in
update_post_source_coverage.py, or the curated post content above the marker, then regenerate. _data/tech_log.ymland_data/tech_concepts.ymlare curated inputs, not outputs of the current scripts.
Generated GitHub activity
scripts/update_github_contributions.py fetches the public contribution calendar for the configured GitHub user and regenerates images/github-contributions.svg plus _data/github_contributions.json. The daily .github/workflows/update-github-contributions.yml workflow commits these two outputs when they change. Do not hand-edit either generated file.
When the learning log or its mappings change, run the generators in this order:
python3 scripts/generate_tech_log_archive.py
python3 scripts/update_post_source_coverage.py
python3 scripts/verify_post_source_coverage.py
Verification
For every change, run:
git diff --check
python3 scripts/verify_post_source_coverage.py
The repository currently has no Gemfile and does not pin a Jekyll toolchain. Do not claim a successful full-site build unless a working Jekyll environment has been added or supplied. Once one exists, also run the repository’s Jekyll build command and inspect /, a post page, and /404.html at desktop and mobile widths.
Editing conventions
- Preserve front matter, permalinks, heading anchors, and source-coverage markers unless the requested change explicitly migrates them.
- Use Liquid URL filters such as
relative_urlor the existingbase_pathpattern for internal links and assets. - Reuse the existing Sass variables, theme custom properties, and breakpoints so light/dark and responsive behavior remain consistent.
- Keep accessible labels, alt text, keyboard interaction, and reduced-motion behavior in mind when changing navigation, modals, or media.
- Avoid unrelated formatting churn and do not rewrite binary assets unless the task requires it.

