Obsidianプラグインを改造しました:記事を書き終えたらワンクリックで自分のブログに同期

公開日: 2026-08-01 12:01 1635文字 9 min read ... アクセス数

オープンソースプロジェクト「drewlyton/sanity-obsidian-plugin」をベースに二次開発を行い、Obsidian、Sanity、ブログの間の三者間同期ワークフローを実現しました。ワンクリックでの公開、フィールドマッピング、自動画像アップロードに対応しており、面倒なコピー&ペーストの手順を不要にします。

ブログを書くのが好きな人にとって、快適な執筆プロセスは非常に重要です。

多くのテクノロジー系の著者は、知識管理や執筆ツールとしてObsidianを選んでいます。それは以下のような理由からです:

  • ローカルでのMarkdown保存
  • 強力なプラグインエコシステム
  • 柔軟なノート管理機能
  • プラットフォームに依存しない創作環境

しかし、記事を自分のブログに投稿する際には、従来の手順が依然として面倒です:

  1. ObsidianでMarkdownを書く
  2. 記事の内容をコピーする
  3. CMSのバックエンドにログインする
  4. 画像をアップロードする
  5. タイトル、カテゴリ、カバー画像を設定する
  6. 記事を公開する

このような繰り返し作業は時間の無駄であり、執筆の流れを妨げる原因にもなります。

そこで、オープンソースプロジェクト drewlyton/sanity-obsidian-plugin をベースに二次開発を行い、個人のブログ使用シナリオに合わせて改良しました。

プロジェクトのURL: violet27chen/sanity-obsidian-plugin

プラグインのスクリーンショット
プラグインのスクリーンショット

Sanity for Obsidian:Obsidian、Sanity、ブログの三者間のシンクロナイズされたワークフローを実現

このプラグインの目的は非常にシンプルです:

Obsidianで執筆を行い、ワンクリックでSanityに同期し、自分のブログに自動的に表示する。

全体の流れは以下の通りです:

Obsidian

发布同步

Sanity CMS

博客网站

最終的には、Obsidian ↔ Sanity ↔ Blogの3つの要素が相互に連携する形になります。

なぜObsidian + Sanityを選ぶのか?

Obsidian:執筆に特化

Obsidianの最大の強みは、Markdownとローカル優先の仕組みです。記事は常に自分のデバイスに保存されており、慣れ親しんだMarkdownの書式をそのまま使い続けることができ、複雑なバックエンドエディタに慣れる必要はありません。

Sanity:コンテンツ管理を担当

SanityはモダンなHeadless CMSであり、コンテンツの保存、画像管理、フィールド管理、APIの提供、マルチデバイスでのコンテンツ配信を担当します。ブログのフロントエンドはSanityのデータを読み取るだけで表示できます。

Blog:最終的な表示を担当

Astro、Next.js、Nuxt、その他のフロントエンドフレームワークを使用していても、Sanityを通じて記事のコンテンツを取得できます。執筆、管理、表示の3つのプロセスが完全に分離されています。

プラグインの主な機能

1. ObsidianからSanityへの投稿

Obsidianで記事を書き終えたら、「Publish to Sanity」をクリックすると、プラグインが自動的にSanityのドキュメントを作成し、記事の内容を同期し、画像リソースをアップロードし、ドキュメントIDを保存します。再度コピー&ペーストする必要はありません。

2. SanityからObsidianへの同期

投稿だけでなく、コンテンツの取得もサポートしています。Sanityのバックエンドで記事を編集した後、再び同期して編集を続けることができます。

3. ブログのフィールドマッピングのサポート

ブログの構造は様々ですが、プラグインは固定されたフィールドを使用しません。タイトル、slug、カバー画像、カテゴリなどのフィールドを自由にマッピングでき、テクノロジーブログ、ドキュメントサイト、ナレッジベース、製品サイトなどのシナリオに適しています。

4. 画像の自動処理

記事を書く際に挿入した画像は、公開時にプラグインが自動的にSanityにアップロードし、CDNアドレスに変換されます。CMSのバックエンドに入って再度アップロードする必要はありません。

インストールと設定ガイド

事前準備

始める前に、以下が必要です:

  • Obsidian
  • Sanity プロジェクト
  • Sanity のデータを読み取ることができるブログサイト

Sanity プロジェクトがない場合は、sanity.io にアクセスして登録し、プロジェクトを作成してください。

第1ステップ:Obsidianプラグインのインストール

現時点では、このプラグインはObsidian Community Pluginsにはリリースされていませんので、手動でインストールする必要があります。

方法1:BRATを使用したインストール(推奨)

  1. Obsidianを開き → 設定 → サードパーティプラグイン → コミュニティプラグインを検索し、BRATを見つけてインストールして有効にします。
  2. 設定 → BRAT → Add Beta Pluginに進み、violet27chen/sanity-obsidian-pluginを入力します。
  3. インストールが完了するのを待ち、設定 → サードパーティプラグインで Sanityを見つけて有効にします。

方法2:手動インストール

Obsidianの.obsidian/pluginsディレクトリに移動し、以下のコマンドを実行します:

git clone https://github.com/violet27chen/sanity-obsidian-plugin.git

ディレクトリ構造:.obsidian/plugins/sanity-obsidian-plugin

Obsidianを再起動し、設定 → サードパーティプラグインで Sanityを有効にします。

第2ステップ:Sanity APIトークンの作成

Sanity Dashboardにアクセス → Project → API → Tokens → Add API Tokenに進み、権限として「Editor」を選択します(「Viewer」は選ばないでください。記事を公開するには書き込み権限が必要です)。生成されたトークンをコピーしてください。

第3ステップ:プラグインの設定

Obsidianを開き → 設定 → Sanityに進み、以下の情報を入力します:

  • API Token:前のステップで生成したトークン
  • Project ID:Sanity Dashboard → Project Settingsからコピーしたもの
  • Dataset:通常はproductionを入力します
  • Type Name:記事のタイプ。例:post

第4ステップ:記事フィールドの設定

ブログ記事の構造が以下のようになっていると仮定します:

post:
  title
  slug
  body
  cover
  categories

プラグインの設定で、タイトル、本文、ファイル名、追加フィールドなどを適切に設定します。

第5ステップ:最初の記事の公開

ObsidianでMarkdownファイルを作成し、内容を書き込んだ後、コマンドパネル(Ctrl + P)を開き、「Publish to Sanity」を選択します。プラグインが自動的に記事を作成し、画像をアップロードし、sanity_idを保存します。

第6ステップ:ブログで記事の表示

同期が完了すると、ブログが Sanityのデータを読み取って記事を表示できるようになります。以降は、Obsidianで記事を書いて「Publish」をクリックするだけで、ブログが更新されます。

よくある問題

公開に失敗:403 insufficientPermissions

トークンの権限が不足しています。トークンを再作成し、「Editor」ロールを選択してください。

画像がアップロードされない

画像のパスが正しいか、Markdown形式の画像を使用しているか、トークンにアップロード権限があるかを確認してください。

プラグインが見つからない

設定 → サードパーティプラグインで Sanityが有効になっているかを確認してください。

なぜこのプロジェクトを行うのか?

私は常にこう考えてきました:

ライティングツールは、作者がそのツールに合わせるのではなく、作者をサポートするものであるべきだ。

... アクセス数
© 2026 violet @qiyuan