Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Blog Bridge

merriermerrier22 downloads

Sync Obsidian notes to GitHub-backed Markdown static-site blogs with image handling and status tracking.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates7

Blog Bridge

Blog Bridge

Blog Bridge is an Obsidian plugin for syncing selected notes to GitHub-backed Markdown static-site blogs.

Chinese documentation

Screenshots

Blog Bridge status view

Blog Bridge settings

Supported Frameworks

Blog Bridge focuses on file-based Markdown static-site frameworks:

Framework Default post path Default image path
Hexo source/_posts source/images/obsidian
Hugo content/posts static/images/obsidian
Jekyll _posts assets/images/obsidian
Astro src/content/blog public/images/obsidian
VitePress docs/posts docs/public/images/obsidian
MkDocs docs/blog/posts docs/assets/images/obsidian

The paths are configurable, so the presets are starting points rather than hard rules.

Features

  • Sync the current Markdown note to a GitHub repository.
  • Choose a target framework preset for path, image URL, and frontmatter conventions.
  • Create one GitHub commit for the generated Markdown and local images.
  • Choose between direct commits to the target branch or Pull Request / MR sync from a custom branch.
  • Preserve existing frontmatter and fill missing title and date.
  • Use frontmatter slug or urlname for the output file name, then fall back to a slugified title.
  • Use Jekyll's dated post filename convention automatically.
  • Open a sync status page from the ribbon icon, with title, tag, status filters, page-size options, and batch sync.
  • Mark notes as Modified when they changed locally after the last successful sync.
  • Follow the current Obsidian app language for Chinese and English UI text.
  • Store tokens through Obsidian SecretStorage; plugin data only stores the secret name.

Installation

Install Blog Bridge from Obsidian's Community Plugins marketplace:

  1. Open Obsidian Settings.
  2. Go to Community plugins and turn off Restricted mode if needed.
  3. Choose Browse, search for Blog Bridge, then install and enable it.

For local development from source:

cd .obsidian/plugins
git clone https://github.com/merrier/obsidian-blog-bridge.git
cd obsidian-blog-bridge
npm install
npm run build

Settings

Configure the plugin from the settings tab:

  • Blog framework: target Markdown static-site framework.
  • GitHub owner: user or organization that owns the blog repository.
  • GitHub repository: repository name without the owner.
  • GitHub branch: target branch, defaults to main. The branch must already exist.
  • Sync mode: choose Direct commit or Pull Request / MR.
  • MR branch: branch used for Pull Request / MR sync, defaults to blog-bridge/sync. It must differ from the target branch.
  • GitHub token: select an Obsidian SecretStorage entry. The plugin currently accepts tokens that start with ghp_.
  • Sync source directory: vault folder shown in the status page.
  • Blog note template: optional Markdown template for new notes.
  • Apply template to new notes: off by default. When enabled, new empty Markdown files in the sync source directory receive the selected template content.
  • Posts directory: post path in the GitHub repository.
  • Local image directory: image path in the GitHub repository.
  • Image name template: defaults to {{slug}}/{{filename}}.
  • Git commit message template: defaults to chore(blog): sync {{title}}.

Token Permissions

Use a GitHub classic personal access token because Blog Bridge validates the ghp_ prefix.

  • Direct commit mode needs content read/write access to the target repository.
  • Pull Request / MR mode also needs permission to create and update pull requests.
  • The token value is stored by Obsidian SecretStorage. Blog Bridge only stores the selected secret name in data.json.

Privacy and Network Access

Blog Bridge sends requests to the GitHub REST API to read repository refs, create blobs, commits, branches, and pull requests for the repository you configure. It does not include client-side telemetry, analytics, or advertising.

Blog Bridge is desktop-only because it reads local Markdown notes and local image attachments from your Obsidian vault before uploading the selected note and referenced local images to your configured GitHub repository.

Usage

  • Click the ribbon icon to open the Blog Bridge status page.
  • Filter notes from the status page and click Sync on a row, or select multiple notes and run Sync selected.
  • Or run Sync current note to blog from the command palette.
  • After a successful sync, the status page records the target path, commit link, and Pull Request link.
  • If a note changes locally after a successful sync, its status becomes Modified and it can be synced again.

Image Handling

Blog Bridge only supports local images. It does not depend on image hosting services.

The plugin resolves Markdown image links and Obsidian wiki image links, commits local images as blobs in the same GitHub commit, and rewrites Markdown links to public site paths for the selected framework.

Image name template variables:

{{filename}} {{slug}} {{index}} {{hash}} {{original}} {{ext}} {{date}}

{{filename}} preserves the Obsidian attachment file name.

Template Variables

Blog note templates support:

{{title}} {{slug}} {{date}} {{datetime}}

Image name templates support:

{{filename}} {{slug}} {{index}} {{hash}} {{original}} {{ext}} {{date}}

Commit message templates support:

{{title}} {{slug}} {{status}}

Current Limits

  • Manual sync only. There is no automatic watcher, batch sync, or scheduled sync.
  • Local images only. PicGo and other image hosting workflows are not supported.
  • Token authentication only. GitHub OAuth is not supported yet.
  • MDX-specific transforms are not implemented yet; Markdown is synced as Markdown.

Development

npm install
npm run build

The build produces main.js, which Obsidian loads from the plugin directory.

Sponsor

If Blog Bridge saves you time maintaining your blog, you can support the author through GitHub Sponsors:

Sponsor merrier on GitHub

96%
HealthExcellent
ReviewSatisfactory
About
Sync Markdown notes to GitHub-backed static-site blogs, committing post files and images or opening pull requests via a custom branch. Apply framework presets to map paths and frontmatter while preserving metadata and filling missing title/date, and open a sync status page to batch-sync and track modified notes.
PublishingGit
Details
Current version
1.1.0
Last updated
Last week
Created
2 weeks ago
Updates
7 releases
Downloads
22
Compatible with
Obsidian 1.11.4+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Sponsor
Open Collective
Author
merriermerrier
merrier.wang
GitHubmerrier
  1. Community
  2. Plugins
  3. Publishing
  4. Blog Bridge

Related plugins

Quartz Syncer

Manage and publish your notes to Quartz, the fast, batteries-included static-site generator.

Publish and GitHub URL

Copy or open the URL of the corresponding note on your Publish site. You can also open its Git commit history on GitHub.

Git

Integrate Git version control with automatic backup and other advanced features.

Fit

Minimalist File gIT (FIT) to sync your files across mobile and desktop devices using GitHub.

Dataview Serializer

Serialize Dataview queries to Markdown, and keep the Markdown representation up to date

GitHub

GitHub Sync

Sync vault to personal GitHub.

GitHub

Share as Gist

Share a note as a GitHub.com Gist.

Permalink Opener

Open URLs based on a permalink or slug in the note properties. Useful with static site generators such as Jekyll, Hugo, Eleventy, etc.

Plugin Update Tracker

Know when installed plugins have updates and evaluate the risk of upgrading.

JotBird

Publish notes as shareable web pages with one click. No account required.