[Obsidian Publish](https://obsidian.md/publish) は、[[Obsidian]] のノートを Web サイトとして公開できる公式ホスティングサービスである。Markdown ファイルをそのまま公開でき、双方向リンクやグラフビューを Web 上で再現できる点が特徴。
Obsidian 本体の有料アドオンとして提供される。GitHub Pages などのセルフホスト型と比べ、セットアップ不要で Obsidian からワンクリック公開できる手軽さがあり、個人のデジタルガーデンや知識ベースの公開用途で採用されている。
## 静的アセット
vault のルート (`/`) に置いた次のファイルを Obsidian Publish が自動で読み込む。
| ファイル | 役割 |
|---|---|
| `publish.css` | カスタム CSS |
| `publish.js` | カスタム JavaScript |
| `favicon-32x32.png` / `favicon.ico` 等 | サイトの favicon |
`publish.js` はカスタムドメインを設定したサイトでのみ読み込まれる仕様であり、標準ドメイン (`publish.obsidian.md/<site-id>`) では JavaScript が無効になる。
## フロントマター
ノートのフロントマターで公開挙動を制御できる。主要なフィールドは次のとおり。
| フィールド | 役割 |
| ------------- | ---------------------------------------------------------- |
| `publish` | ノート単位の公開フラグ。`true` で excluded フォルダを override、`false` で個別除外 |
| `permalink` | URL のパスを上書きする (例: `about` / `publish/customize`) |
| `aliases` | 旧パスからのリダイレクト先として機能する。Publish ではフォルダを含むフルパスで指定する |
| `cssclasses` | ノートのルート要素に CSS クラスを付与する |
| `description` | SEO メタタグおよびソーシャル共有時の説明文 |
| `cover` | ソーシャルカード用の画像 |
## 公開対象の制御
公開対象は次の 3 つのレイヤーで決まる。後者ほど優先度が高い。
1. **フォルダ単位の included / excluded**: Publish UI の「Manage publish filters」で設定し、ローカルの `.obsidian/publish.json` に保存される
2. **ノート単位のフロントマター `publish:`**: `true` / `false` で個別ノートを明示
3. **手動の Publish / Unpublish 操作**: Publish changes ダイアログで個別に確定
`publish: true` を持つノートは、excluded フォルダ配下でも公開される。「ノート単位の明示指定はフォルダ単位の除外より強い」という設計思想。
本サイトでの公開範囲と運用の実例は [[このサイトの Zettelkasten 運用]] で解説している。
## 制約
公開サイトの機能には次の制約がある。
| 領域 | 制約 |
|---|---|
| Community plugins | Dataview など、レンダリング時に plugin codeblock を必要とするものは動かない。raw markdown を出力する plugin (Waypoint 等) のみ動作する |
| メディア | 1 ファイル 50MB まで。動画・大容量音声は YouTube / Vimeo 等の外部ホスティングが推奨 |
| Graph view | 簡易版のみ。CSS 変数で色のカスタマイズは可能だが、本体のフィルタ・並び替え機能は使えない |
| PDF | モバイル端末では 1 ページ目しか描画されない事例がある。外部ホストへのリンクや明示的なダウンロードリンクが推奨 |
| 検索 | プレーンテキスト検索のみ。ファイル名・aliases・見出しを優先的にヒットさせるため、命名と見出し設計で検索性を担保する |
## 関連ノート
- **[応用]** [[Obsidian Publish の OGP カードを Cloudflare Workers で動的生成する]]: Publish サイトのカード画像を前段の Worker で独自生成に差し替える実践例