yeatsliao.github.io
Personal homepage of Yeats_Liao — Java Backend / AI Application Developer. A Jekyll static site with a Chinese/English toggle and fully data-driven content: editing content only requires touching YAML files, never HTML.
Live site: https://yeatsliao.github.io
Features
- Data-driven content: intro, skills, honors, projects, and activities all live in
_data/*.yml— CRUD by editing YAML only - Chinese/English toggle: one-click switch in the navbar, preference persisted in localStorage
- Project card wall: categorized open source projects with cover images and tech tags
- Activity timeline: year-grouped timeline with role badges and photos
- Blog timeline: Markdown writing, archived by year
- Responsive design: desktop / tablet / mobile
Architecture
yeatsliao.github.io
├── _config.yml # Site-wide config (title, SEO, avatar, social links)
├── _data/ # ★ Content data layer (edit here for daily maintenance)
│ ├── navigation.yml # Navbar menu
│ ├── profile.yml # Homepage intro, badge bar, education, work experience
│ ├── skills.yml # Technical skills
│ ├── honors.yml # Community honors + certificates & awards
│ ├── projects.yml # Open source projects (categories + cards)
│ └── activities.yml # Activity timeline
├── _pages/ # Page templates (render from _data; rarely need edits)
│ ├── about.md # Homepage /
│ ├── projects.md # /projects/
│ ├── activities.md # /activities/
│ └── blog.md # /blog/
├── _posts/ # Blog posts (YYYY-MM-DD-title.md)
├── _layouts/ _includes/ # Layouts & components (navbar, sidebar, head, etc.)
├── _sass/ # Theme styles
├── assets/
│ ├── css/i18n.css # Language toggle styles
│ └── js/i18n.js # Language toggle logic (localStorage: site-lang)
└── images/ # Image assets (see naming convention below)
├── site/ # Favicons and site icons
├── projects/ # Project screenshots
├── activities/ # Activity photos
├── certs/ # Certificate scans
└── badges/ # Badge assets
Content Maintenance Guide
Daily maintenance only involves the YAML files under _data/ and the _posts/ directory; Jekyll re-renders automatically.
| What to do | File to edit | Notes |
|---|---|---|
| Update intro / education / work | _data/profile.yml |
intro for hero paragraphs, badges for the badge bar |
| Add/remove skills | _data/skills.yml |
Maintained per group under groups |
| Add honors / certificates | _data/honors.yml |
community for honors, awards for certs (image optional) |
| Add an open source project | _data/projects.yml |
Append under the matching category’s items |
| Add an activity | _data/activities.yml |
Just append; the page sorts by date descending |
| Adjust the nav menu | _data/navigation.yml |
Edit the main list |
| Write a blog post | _posts/ |
Create YYYY-MM-DD-title.md with front matter |
Bilingual field convention — every displayed text has zh / en sub-fields:
- name: my-new-project
link: https://github.com/YeatsLiao/my-new-project
desc:
zh: 一句话中文描述。
en: One-line English description.
tags: [Java, Spring Boot]
# image: images/projects/my-new-project-cover.webp # optional
Image naming convention: images/{category}/{subject}-{description}-{index|date}.{ext}, lowercase kebab-case, e.g.:
- Project cover:
images/projects/emotion-sky-cover.webp - Activity photo:
images/activities/2026-04-11-demowall-01.webp - Certificate:
images/certs/2024-aliyun-clouder-openapi.webp
Language Toggle Mechanism
- The
EN / 中文button in the navbar switches languages; the preference is stored inlocalStorage(key:site-lang, default Chinese) - Implementation: a
lang-enclass on the<html>element, with CSS controlling.i18n-zh/.i18n-envisibility - Bilingual markup in templates:
<span class="i18n-zh">中文</span><span class="i18n-en">English</span> - New content in data files switches automatically once its
zh/enfields are filled in
Local Development
Requires Ruby 3.x and Bundler:
git clone https://github.com/YeatsLiao/yeatsliao.github.io.git
cd yeatsliao.github.io
bundle install
bundle exec jekyll serve
# Open http://127.0.0.1:4000
Pushing to the main branch triggers automatic build and deployment via GitHub Pages.
Acknowledgements
The theme is based on AcadHomepage (derived from Minimal Mistakes). Thanks to the original authors.
License
This project is open-sourced under the MIT License.