Content Creation

Writing Blog Posts

Post Creation Process

  1. Create Post File: Follow Jekyll naming convention YYYY-MM-DD-post-title.md
  2. Add Front Matter: Configure post metadata
  3. Write Content: Use Markdown with proper structure
  4. Preview Locally: Test with bundle exec jekyll serve
  5. Commit & Push: Deploy via Git to GitHub Pages

Post File Naming

_posts/YYYY/YYYY-MM-DD-post-title.md

Directory Organization

Posts are organized by year in subdirectories:

_posts/
├── 2025/          # 2025 posts
├── 2026/          # 2026 posts  
└── YYYY/          # Future years

Front Matter Configuration

Required Front Matter

---
title: "Post Title"
layout: single
date: 2026-02-01
categories:
  - web-development
tags:
  - jekyll
  - blogging
excerpt: "Brief post summary for archives and social sharing"
---

Complete Front Matter Options

---
# Required Fields
title: "Complete Post Title"
layout: single
date: 2026-02-01

# Taxonomy
categories:
  - software-development
  - web-development
tags:
  - jekyll
  - ruby
  - github-pages

# Content Description
excerpt: "Post summary that appears in archives and social media"
description: "SEO meta description (if different from excerpt)"

# Table of Contents
toc: true
toc_label: "Contents"
toc_icon: "cog"
toc_sticky: true

# Header Image
header:
  image: /assets/images/banners/post-banner.jpg
  teaser: /assets/images/banners/post-teaser.jpg
  overlay_image: /assets/images/banners/post-overlay.jpg
  overlay_filter: 0.4
  caption: "Photo credit: [Source](https://example.com)"

# Social & SEO
author_profile: true
read_time: true
comments: true
share: false
related: true
show_date: true

# Special Options
published: true          # false for drafts
permalink: /custom/url/  # Custom URL structure
redirect_from:          # URL redirects
  - /old-url/
  - /another-old-url/
---

Content Structure

Standard Post Structure

---
# Front matter here
---

Brief introduction paragraph that hooks the reader and sets context.

## Main Section Heading

Content with proper paragraph breaks and flow.

### Subsection

More detailed content with examples.

## Code Examples

\```language
code block here
\```

## Conclusion

Summary and call to action.

Markdown Best Practices

Headings

# H1 - Reserved for post title (automatic)
## H2 - Main sections
### H3 - Subsections
#### H4 - Sub-subsections (avoid going deeper)
# Internal links (relative)
[About page](/about/)
[Previous post](/2026/01/27/how-ai-actually-works/)

# External links
[Jekyll Documentation](https://jekyllrb.com/docs/)

# Link with title attribute
[GitHub](https://github.com "GitHub Homepage")

Images

# Simple image
![Alt text](/assets/images/filename.jpg)

# Image with caption (Minimal Mistakes syntax)
![Alt text](/assets/images/filename.jpg){: .align-center}
*Image caption text*

# Responsive image
![Alt text](/assets/images/filename.jpg){: .img-responsive}

Code Blocks

# Inline code
Use the `jekyll serve` command to start the development server.

# Fenced code blocks
\```bash
bundle exec jekyll serve --livereload
\```

# Code with line numbers
\```ruby {linenos=true}
def hello_world
  puts "Hello, World!"
end
\```

Lists

# Unordered lists
- First item
- Second item
  - Nested item
  - Another nested item

# Ordered lists
1. First step
2. Second step
   1. Sub-step
   2. Another sub-step

# Task lists
- [x] Completed task
- [ ] Pending task

Tables

| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1   | Cell 2   | Cell 3   |
| Cell 4   | Cell 5   | Cell 6   |

Blockquotes

> This is a blockquote.
> It can span multiple lines.
>
> — Author Name

Content Categories & Tags

Category Guidelines

Categories represent broad subject areas:

categories:
  - software-development
  - web-development  
  - productivity
  - technology
  - programming
  - devops
  - testing

Tag Guidelines

Tags are specific topics within categories:

tags:
  - jekyll
  - ruby
  - github-pages
  - markdown
  - css
  - javascript
  - automation
  - workflows

Taxonomy Best Practices

Static Pages

Page Creation

# _pages/page-name.md
---
title: "Page Title"
permalink: /page-url/
layout: single
author_profile: true
---

Page content here...

Existing Pages

Draft Management

Creating Drafts

# Option 1: _drafts directory (not currently used)
mkdir _drafts
touch _drafts/draft-post-title.md

# Option 2: Future-dated post
touch _posts/2026/2026-03-01-future-post.md

# Option 3: Unpublished post
# Add to front matter: published: false

Draft Testing

# Include drafts in build
bundle exec jekyll serve --drafts

# Include future posts
bundle exec jekyll serve --future

Content Review Process

Pre-Publication Checklist

Quality Guidelines

SEO Optimization

Title Optimization

Meta Description (Excerpt)

URL Structure

Jekyll automatically creates URLs from:

/YYYY/MM/DD/post-title/

This provides good SEO structure with date and descriptive slug.

Internal Linking


Content Format: Markdown with YAML front matter
Organization: Year-based directory structure
Publishing: Git commit and push to deploy
Preview: Local Jekyll development server