@edv4h/usketch-plugin-deep-link

中文文档
0.2.18发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 2420
原始使用文档
文档目录3 节
  1. URL スキーム
  2. 使い方
  3. エクスポート

@edv4h/usketch-plugin-deep-link

選択した shape や表示位置を URL で共有するためのプラグイン。Figma の ?node-id=...(選択ノードへのリンク)に相当する体験を提供する。

URL スキーム

?shape=<id>[,<id>...]   選択(複数対応・ライブ同期)
?x=<n>&y=<n>&zoom=<n>   厳密なカメラ位置(「この表示へのリンク」用)
  • 選択はライブ同期: shape を選ぶと history.replaceState で ?shape= が更新される(履歴は汚さない)。
  • カメラは明示スナップショット: pan のたびに書き込むとチラつくため、encodeDeepLink で 現在の viewport を含めた URL をコピーしたときだけ付与する。
  • 読込時は URL を解析し、対象 shape を選択してフォーカスする。shape が CRDT 同期でまだ 届いていない場合は shape:added を購読して出現までリトライする(タイムアウトあり)。カメラ 指定があれば自動フレーミングより優先して厳密復元する。

使い方

import { createDeepLinkPlugin } from "@edv4h/usketch-plugin-deep-link";

// createApp は非同期。
const app = await createApp({ store, plugins: [createDeepLinkPlugin()] });

「この表示へのリンク」を作る側(共有ダイアログ等)は encodeDeepLink を利用する:

import { encodeDeepLink } from "@edv4h/usketch-plugin-deep-link";

const search = encodeDeepLink(window.location.search, {
    shapeIds: [...store.getSelection()],
    camera: store.getViewport(),
});
const url = `${window.location.origin}${window.location.pathname}${search}`;

エクスポート

  • createDeepLinkPlugin() — プラグイン本体。
  • encodeDeepLink(search, state) / decodeDeepLink(search) — URL ⇄ 状態の純粋関数。
  • applyDeepLink(store, search, onDone?) — 読込時の選択+フォーカス適用(同期待ち込み)。
  • frameShapes(store, ids, opts?) — 指定 shape 群へビューポートを合わせる(回転対応・ズーム上限)。

版本与发布记录

@edv4h/usketch-plugin-deep-link 共发布 18 个版本,首次发布于 2026/08/05;过去 12 个月发布了 18 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.18latest2026/11/103 天前
0.2.172026/11/103 天前
0.2.162026/11/067 天前
0.2.142026/11/0310 天前
0.2.132026/11/0211 天前
0.2.122026/10/2519 天前

关于 @edv4h/usketch-plugin-deep-link 的常见问题

如何安装 @edv4h/usketch-plugin-deep-link?

在项目目录运行 npm install @edv4h/usketch-plugin-deep-link,或使用 pnpm add / yarn add / bun add。

@edv4h/usketch-plugin-deep-link 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@edv4h/usketch-plugin-deep-link 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@edv4h/usketch-plugin-deep-link 可以商用吗?

@edv4h/usketch-plugin-deep-link 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@edv4h/usketch-plugin-deep-link 的下载量有多少?

根据 npm 官方下载统计,@edv4h/usketch-plugin-deep-link 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,420 次,日均约 81 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@edv4h/usketch-plugin-deep-link 还在维护吗?

最新版本 0.2.18 发布于 2026/11/10(3 天前);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/08/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。