標準の[[Markdown]]リンク形式であり、ツールを問わず安定して動作しそうなこと。リネームの機会はそこまで多くないこと。[[blink.cmp (Neovim)|blink.cmp]]や画像ファイルを開くアクションとの相性などを考慮し、メリット・デメリット共に優れていると判断した。
## 経緯
[[obsidian.nvim]]を使って[[MkDocs]]のドキュメントを作成・編集することがある。その際は以下の記事で紹介した方法を利用している。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📘MkDocsでObsidianと互換性の高いドキュメントベースを実現する
</div>
<div class="link-card-v2-content">Obsidianやobsidian.nvimと高い互換性を持ち、Markdown・Python・YAML・ターミナル操作の知識がある方向けに、MkDocsとMaterial for MkDocsを使った無料・クローズドなドキュメントサイト構築方法を詳しく解説します。プラグイン設定やカスタマイズ手順も紹介しています。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/%F0%9F%93%98Articles/attachments/2025-02-23.webp" />
<a data-href="📘MkDocsでObsidianと互換性の高いドキュメントベースを実現する" class="internal-link"></a>
</div>
%%[[📘MkDocsでObsidianと互換性の高いドキュメントベースを実現する]]%%
この場合、[[Markdown]]の画像表示には3通りの方法がある。
| 方法 | 具体例 |
| ----------- | ------------------------------------ |
| Markdownリンク | `` |
| Wikiリンク | `![[image path\|alt]]` |
| HTMLリンク | `<img src="image path" alt="alt" />` |
HTMLリンクはやむを得ないときのみ利用するとして、MarkdownリンクとWikiリンクのどちらを使うべきかという選択肢が残る。
## 提案内容
[[MkDocs]]の画像表示は[[Markdown]]リンクを使う。
## 結論に至るまでの過程
MarkdownリンクとWikiリンクの代表的な比較は以下のとおり。
| 項目 | Markdownリンク | Wikiリンク |
| --------------------------------- | ------------ | ------------- |
| [[obsidian.nvim]] > picker から挿入 | pathの補填が必要 | **ほぼそのまま使える** |
| [[blink.cmp (Neovim)\|blink.cmp]] | **補完(相対パス)** | 使えない |
| [[snacks.image]]プレビュー | **対応(相対パス)** | **対応** |
| 画像ファイルへのジャンプ | **できる** | できない |
| 後からrename | できない | できない |
どちらも全ての要件は満たさないが、[[MkDocs]]に画像を挿入するパターンは以下2通りであることを考慮することが大事。
1. 撮影したスクリーンショット画像の挿入
2. 画像ファイルをプロジェクト配下に移動してそれを挿入
1の場合、リンクは挿入済であるため、**後から画像に直接ジャンプできること** の重要度が増す。よって、Markdownリンクが有利。
2の場合は1に加えて、移動した画像ファイルをスムーズに挿入できること という要件が追加される。ファイル名が恣意的なものでなければ、[[snacks.image]]のプレビュー機能が便利であるので、Wikiリンクが少し有利に見えるかもしれない。しかし、[[snacks.image]]でインラインプレビューできること、画像のファイル名の大体わかっていることからすると、[[blink.cmp (Neovim)|blink.cmp]]で挿入したあとにインライン画像を確認でも十分。
### Markdownファイルへのリンクと画像ファイルへのリンクの比較
[[Markdown]]ファイルへのWikiリンクと、画像ファイルへのWikiリンクでは、以下のような特徴がある。
| 特徴 | Markdownファイル | 画像ファイル |
| ---------- | ------------ | --------- |
| 登場回数 | 多い | 少ない |
| リネームの機会 | 多い | ほとんどない |
| ツールごとの仕様差分 | ほとんどない | 異なる可能性がある |
上記から、[[Markdown]]ファイルへのリンクに比べ、画像ファイルをWIkiリンクにするメリットはそこまで大きくない。むしろ、非対応のケースに追われるリスクすらある。
### 補足
- [[obsidian.nvim]] > picker からの挿入は、[[obsidian.nvim]]に手を入れれば実現できる気がする
- Markdownリンクは **後からrenameできない** としたが、[[Markdown]]の[[LSP]]を使えばおそらくできる (私の環境では[[Markdown]]の[[LSP]]は無効化しているためそう書いた)