This guide covers everything you need to know about creating blog posts for the site.
All posts go in the _posts/ directory:
_posts/
├── 2025-06-16-illusionofthinking.md
├── 2025-05-22-io.md
└── 2025-05-15-aconversationwithjonyive.md
Posts must follow this naming pattern:
YYYY-MM-DD-slug.md
| Component | Description | Example |
|---|---|---|
YYYY |
Four-digit year | 2025 |
MM |
Two-digit month | 06 |
DD |
Two-digit day | 16 |
slug |
URL-friendly title | illusionofthinking |
Important: The date in the filename determines:
/2025/06/16/illusionofthinking/)Every post begins with YAML front matter between triple dashes:
---
title: "The Illusion of Thinking"
tags:
- ai
- research
---
| Field | Description | Example |
|---|---|---|
title |
Post title | "My Post Title" |
| Field | Description | Default |
|---|---|---|
tags |
List of tags | none |
link |
External URL (for link posts) | none |
excerpt |
Custom excerpt | Auto-generated |
header |
Header image settings | none |
toc |
Show table of contents | false |
toc_sticky |
Sticky TOC sidebar | false |
last_modified_at |
Last update date | none |
published |
Publish status | true |
A regular blog post with original content:
---
title: "Understanding Machine Learning"
tags:
- ai
- technology
---
Your original content here. This is a standard blog post
with your own thoughts and analysis.
## Section Heading
More content...
A post that references external content:
---
title: "The Illusion of Thinking"
link: https://machinelearning.apple.com/research/illusion-of-thinking
tags:
- link
- ai
- apple
---
Brief commentary about the linked article. The title will
link to the external URL.
The link field:
**bold text**
*italic text*
~~strikethrough~~
`inline code`
# Heading 1 (rarely used in posts)
## Heading 2
### Heading 3
#### Heading 4
[Link text](https://example.com)
[Link with title](https://example.com "Title text")
<!-- Reference-style links -->
[link text][ref]
[ref]: https://example.com
<!-- Unordered -->
- Item one
- Item two
- Nested item
<!-- Ordered -->
1. First item
2. Second item
3. Third item
> This is a blockquote.
> It can span multiple lines.
<!-- With citation -->
> Quote text here.
<cite><a href="https://source.com">Source Name</a></cite>
```python
def hello():
print("Hello, world!")
```
```javascript
const greeting = "Hello";
console.log(greeting);
```

<!-- With caption using include -->
<figure class="">
<img src="/assets/images/my-image.png"
alt="Description"><figcaption>
Figure caption
</figcaption></figure>
| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 |
Tags help categorize posts and enable filtering:
---
title: "Post Title"
tags:
- ai
- apple
- link
---
Based on current posts:
ai - Artificial intelligence topicsapple - Apple-related contentlink - Link posts (external URLs)website - Site-related updatesdevops - DevOps topicstalk - Presentations/talksmachine-learningURLs are generated from the filename and config:
# _config.yml
permalink: /:categories/:year/:month/:day/:title/
Example:
2025-06-16-illusionofthinking.md/2025/06/16/illusionofthinking/The excerpt is the preview text shown in listings.
By default, Jekyll uses the first paragraph as the excerpt.
Specify a custom excerpt in front matter:
---
title: "Post Title"
excerpt: "A custom summary of this post that appears in listings."
---
Or use a separator in the content:
---
excerpt_separator: <!--more-->
---
This text appears in the excerpt.
<!--more-->
This text only appears in the full post.
Drafts are posts not yet ready for publication.
Put drafts in _drafts/ without a date prefix:
_drafts/
└── my-upcoming-post.md
bundle exec jekyll serve --drafts
Drafts will appear with the current date.
Move to _posts/ and add the date prefix:
mv _drafts/my-upcoming-post.md _posts/2025-01-31-my-upcoming-post.md
Set published: false:
---
title: "Hidden Post"
published: false
---
Move to the _posts/archive/ directory (excluded from build):
mv _posts/2025-01-01-old-post.md _posts/archive/
[Related post](/2025/06/16/illusionofthinking/)
Use the filename without extension.
[Contact page](/contact/)
[Work page](/work/)
Enable TOC for long posts:
---
title: "Long Post"
toc: true
toc_label: "Contents"
toc_icon: "file-alt"
toc_sticky: true
---
---
title: "Post with Header"
header:
image: /assets/images/header.jpg
image_description: "Description"
caption: "Photo credit: [Source](https://example.com)"
---
---
title: "Updated Post"
last_modified_at: 2025-06-20T12:00:00-00:00
---
---
title: "Quick Update"
---
A brief update about something interesting.
---
title: "Comprehensive Analysis of AI Trends"
tags:
- ai
- technology
- analysis
excerpt: "A deep dive into current AI developments and their implications."
toc: true
last_modified_at: 2025-01-31
---
Introduction paragraph setting the context.
## Background
Historical context and background information.
## Current State
Analysis of the current situation.
### Technical Details
Specific technical information.
### Business Impact
Discussion of business implications.
## Future Outlook
Predictions and expectations.
## Conclusion
Summary and final thoughts.
## References
- [Reference 1](https://example.com)
- [Reference 2](https://example.com)
| See also: Managing Pages | Media Assets | Front Matter Reference |