CLAUDE.md
CLAUDE.md
Personal blog built with Jekyll and hosted on GitHub Pages at https://nyechiel.com.
Build and serve locally
bundle install
bundle exec jekyll serve
Site builds to _site/ and serves at http://localhost:4000.
Adding a new post
- Create
_posts/YYYY-MM-DD-slug-title.md - Open a new GitHub issue for comments and note the issue number
- Use this frontmatter:
---
layout: post
title: "Post Title"
date: YYYY-MM-DD
categories:
- Blog
tags:
- TagName
comments_id: <github-issue-number>
permalink: "/blog/YYYY/MM/DD/slug-title/"
redirect_from: "/YYYY/MM/DD/slug-title/"
---
The redirect_from field maps old WordPress-style URLs to the current permalink structure. Include it for consistency.
Project structure
_posts/— blog posts (Markdown)_includes/— partial templates (comments system, custom head, read time)_layouts/— page layouts (onlypost.htmlis custom; others come from the minima theme)assets/— images and fonts_config.yml— Jekyll site configuration- Pages:
index.md,about.md,podcasts.md,blog/index.md
Comments system
Comments are powered by GitHub Issues. Each post has a comments_id frontmatter field that links to a GitHub issue. Comments on that issue are fetched client-side via the GitHub API and rendered with DOMPurify sanitization.
CI
PR and push to master trigger: Jekyll build, internal link checking (html-proofer), markdown lint, bundler-audit security scan, and CodeQL analysis. GitHub Actions are pinned to commit SHAs.
Style notes
- Markdown lint is configured in
.markdownlint.json