Skip to main content
Version: 2.4.0

Jekyll Integration

O2 supports converting Obsidian notes to Jekyll blog posts while maintaining compatibility with Jekyll's blog features and markdown extensions.

Project Structure​

When converting notes to Jekyll, O2 follows this structure:

your-jekyll-project/
├── _posts/
│ └── YYYY-MM-DD-title.md
└── assets/
└── img/
└── YYYY-MM-DD-title/
└── attachments
  • Converted notes are placed in the _posts directory
  • Attachments are stored in assets/img/YYYY-MM-DD-title/
  • The date format follows Jekyll's post naming convention

Features​

O2 automatically converts various Obsidian-specific markdown features to Jekyll-compatible format:

  • Internal links ([[note]]) are converted to Jekyll post URLs
  • Alias links ([[note|alias]]) preserve the alias text
  • Heading links ([[note#heading]]) are converted to anchor links
  • Image links are updated to use Jekyll's asset path
  • File attachments are copied to the assets directory
  • Relative paths are converted to absolute URLs

Callouts​

  • Obsidian callouts are converted to Jekyll-compatible blockquotes
  • Callout types (note, warning, etc.) are preserved
  • Custom styling is maintained where possible

Footnotes​

  • Inline footnotes are preserved
  • Reference-style footnotes are maintained
  • Footnote numbering is automatically handled

Comments​

  • HTML comments are preserved
  • Obsidian-specific comments are handled appropriately

Embeds​

  • Note embeds are converted to include tags
  • Image embeds are converted to proper markdown
  • Other embeds are preserved as links

Curly Braces​

  • Double curly braces can be escaped for Liquid templates
  • Optional conversion to raw tags is available

Front Matter Handling​

O2 preserves existing front matter and adds necessary Jekyll fields:

---
layout: post
title: "Your Post Title"
date: YYYY-MM-DD HH:MM:SS +ZONE
categories: [category1, category2]
tags: [tag1, tag2]
---

File Organization​

  • Converted files are moved to Jekyll's _posts directory
  • Files are renamed to match Jekyll's date-based naming convention
  • Attachments are organized in date-based folders

Configuration​

Required settings:

  • Absolute path to Jekyll project
  • Relative resource path for attachments

Optional features:

  • Curly brace conversion
  • Frontmatter time updates
  • Auto-archive after conversion

Usage Example​

Original Obsidian note:

---
title: My Note
tags: [obsidian, notes]
---

# My First Note

Here's an [[internal link]] and an image:
![[image.png]]

> [!note]
> This is a callout

Some text with a [^footnote].

[^footnote]: This is the footnote text.

Converted Jekyll post:

---
layout: post
title: "My Note"
date: 2024-03-20 10:00:00 +0900
tags: [obsidian, notes]
---

# My First Note

Here's a [internal link]({% post_url 2024-03-20-internal-link %}) and an image:
![image](/assets/img/2024-03-20-my-note/image.png)

> **Note**
> This is a callout

Some text with a [^footnote].

[^footnote]: This is the footnote text.

Troubleshooting​

Common issues and solutions:

Missing Images​

  • Verify the assets directory exists
  • Check image path configuration
  • Ensure proper permissions
  • Check Jekyll path configuration
  • Verify post naming convention
  • Review link conversion settings

Front Matter Problems​

  • Validate YAML syntax
  • Check required fields
  • Verify date format