Blog / Life Section Design
Blog / Life Section Design
Date: 2026-04-20
Status: Approved
Problem
The site is currently a pure academic homepage. The owner wants to also share personal life content (travel, reading, hobbies, photography, etc.) without mixing it into the academic sections.
Approach
Use Jekyll’s existing _posts collection (already configured in _config.yml) to power a dedicated Blog section. Posts use categories front matter to organize content types. A new archive page at /blog/ lists all posts. A single navigation entry is added.
Changes Required
1. _data/navigation.yml
Add a “Blog” link:
main:
- title: "Publications"
url: /#publications
- title: "Blog"
url: /blog/
2. _pages/blog.html
New page using the archive layout to list all posts:
---
title: "Blog"
layout: archive
permalink: /blog/
author_profile: true
---
<div class="list__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
<h2 class="archive__item-title" itemprop="headline">
<a href="https://ZeguanXiao.github.io/life/hello-blog/" rel="permalink">Hello, Blog!
</a>
</h2>
<p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i>
less than 1 minute read
</p>
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2026-04-20T00:00:00+00:00">April 20, 2026</time></p>
<p class="archive__item-excerpt" itemprop="description"><p>Starting a personal blog section on this site.</p>
</p>
</article>
</div>
3. Post Front Matter Convention
All life posts go in _posts/ with filename YYYY-MM-DD-slug.md:
---
title: "Post Title"
date: YYYY-MM-DD
categories: [life, travel] # life + topic tag
tags: [optional, extra, tags]
header:
teaser: /images/optional-thumbnail.jpg
---
Suggested top-level categories:
life— always include to distinguish from academic poststravel,reading,music,photography,gaming— topic
Out of Scope
- Comments on blog posts (can be enabled later via
_config.yml) - A separate photo gallery page (not needed for now)
- Pagination (can be enabled later if posts grow numerous)
Success Criteria
/blog/page exists and lists all posts- “Blog” appears in the site header navigation
- Writing a new
.mdfile in_posts/automatically shows up on the blog page
