ブログにグラフビューを実装してみた
Obsidianのグラフビューが気に入ったので自分のウェブサイトにも実装してみた
グラフビューってなに

グラフビューでは、このように、相関図のようなグラフでアイテム間の関係性を表すことができる。
ブログを書くのに使っているObsidianというエディターに同様の機能が搭載されている。Obsidianの記事をwebで公開する、Obsidian Publishにもこのグラフビューが搭載されていて、グラフビューと同じレンダリングエンジンを使っていると言っている。

Obsidian ではどうやら自前で実装しているようだけど、ソースコードが公開されていないので、仕方なく自前で実装する。
記事数もそこまで多くないし、パフォーマンスについてはそこまで考えなくて良かったので、先程挙げたredditで言及されていたd3.js というライブラリを内包した、React-Force-Graph というパッケージを使って、力のシミュレーションとかを微調整している。
React component for 2D, 3D, VR and AR force directed graphs - vasturiano/react-force-graph
GitHub
類似のもので、vis.js というものもあるが、d3.js の方がより複雑な操作ができるのでそっちを選択(なお、導入しやすさで言ったら vis.js)。モバイルでの閲覧が多いようなので、ホバー操作などをせずにすべての機能が利用できるようにした。
パッケージ名の通りグラフビューは React で動作している。このサイトはほとんどが Static で、Astro を使っているので、グラフビューのコンポーネント以外は全て事前にビルドしている。
ビルド時に、全ての記事と、その関係性を記述した JSON を作成し、ページ読み込み時にそれをロードしている。
これ、ページ数が増えまくったら結構厳しい気もするので、しばらくこれで使ってみて、ダメそうだったら別の方法を考えようと思う。
0人が0回拍手しました
関連記事
📝EmDashに移行してみる
EmDashに移行してみる
元々Obsidian / Gitで管理していたブログだけど、スマホでサクッと書くときに毎回Git操作するのが面倒なのと、ObsidianのUIがブログ向けに最適化されていないこともあり、Emdashに移行してみました
🔧Maker Faire Tokyo 2026に出展した話
Maker Faire Tokyo 2026に出展した話
Vibeで作ったハードウェアをなんとなく出したら出展することになった!?Maker Faire Tokyoにソフトウェア畑の人間が作ったバッテリーレスで動く電子ペーパーNFC基板名刺出展してみました。
⚒️チーム開発で使える便利ツールの紹介
チーム開発で使える便利ツールの紹介
チーム開発を初めてやる時、みんなでどうやるかとても悩みます。この記事ではそういったケースで使えそうなツールをまとめて紹介しています。