sbgraph

| 2 min read

sbgraphScrapbox のページ間リンクを可視化するためデータを出力する CLI です。

Scrapbox はページ間のリンクを簡単に作成し、ページ配下にリンク先のページが可視化されていくユニークな情報共有システムです。豆蔵では社員の情報共有ツールとして大いに活用されています。

豆蔵のScrapbox活用!コンサルタントの能動性に火をつけマインドチェンジを後押し

sbgraph を使うと Scrapbox プロジェクトの全ページのリンク情報を抽出し dot ファイルを出力するので、GraphViz で可視化することが可能です。

sbgraph は golang で実装しています。Linux / macOS / Windows のバイナリをリリースページから取得可能です。

Latest releas

golang が利用できる環境では go install コマンドでもインストール可能です。

go install github.com/mamezou-tech/sbgraph@latest

sbgraph では以下のサブコマンドが提供されています。

サブコマンド 説明
init 設定ファイルを生成しワーキングディレクトリを決めます
project データ抽出対象の Scrapbox プロジェクトを指定します
status 設定情報を出力します
fetch 対象プロジェクトからページ情報を取得しワーキングディレクトリ配下にキャッシュします
aggregate ワーキングディレクトリにキャッシュしたプロジェクトの情報から、ページビュー・リンク数などの情報を集計します
graph ワーキングディレクトリにキャッシュしたプロジェクトの情報からグラフ構造を抽出して dot ファイル形式などで出力します

以下のようにサブコマンドを実行してグラフデータを取得します。

sgbraph init
sbgraph project -p foobar
sbgraph fetch
sbgraph graph

詳しい使い方は README を参照してください。

sbgraph では dot 形式だけではなく、独自の JSON 形式の出力も可能です。この形式のファイルを使って独自に可視化システムを構築することもできます。以下にパブリックな Scrapbox プロジェクトをデータとして使用した D3.js による可視化のデモサイトを立ち上げています。

Scrapbox viz

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 基本から理解するJWTとJWT認証の仕組み (2022-12-08)
  2. AWS認定資格を12個すべて取得したので勉強したことなどをまとめます (2022-12-12)
  3. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  4. Backstageで開発者ポータルサイトを構築する - 導入編 (2022-04-29)
  5. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  6. Viteベースの高速テスティングフレームワークVitestを使ってみる (2022-12-28)
  7. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  8. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  9. GitHub Actions - 構成変数(環境変数)が外部設定できるようになったので用途を整理する (2023-01-16)
  10. Jest再入門 - 関数・モジュールモック編 (2022-07-03)