Obsidian Basesでカード形式に表示する場合、通常は画像の属性(下図ではcover_image_url)を指定し、その属性をもとにカード上部に画像が表示されます。ですが、すべてのノートに画像属性が指定されているわけではありません。その場合、ノート内の最初の画像をサムネイル(Thumbnail)として自動的に取得することは可能でしょうか?もし可能なら、BaseのPropertyはどのように設定すればよいのでしょうか?

ローカル画像のみ対応

本記事の方法はローカルに保存された画像ファイルのみ有効です。画像URLには対応していません。

cover_image_url は画像URL(http://またはhttps://で始まるもの)です

gh|700

1. 表形式ビュー

file.embeds とは?

file.embeds は、ノート内に埋め込まれたすべてのファイルを取得できるオブジェクトです。ファイルオブジェクトのリスト(List of File objects)を返し、それぞれのオブジェクトは埋め込まれたファイルを表します。

  • 画像ファイル用の新規式: file.embeds[0]
  • サムネイル用の新規式: image(file.embeds[0]) (画像ファイルを表示)
  • フィルター条件: file.embeds[0].containsAny("png", "jpg", "gif")

gh|700

2. カード形式ビュー

  • 画像ファイル用の新規式: file.embeds[0]
  • フィルター条件: file.embeds[0].containsAny("png", "jpg", "gif")
  • カードビュー設定: Image propertyに新規式 image を選択
    • Image fit: Coverを選択すると画像が枠いっぱいに表示され、Containを選択すると画像全体が表示されます

gh|700

3. 💡 関連リンク

✅ 解説記事(繁体字中国語): https://jdev.tw/blog/8898/
Explanation article (English)
解説記事(日本語)

✅ 参考(日本語): Obsidian Bases 入門|松濤Vimmer
✅ 参考: 「Bases」でノート内の最初の画像をカードカバーに設定する - 経験共有 - Obsidian 中文フォーラム

##