Soot & Silicon - Jekyll Blog Setup Complete! π
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)
- 2025-10-10-nvme-over-fabrics-roce-setup.md - Complete NVMe-oF RoCE guide
- 2025-10-10-spdk-nvmeof-target-setup.md - SPDK NVMe-oF setup guide
- 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
- Create a file in
_posts/with format:YYYY-MM-DD-title.md - Add front matter (metadata between
---markers) - Write content in Markdown
- Commit and push to GitHub
- GitHub Pages builds your site automatically
- 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
Add More Navigation Links
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.htmlchangenvmeformat.htmlspdknvmeof.htmlnavigation.html
You can:
- Keep them as-is for direct access
- Delete them since content is now in blog posts
- Convert more to blog posts as needed
Troubleshooting
Site Not Building
- Check GitHub repository Settings β Pages
- Ensure source is set to βDeploy from branch: mainβ
- Check the Actions tab for build errors
- Verify
_config.ymlhas valid YAML syntax
Posts Not Showing
- Filename must be
YYYY-MM-DD-title.md - Date must not be in the future
- Front matter must have
layout: post - File must be in
_posts/directory
Styling Issues
- Clear browser cache
- Check
_layouts/default.htmlfor CSS - 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