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 posts
  • travel, 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 .md file in _posts/ automatically shows up on the blog page