Skip to content

Repository files navigation

Rachel Luo's website

Personal website built with Jekyll, based on AcademicPages / Minimal Mistakes.

Preview locally

This Mac uses Ruby 3.3 and Node.js 24. On a fresh Mac with Homebrew:

brew install ruby@3.3 node@24
export PATH="/opt/homebrew/opt/ruby@3.3/bin:/opt/homebrew/opt/node@24/bin:$PATH"
bundle config set --local path vendor/bundle
bundle install
npm ci
npm run build:js
./bin/preview

Run these commands from the repository. Open http://127.0.0.1:4000. The server binds only to the local machine. Saved content and Sass changes rebuild automatically; restart after editing _config.yml or _config.dev.yml. Press Control+C to stop. For later sessions, run ./bin/preview.

If editing JavaScript, run npm run build:js, or npm run watch:js in a second terminal with Node on PATH. The generated assets/js/main.min.js is tracked, so ordinary content previews do not require Node.

Where things live

  • _pages/about.md: homepage bio, section headings, and CV link label.
  • _data/publications.json: all 16 publication records; selected entries appear on the homepage.
  • _data/talks.json: talk titles, recording URLs, and appearances on the homepage.
  • _includes/publication-list.html and _includes/talks-list.html: shared list templates. Edit data to update entries, rather than copying HTML between pages.
  • _layouts/profile.html and _sass/_profile.scss: homepage layout and styles. The Sass variables at the top control column width, gutters, and breakpoints; the CSS variables in .profile-site control the color palette.
  • _layouts/single.html: sitemap and error pages, with the original sidebar.
  • _pages/sitemap.md and _pages/404.md: visitor sitemap and not-found page.
  • _pages/cv.md, _pages/publications.md, and _pages/talks.html: redirect stubs preserving old URLs. They contain no duplicate page content.
  • _config.yml: shared profile, metadata, build configuration, and production URL.
  • _config.dev.yml: local preview overrides.
  • _sass/site.scss: stylesheet entry point. Shared theme styles remain because the standalone pages and homepage both depend on them.
  • assets/js/_main.js: navigation, sidebar controls, footer sizing, and accessible same-page anchor behavior. bin/build-assets.mjs builds the browser bundle.
  • files/ and images/: downloadable documents and images.

Routine content updates

Publications

Edit _data/publications.json. Array order is display order. Use group: "selected" for entries shown on the website; retain other records for reference. Preserve full author lists and the complete venue. The optional venue_short is the compact visible label; the full venue appears on hover. url links the title; links holds optional resources such as a talk or code repository.

The homepage links to Google Scholar for the full list.

Talks

Edit _data/talks.json. Each record has a title, a recording url, and an appearances array of complete display lines. Keep punctuation and dates in those lines. Multiple appearances under one title share that title's recording link. The template escapes data and generates the list directly, without converting Markdown or rewriting generated HTML. Pass semantic=true when the list's bullets are hidden, as on the homepage, to retain its list semantics in assistive technology.

Downloadable CV

Replace files/rachel_luo_cv.pdf with an email-free copy of the latest CV. The current website copy follows v3 (September 2026). Build public copies from a temporary copy of the private LaTeX source with the \email{...} command removed; keep the private original intact. Check every rendered PDF page and confirm that both the email text and its mailto: link are absent before replacing the download.

Update cv_label in _pages/about.md and the download label in _pages/sitemap.md if the CV date changes. /cv/ redirects to the PDF, while /publications/ and /talks/ redirect to their homepage sections. Existing /about/, /about.html, and /resume redirects are retained. Keep the homepage section IDs stable so these links continue to work.

Build and maintenance

npm run build:js
JEKYLL_ENV=production bundle exec jekyll build

Preview the homepage at desktop and mobile widths after styling changes. Also check /sitemap/ and /404.html when editing shared templates or styles. Verify that /cv/, /resume, /publications/, and /talks/ reach their destinations. Review the PDF download and internal links before publishing.

  • Jekyll 4.4 and Dart Sass provide the site build. Keep Gemfile.lock and package-lock.json; update dependencies deliberately.
  • The only npm build dependency is esbuild. The unused map demo, comment providers, sample collections, and migration-only tools have been removed.
  • Jekyll plugins generate the sitemap, feed, and existing redirects.
  • MathJax still loads from the pinned HTTPS CDN URL in _includes/head/custom.html on standalone pages. The homepage disables it with mathjax: false.
  • Analytics is disabled. If deliberately enabling it, configure analytics.provider: google-analytics-4 and analytics.google.tracking_id. Local preview always disables analytics.

Deployment is defined in .github/workflows/pages.yml. Pushes to master build the site with the pinned Ruby/Bundler dependencies and publish the generated site to GitHub Pages. The workflow can also be run manually from the Actions tab. Repository Settings → Pages must use GitHub Actions as the publishing source. JavaScript assets are committed, so run npm run build:js before committing any changes to assets/js/_main.js.

Credits

Based on AcademicPages, originally forked by Stuart Geiger from Michael Rose's Minimal Mistakes. See LICENSE.

About

Github Pages template for academic personal websites, forked from mmistakes/minimal-mistakes

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages