Soot & Silicon - Jekyll Blog Setup Complete! πŸŽ‰

Your GitHub Pages site β€œSoot & Silicon” has been successfully converted to a dynamic Jekyll-powered blog system where hardware meets software.

What Was Created

Core Jekyll Files

  • _config.yml - Main Jekyll configuration with SEO, analytics, and site settings
  • Gemfile - Ruby dependencies for Jekyll and GitHub Pages
  • README.md - Complete documentation for the project

Layouts

  • _layouts/default.html - Main site layout with header, navigation, and footer
  • _layouts/post.html - Blog post layout with metadata, tags, and post navigation

Pages

  • index.md - New homepage with blog highlights and quick links
  • blog/index.html - Blog listing page with all posts, pagination, and categories
  • about/index.md - About page describing your site and focus areas

Blog Posts (3 posts created)

  1. 2025-10-10-nvme-over-fabrics-roce-setup.md - Complete NVMe-oF RoCE guide
  2. 2025-10-10-spdk-nvmeof-target-setup.md - SPDK NVMe-oF setup guide
  3. 2025-10-07-change-nvme-format.md - NVMe format change tutorial

Documentation

  • HOWTO-ADD-POSTS.md - Complete guide on adding new blog posts
  • SETUP-COMPLETE.md - This file

Configuration Files

  • .gitignore - Updated with Jekyll-specific ignores

Features Implemented

βœ… Dynamic Blog System - Add posts by creating Markdown files βœ… SEO Optimized - Meta tags, structured data, OpenGraph, Twitter Cards βœ… Responsive Design - Mobile-friendly layouts βœ… Syntax Highlighting - Code blocks with proper formatting βœ… Categories & Tags - Organize posts by topic βœ… Post Navigation - Previous/Next links on each post βœ… Pagination - Automatic pagination for blog index βœ… Google Analytics - Integrated with your existing GA tracking βœ… Cookie Consent - Cookiebot integration maintained βœ… RSS Feed - Automatic feed generation βœ… Sitemap - Automatic sitemap for SEO

File Structure

soothill.github.io/
β”œβ”€β”€ _config.yml              # Jekyll configuration
β”œβ”€β”€ _layouts/
β”‚   β”œβ”€β”€ default.html         # Main layout
β”‚   └── post.html           # Blog post layout
β”œβ”€β”€ _posts/                  # Blog posts (Markdown files)
β”‚   β”œβ”€β”€ 2025-10-07-change-nvme-format.md
β”‚   β”œβ”€β”€ 2025-10-10-nvme-over-fabrics-roce-setup.md
β”‚   └── 2025-10-10-spdk-nvmeof-target-setup.md
β”œβ”€β”€ blog/
β”‚   └── index.html          # Blog listing page
β”œβ”€β”€ about/
β”‚   └── index.md            # About page
β”œβ”€β”€ index.md                 # Homepage
β”œβ”€β”€ Gemfile                  # Ruby dependencies
β”œβ”€β”€ README.md                # Project documentation
β”œβ”€β”€ HOWTO-ADD-POSTS.md      # Guide for adding posts
└── .gitignore              # Git ignore patterns

Next Steps

1. Test Locally (Optional)

# Install dependencies
bundle install

# Run local server
bundle exec jekyll serve

# Visit http://localhost:4000

2. Deploy to GitHub Pages

# Add all new files
git add .

# Commit changes
git commit -m "Set up Jekyll blog with dynamic post system"

# Push to GitHub
git push origin main

GitHub Pages will automatically build and deploy your site within 2-5 minutes.

3. Add Your First New Post

Create a file: _posts/2025-10-XX-your-topic.md

---
layout: post
title: "Your Post Title"
date: 2025-10-XX
categories: [Category1, Category2]
tags: [tag1, tag2, tag3]
author: Darren Soothill
description: "Brief description for SEO"
keywords: "keywords, for, seo"
---

Your content here...

See HOWTO-ADD-POSTS.md for detailed instructions.

How It Works

Adding New Posts

  1. Create a file in _posts/ with format: YYYY-MM-DD-title.md
  2. Add front matter (metadata between --- markers)
  3. Write content in Markdown
  4. Commit and push to GitHub
  5. GitHub Pages builds your site automatically
  6. Post appears on your blog within minutes

Advantages of Jekyll

  • βœ… No Database - All content in Markdown files
  • βœ… Version Control - Full history in Git
  • βœ… Free Hosting - GitHub Pages is free
  • βœ… Fast - Static HTML generation
  • βœ… Secure - No server-side code to exploit
  • βœ… Easy Backups - Just backup your Git repository

GitHub Pages Integration

GitHub Pages natively supports Jekyll:

  • Automatic building on every push
  • No build configuration needed
  • Built-in Jekyll plugins available
  • Custom domain support (via CNAME)

Configuration Customization

Update Site Information

Edit _config.yml:

title: "Your Site Title"
description: "Your site description"
author: "Your Name"
email: "your@email.com"
url: "https://yourdomain.com"

Customize Colors/Styling

Edit the <style> section in _layouts/default.html to change:

  • Color scheme (currently purple/blue gradient)
  • Fonts
  • Spacing
  • Responsive breakpoints

Edit _layouts/default.html in the <nav> section:

<nav class="site-nav">
    <ul>
        <li><a href="/">Home</a></li>
        <li><a href="/blog/">Blog</a></li>
        <li><a href="/about/">About</a></li>
        <li><a href="/contact/">Contact</a></li> <!-- Add new links -->
    </ul>
</nav>

Content Migration Notes

Your existing HTML files are preserved:

  • index.html (original - now replaced by index.md)
  • homepage.html
  • changenvmeformat.html
  • spdknvmeof.html
  • navigation.html

You can:

  1. Keep them as-is for direct access
  2. Delete them since content is now in blog posts
  3. Convert more to blog posts as needed

Troubleshooting

Site Not Building

  1. Check GitHub repository Settings β†’ Pages
  2. Ensure source is set to β€œDeploy from branch: main”
  3. Check the Actions tab for build errors
  4. Verify _config.yml has valid YAML syntax

Posts Not Showing

  1. Filename must be YYYY-MM-DD-title.md
  2. Date must not be in the future
  3. Front matter must have layout: post
  4. File must be in _posts/ directory

Styling Issues

  1. Clear browser cache
  2. Check _layouts/default.html for CSS
  3. Verify no syntax errors in HTML

Useful Commands

# Local development
bundle exec jekyll serve

# Build site locally
bundle exec jekyll build

# Update dependencies
bundle update

# Check for errors
bundle exec jekyll doctor

Resources

Support

For questions or issues:

  • Review HOWTO-ADD-POSTS.md for posting guide
  • Check README.md for project overview
  • Email: darren@soothill.com

Success Checklist

  • βœ… Jekyll configuration created
  • βœ… Blog layouts implemented
  • βœ… Three example posts created
  • βœ… Navigation system added
  • βœ… SEO optimization complete
  • βœ… About page created
  • βœ… Documentation written
  • βœ… Ready to deploy!

Next: Deploy to GitHub!

git add .
git commit -m "Set up Jekyll blog system"
git push origin main

Then visit your GitHub Pages URL in 2-5 minutes to see your new blog! πŸš€


Congratulations! Your site is now a fully functional Jekyll-powered blog that makes it easy to add new technical articles and guides dynamically.

Β© 2025 Darren Soothill