Agent Notes (Hongyu_Cheng_Website.github.io)
This repo is a Jekyll (Ruby) static site for a personal academic homepage (AcadHomepage / Minimal-Mistakes style). Most of the apparent “complexity” comes from the theme scaffolding (includes, Sass partials, vendor JS/CSS/fonts), not from custom application logic.
What to edit (most common)
- Homepage content:
_pages/about.md(currentlypermalink: /). - Top navigation:
_data/navigation.yml(links to in-page anchors generated from headings/IDs inabout.md). - Site-wide config:
_config.yml(title, author links, analytics id, scholar stats CDN flag, etc.). - Styling:
assets/css/main.scss(imports_sass/*and contains custom overrides at the bottom). - Template structure:
_layouts/default.html,_includes/*(head, masthead, sidebar, scripts, SEO).
Generated output / do not edit
_site/,_site_local/,.sass-cache/are build artifacts (also in.gitignore). Don’t edit or commit them.
Local development
- Install deps:
bundle install - Run server (live reload):
bash run_server.sh(runsbundle exec jekyll liveserve) - Build:
bundle exec jekyll build
Notes:
- GitHub Actions uses Ruby 3.2 (
.github/workflows/deploy.yml). If local build issues occur, align Ruby/Bundler versions.
Deployment (GitHub Pages)
- On push to
main,.github/workflows/deploy.ymlbuilds via Jekyll and deploys to GitHub Pages. - Prefer changing source files only; don’t try to “deploy by committing
_site/”.
JavaScript guidance
- The site currently loads only
assets/js/main.min.jsvia_includes/scripts.html.main.min.jsis a minified vendor bundle (jQuery + plugins + theme glue). Avoid editing it directly unless you intentionally accept working with minified code.
- If you need new behavior, prefer:
1) Create a small new JS file under
assets/js/…2) Include it in_includes/scripts.html3) Keep it dependency-light (assume jQuery exists only ifmain.min.jsremains in use)
CSS/Sass guidance
- Prefer editing
assets/css/main.scss(custom overrides already live there) or_sass/*partials. - Don’t hand-edit any compiled
main.cssunder_site/(it’s generated).
Anchor/link gotchas (important for this repo)
- Navigation uses hash links like
/#about-meand/#-publications.about.mdincludes explicit anchors (e.g.<span class='anchor' id='about-me'></span>) and also relies on kramdown auto IDs for headings.- Changing heading text/emojis can change the generated
idand silently break navigation. If you rename headings, update_data/navigation.ymlaccordingly.
- Asset paths in templates are mostly relative (e.g.
assets/css/main.css,assets/js/main.min.js).- This is fine for a single homepage at
/, but if you add additional pages with nested URLs, consider switching torelative_url(e.g./assets/css/main.css) to avoid broken assets.
- This is fine for a single homepage at
Google Scholar stats (optional feature)
- The crawler lives in
google_scholar_crawler/and expectsGOOGLE_SCHOLAR_IDenv var. - The site fetches JSON via
_includes/fetch_google_scholar_stats.htmlfromgoogle-scholar-stats/gs_data.json(GitHub raw or jsDelivr, controlled bygoogle_scholar_stats_use_cdnin_config.yml). - If you change the fetch logic, keep in mind it currently uses jQuery (
$.getJSON).
Change philosophy
- Keep changes minimal and localized: this is a static site, not an app.
- Avoid introducing new build systems (Node/webpack/TS) unless explicitly requested.
- Preserve existing HTML structure/classes when adjusting styles; the Sass overrides rely on them.