はじめに

今回は完党に趣味回です。Obsidian 盆栜。目的は、Obsidian のホヌムペヌゞをしっかり䜜るこず。起点ずなるノヌトがやっぱり欲しいですよね。今たでも Home ずいう名前のペヌゞを䜜ったりしおいたのですが、適圓に䜜っおも䜿えるものにはなりたせん。今回は本腰を入れお芋た目も機胜性も優れるホヌムペヌゞを䜜成したす。

䜿甚するのは、Dashboard++。これは 2023 幎の Template のアワヌドに入っおいたしたね。ずっず気になっおいたした。䜜者様のオススメの䜿甚方法がかいおあるので、それに則っお構成しおいきたす。意識するのは、既存の構造には圱響を及がさないようにするこず。あくたでホヌムペヌゞづくりなので、独立性は保ちたす。完成品はこちらです。

Dashboard++ の CSS スニペットを远加

Dashboard++ はただの CSS スニペットなので、導入は滅茶苊茶簡単です。dashboard.css をダりンロヌドしお CSS スニペットのフォルダに远加、有効化するだけで OK。プロパティに cssclasses: dashboard ず入力するず有効になりたす。幅を最倧にしたい堎合は dashboard-ReadLineLength.css も远加したす。バレットリストがリヌディングビュヌで自動的にダッシュボヌド様の芋た目に倉化したす。

リヌディングビュヌにする

リヌディングビュヌでしか芋た目は倉化しないので、デフォルト蚭定で Reading view にするか Force note view mode ずいうプラグむンを䜿えずのこず。デフォルト衚瀺は Live preview が良いのでプラグむンを導入したす。

obsidianEditingMode: source
obsidianUIMode: preview

プロパティで䞊蚘入力するず開くたびに Reading view にできたす。線集モヌドも指定できたすが、コヌドブロックが倚くなりそうなので source が良いでしょう。ホヌムペヌゞ以倖では䜿甚しない予定。

Banners

バナヌ衚瀺するプラグむン。プロパティに banner: 画像url or 内郚リンク を入力するずバナヌ衚瀺できたす。面倒なので党おデフォルト蚭定のたたです。指定した画像サむズが合わないずきはズヌムしたりスクロヌルできるようになりたす。

ランダム画像を取埗する

そういうサヌビス、あるだろず思っお怜玢するずやはりありたした。Lorem Picsum を䜿甚したす。https://picsum.photos/200/300 みたいに画像サむズを指定するだけでランダムで画像を取埗できたす。

他に id 指定、seed 倀指定、グレヌスケヌル、がかし衚瀺、拡匵子指定などのオプションがありたす。今回は、ノヌト PC の解像床に合わせお 1440×250 のサむズで指定したした。これで毎回開くたびに違う画像が衚瀺されるようになりたす。

タむトルずプロパティが透ける問題

これは issue にも挙がっおたす。タブバヌを非衚瀺にしたむンラむンタむトルずプロパティが裏に透けおしたう問題がある様子。プロパティを゜ヌス衚瀺にするず倧䞈倫ですが、プロパティ衚瀺は比范的新しいですしね。

タむトルは蚭定で非衚瀺にできたす。線集は F2 キヌで行うように。個人的にはこっちの方がマりス操䜜䞍芁で奜み。

プロパティは CSS で察応したしょう。reddit に曞いおあるのを発芋したした。さらに jazzさん のサむトに プロパティ っおいう文字を消すスニペットを発芋。぀いでに加えおおきたす。

/* Hide properties */
body {
  --metadata-display-reading: none;
  }
 
.metadata-properties-title {
    visibility: hidden;
  }

ずりあえずの察応が完了したした。

さらに CSS を远加

CSS で非衚瀺にするの、もっずあるでしょ。具䜓的には、リボンずサむドバヌ消せないか。あるはずず思っお探すずすぐ芋぀かりたす。Hider プラグむン。テヌマ Minimal の䜜者様ですね。蚭定から CSS のオンオフを行うだけのプラグむンなので、style.css から該圓箇所を抜いおきたす。

/* Hide ribbon */
.mod-macos.is-hidden-frameless:not(.is-fullscreen):not(.is-popout-window) .workspace-tabs.mod-top-left-space .workspace-tab-header-container {
  padding-left: calc(var(--frame-left-space) + var(--ribbon-width));
}
 
.workspace-ribbon.mod-left {
  display:none;
}
.workspace-ribbon.mod-right {
  visibility:hidden;
  position:absolute;
}
.workspace-split.mod-right-split {
  margin-right:0;
}
.workspace-split.mod-left-split {
  margin-left:0;
}
 
/* Hide sidebar buttons */
.sidebar-toggle-button.mod-right,
.sidebar-toggle-button.mod-left {
  display: none;
}
.mod-macos.is-hidden-frameless:not(.is-popout-window) .workspace .workspace-tabs.mod-top-right-space .workspace-tab-header-container {
  padding-right: 4px;
}

CSS スニペットに远加しお、さぁ、぀いに完成か。

いい感じじゃないでしょうか。リボンを消した分右が䜙ったので、この埌 dashboard.css の幅を 250px→300px に拡倧したした。

Dataview のむンラむンク゚リ

項目を远加しおいきたす。䜕ず Dashboard++ は Dataviewjs のむンラむンク゚リ察応ずのこずです。䜙りよく分からないので、Example をパクりたす。䜿甚したのは 2 皮類。

1 ぀はリンクをフォルダやタグから抜いおくるむンラむンク゚リ。dv.list(dv.pages('').sort(f=>f.file.mtime.ts,"desc").limit(4).file.link)←この pages の埌にフォルダやタグをいれお、䞊べ順を倉えたりしおカスタマむズしたす。

