OG Bridge

Online HTML to Markdown converter with automatic frontmatter — built for Ghost, Notion, Obsidian, and Hugo.

Try a sample:
Paste content to begin

No sign-upNothing leaves your browserFree to useTerms of Use

How OG Bridge Converts HTML to Markdown

OG Bridge reads rich HTML from your clipboard when pasting from Ghost, Notion, Obsidian, or Hugo. It passes that HTML to TurndownService, which traverses the DOM to emit clean Markdown: headings become ATX-style # markers, lists retain nesting, inline code becomes backticks, and code blocks become fenced blocks with language hints. Sibling and ancestor structure is maintained, so nested lists inside blockquotes keep their shape. The pipeline runs locally; nothing is sent to a server.

Why YAML Frontmatter Matters for Obsidian

Obsidian's Dataview plugin indexes frontmatter rather than scanning raw note prose. Keys such as date, tags, and aliases become queryable fields that can be filtered, sorted, and joined across your vault. Without consistent metadata, a note is unavailable to Dataview; with it, your vault functions as a structured database. OG Bridge emits consistent key names and value shapes on every conversion so your queries remain stable.

dataview
list from "ghost" where date > date(today) - dur(7, "days")

How Ghost, Notion, Obsidian, and Hugo HTML Is Detected

Ghost and Notion Detection

Ghost HTML is identified by searching for elements with class names such as .kg-card or .post-content. Notion HTML is identified by searching for the .notion-page-content class, which wraps the main page canvas during clipboard copy operations.

Obsidian and Hugo Detection

Obsidian HTML is identified via the .markdown-preview-view class in the pasted document. Hugo syntax-highlighted blocks are located using the .highlight class on parent divs wrapping pre and code elements that contain a data-lang attribute.

What Each Template Outputs

Ghost

Outputs YAML metadata including the title extracted from the first heading, a kebab-case slug, a date field, tags: [ghost], and draft: true.

Notion

Produces YAML metadata with two primary keys: the title of the note and a publishedAt date stamp.

Obsidian

Produces YAML metadata containing a title, a tags: [obsidian] array, and an empty aliases: [] array.

Hugo

Generates TOML metadata (enclosed by +++ delimiters) featuring title, date, a draft = true boolean, and tags = ["hugo"].

Browser Compatibility and Why No Server Is Needed

TurndownService runs entirely in the browser JS engine, the #share= feature encodes output as base64 in the URL fragment (never sent to any server), and the only outbound requests are Google Fonts CSS and, if the contact form is submitted, a POST to formspree.io. Conversion data never leaves the tab. It works on any device with a modern browser including Chrome 90+, Firefox 88+, Safari 14+, and Edge 90+, functioning offline once loaded.

HTML to Markdown — Before and After

Paste HTML from Ghost, Notion, Obsidian, or Hugo and see exactly what OG Bridge produces — frontmatter included.

HTML Input
<article class="post-content">
  <div class="kg-card kg-image-card">
    <img src="hero.jpg" alt="Hero image" />
  </div>
  <h2>Why Ghost Uses Mobiledoc</h2>
  <p>Ghost stores content as Mobiledoc JSON,
  then renders it to HTML for the clipboard.
  Class names like kg-card and post-content
  travel with the markup on copy.</p>
  <ul>
    <li>Portable across themes</li>
    <li>Rendered server-side</li>
    <li>Clipboard carries full HTML</li>
  </ul>
</article>
Markdown Output
---
title: Why Ghost Uses Mobiledoc
slug: why-ghost-uses-mobiledoc
date: 2026-08-17
tags:
  - ghost
draft: true
---

## Why Ghost Uses Mobiledoc

Ghost stores content as **Mobiledoc JSON**, then
renders it to HTML for the clipboard. When you copy
from Ghost's editor, class names like `kg-card`
and `post-content` travel with the markup.

- Portable across themes
- Rendered server-side
- Clipboard carries full HTML

Frequently Asked Questions

Does OG Bridge send my content to a server?
No. All conversion runs inside your browser using JavaScript. Nothing you paste is transmitted anywhere. The only outbound requests are to load fonts from Google Fonts and, if you submit the contact form, to Formspree.

Which platforms does OG Bridge detect automatically?
Ghost, Notion, Obsidian, and Hugo. Detection works by inspecting class names and attributes in the pasted HTML — for example, .kg-card for Ghost or .notion-page-content for Notion.

What frontmatter does OG Bridge add to the output?
It depends on the detected platform. Ghost output includes title, slug, date, tags, and draft. Notion output includes title and publishedAt. Hugo output includes title, date, draft, and tags in TOML format. Obsidian output includes title, tags, and aliases in YAML.

Can I share a converted document with someone else?
Yes. The Share button encodes your Markdown output as a base64 string in the URL fragment (the part after #). The recipient opens the link and sees your output loaded automatically. Nothing is stored on a server.

Can I copy my Markdown output formatted for Google Docs?
Yes. The "Copy for Google Docs" option in the + menu copies your output as rich text, so pasting into a Google Doc renders real headings, bold, italic, and lists instead of raw Markdown symbols. This is a lightweight conversion rather than a full Google Docs import — tables, nested lists, and blockquotes are not yet converted and may not appear as expected in the pasted result.

Does OG Bridge work offline?
The conversion itself works offline once the page has loaded, because TurndownService runs in the browser. Google Fonts will not load without a connection, but this only affects typography — the tool remains fully functional.

HTML to Markdown Converters

All-in-One ConverterGhost to MarkdownNotion to MarkdownObsidian to MarkdownHugo to Markdown