TamperMonkeyでScrapBubbleを使う
takker99/ScrapBubbleはTamperMonkeyから動かすこともできる
Scrapbox上のUserScriptと比べたときのpros and cons
pros
参加していないprojectでも使える
/nishioとかをすいすい読めるtakker.icon*2
cons
TamperMonkeyという拡張機能をいれないと動かない
そのため、拡張機能を入れられないmobile向けブラウザだと使用できない
この欠点はsmartphoneでbookmarkletを使う方法を用いるとカバーできる
コード例
code:tampermonkey.js
// ==UserScript==
// @name ScrapBubble
// @namespace https://scrapbox.io
// @version 0.3.1
// @description n hop先のテキストを表示する
// @author takker
// @downloadURL https://scrapbox.io/api/code/takker/TamperMonkeyでScrapBubbleを使う/tampermonkey.js
// @updateURL https://scrapbox.io/api/code/takker/TamperMonkeyでScrapBubbleを使う/tampermonkey.js
// @match https://scrapbox.io/*
// @exclude https://scrapbox.io/settings
// @license MIT
// @copyright Copyright (c) 2021 takker
// ==/UserScript==
window.addEventListener("load", async () => {
// #editorが読み込まれるまで待機
// cf. https://scrapbox.io/scrapbox-drinkup/puppeteerでscrapboxを自動化してイテレーション資料を宣言的に完成させる_(2019%2F9%2F5)
await new Promise(resolve => {
let timer = null;
timer = setInterval(() => {
if (!document.getElementById('editor')) return;
clearInterval(timer);
resolve();
}, 1000);
});
// 念の為1秒くらい待っとく
await new Promise((resolve) => setTimeout(() => resolve(), 1000));
自分が参加しているprojectでは発動させない
ScrapboxのUserScript経由で動かしているScrapBubbleと重複してしまうため
参加しているprojectでも発動させたい場合は、以下のコードブロックをまるごと削って下さい
code:tampermonkey.js
const res = await fetch('/api/projects');
const { projects } = await res.json();
if (projects.map(({ name }) => name).includes(scrapbox.Project.name)) {
console.info(You belong to "/${scrapbox.Project.name}".);
return;
}
console.info(You don't belong to "/${scrapbox.Project.name}". Loading ScrapBubble via TamperMonkey...);
↓codeは各自でbundleしたコードのURLに書き換えて下さい
code:tampermonkey.js
const code = "/api/code/takker/ScrapBubble-min/app.js"
const { mount } = await import(code);
whiteListの設定は各自で好みのものに変えて下さい
code:tampermonkey.js
const whiteList = "nishio", "rashitamemo", "villagepump";
mount({ whiteList });
}, { once: true });
takker.iconの例
/takker-dist/ScrapBubble for TamperMonkey
#2022-10-01 06:53:59
#2022-07-28 10:25:26
#2022-01-13 08:47:01
#2021-12-16 10:56:23