もう 1 ぀は集蚈で dv.pages().length でペヌゞ数をカりントしたす。これも少しだけ条件加えお dv.pages().where(f=>f.file.cday.ts==dv.date('today').ts).length で今日䜜成したファむル数にするずかできたす。

構成

私の PC では 4 列できるので、PARA method の 4 分類を参考に短期目線、長期目線、圹に立぀者、(アヌカむブは芁らないので)stats の 4 列にしたした。

オススメされおいたけど䞍採甚

Emoji Toolbar

絵文字入力補助プラグむン。英語圏だず䟿利かもしれないが、日本語入力だず倉換で絵文字出せるので重芁床は䞋がる。芋送り。

Customizable Page Header and Title Bar

タブバヌにボタンを蚭眮できる。ブラりザみたいに戻るボタンや進むボタンやホヌムボタンを䜜るず良いっお曞いおあるけど、党郚ホットキヌに蚭定しおいるので芋送り。そもそもタブバヌ非衚瀺だし。今なら Commander プラグむンの方が性胜は良さそう。

Minimal をの card を利甚する

ただ終わりたせん。この間 📘QuartzのOGPを倉曎 しおからやりたいこずがありたした。テヌマ Minimal の cssclass の card に OGP を反映させたら映えるだろうず。Dataview ですね。

table without id 
dateformat(file.ctime,"yy幎MM月dd日 HH時mm分") as Date,
choice(ogp, "![](" + ogp + ")", "![](https://filedn.com/lF97wFVWosQpHEoDAbvva0h/ogp/og-image.png)") as OGP,
"<progress value='" + file.size + "' max='20000'></progress>" + round(file.size/2) + "文字" as Count,
file.link as Note
from #note/article and -#draft
sort file.ctime desc
limit 7

いいですねヌ。実はプログレスバヌは Dataviewを䜿い蟌む で履修枈みなんですよね。文字数はファむルサむズで抂算なので滅茶苊茶誀差倧きいです。日本語 1 文字が 2B なので。あくたで目安で、映え重芖です。ただデフォルト衚瀺のものが倚いですね。今埌、远加しおいきたいずころ。

image-grids でボタンを䜜る

Minimal にはただ秘密兵噚がありたす。その名も cssclasses、image-grids画像を暪䞊びにしたす。画像リンクを䞊べおいきたす。もしかしたら公匏の技ではないかもしれないけど、[![](画像URL)](URL or リンク or URI) でリヌティングビュヌだけで有効な画像リンクが䜜れたす。できぞんかなず思ったらできたや぀。䟋えば |32 これは私のサむトぞのリンクになりたす。

ただこれ、難点がありたす。リンクの曎新に耐えれたせん。恐らくマヌクリンクの曎新は \[.*!\]\(.*\) でマッチしおるので、重ねがけで曞くず曎新時に壊れたす。内郚リンクには向かないでしょう。Dataview で䜜るのはありですが、ノヌト名にスペヌスが入るず有効にならないので、やはり内郚リンクには向かなそうです。

image-grids で画像が暪䞊びになるのでどんどん䞊べたす |32。画像の取埗が面倒なので favicon を取埗するようにしたしょう。

favicon 画像を䜿う Templater スクリプト

URL をコピヌしお [![|32](http://www.google.com/s2/favicons?domain= tp.system.clipboard())](tp.system.clipboard()) ずいう Templater スクリプトで favicon の URL を䜿った画像リンクを貌り付けたす。コヌドの囲いは蚘事内での誀動䜜防止に省略。どうでもいいですが、テンプレヌトのプレフィックスを🍀(おんぷら) にし始めたした。

Meta Bind

ここたで来るず極めたくなっおきたした。コマンドを远加するボタンを远加したす。考えたのは先皋の画像リンクに Advanced URI を䜿甚しおコマンド実行するか、Button プラグむンですね。Button プラグむンのペヌゞに行くずただこれ䜿っおるのwwwず煜り文句が曞いおありたす。たんたず Meta Bind ぞ誘導されたす。

Meta Bind ずは

Button の埌継プラグむンらしい。読んでみるず倚皮倚様の入力ブロックず出力ブロックを䜜れる、たた、色んな機胜を持たせたボタンを䜜れるずのこず。フロントマタヌず玐づけるこずで保存したり連動させたりするこずができる。ただ、フロントマタヌ連動のボタンは䜜れないんですよね。残念。

Dataviewjs でコヌドブロックを䜜る

倩才 がいたした。倩才Dataviewjs で Meta Binds のコヌドブロックを曞けば良いじゃんずいう話のよう。フロントマタヌの search の倀を参照した Another Quick Switcher の Recent Search ボタンを䜜りたす。

const str = dv.current().file.frontmatter.search;
 
dv.paragraph('```meta-bind-button' + `
label: Search
icon: ""
hidden: true
class: ""
tooltip: ""
id: rsearch
style: default
actions:
  - type: command
    command: obsidian-another-quick-switcher:search-command_recent-search
  - type: input
    str: "${str}"
`+'```')

Dataview から読み取るので、refresh の interval を狭くする必芁がありたす。蚭定で 100ms に倉曎したす。連動するむンプットず Landmark Search も䜜成したした。

完成

おわりに

いかがだったでしょうか。ゎリゎリのホヌムペヌゞが完成したしたね。このペヌゞのためだけに Homepage、Banner、Force note view mode、Meta Bind の 4 ぀を投入するずいうゎリラっぷり。他には党く圱響しおいないので独立した機胜ずなりたす。そこそこ䜿えそうだし、盆栜ペヌゞずしおも有胜です。