TamperMonkeyでScrapBubbleを使う
Scrapbox上のUserScriptと比べたときのpros and cons
pros
参加していないprojectでも使える
cons
そのため、拡張機能を入れられないmobile向けブラウザだと使用できない
コード例
code:tampermonkey.js
// ==UserScript==
// @name ScrapBubble
// @version 0.3.1
// @description n hop先のテキストを表示する
// @author takker
// @license MIT
// @copyright Copyright (c) 2021 takker
// ==/UserScript==
window.addEventListener("load", async () => {
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
mount({ whiteList });
}, { once: true });
takker.iconの例