scrapbox-local-graph
実装
描画
データ
depth=2
の場合に制限される
使い方
簡単な方法
$ deno check --remote -r=https://scrapbox.io https://scrapbox.io/api/code/takker/Scrapbox-local-graph/sample.ts
sample.tsimport { setup } from "./mod.tsx";
import { Scrapbox } from "../scrapbox-jp%2Ftypes/userscript.ts";
declare const scrapbox: Scrapbox;
// 現状だとmobileでクラッシュする
if (!/mobile/i.test(navigator.userAgent)) {
const { open, close, isOpen } = setup();
scrapbox.PageMenu.addItem({
title: "toggle Local Graph",
onClick: () => { isOpen() ? close(): open(); },
});
}
ページ A
を開いたとき、以下のリンクは確実に表示できる
B
such that A
→ B
or A
← B
C
such that A
→ B
→ C
or A
→ B
← C
or A
← B
→ C
このうち、 A
→ B
or A
← B
or A
→ B
← C
の B
と C
は空リンクかどうかも確実に判定できる
A
→ B
→ C
と A
← B
→ C
の C
は、空リンクだと誤判定する可能性がある
興味を引いたグラフ構造
中身のないページでも構造がちゃんとしているものもある
実装
SVGの構築はなるべくPreactにやらせ、D3.jsはsimulationとzoomのみこなすようにしている
いろいろ無理があってバグっているところが1箇所あるが、概ね安定させられたとみていいだろう
hover時のanimationはなるべくCSS Animationで済ませた
templatescrapbox-local-graph-min
code:mod.js
@CODE@
mod.tsxexport * from "https://raw.githubusercontent.com/takker99/scrapbox-local-graph/0.1.2/mod.tsx";