generated at
import

使い方
各projectの自分のページの script.js に以下を貼り付ける
js
import "../../takker/import/script.js";

2022-02-04 09:28:09 #editor がmountされる前に script.js が読み込まれるようになってしまった
おそらく、Firefox Nightlyに変えたせい
応急処置として以下のコードを導入する
script.js
await new Promise(resolve => { let timer = null; timer = setInterval(() => { if (!document.getElementById('editor')) return; clearInterval(timer); resolve(); }, 1000); });


script.js
const name = "Scrapbox-UserScript-Switcher"; const devUserPage = "import-dev"; const params = new URLSearchParams(location.search);
script.js
if (params.has("noscript")) { console.info(`[${name}] No script mode`);
dev modeではimport-devを読み込む
script.js
} else if(params.has("dev")) { console.info(`[${name}] Development mode. Loading "${ `../${devUserPage}/script.js` }" instead...`); await import(`../${devUserPage}/script.js`); console.info(`[${name}] Successfully loaded.`);
script.js
} else { // 通常のUserScriptを読み込む await importProductionUserScript(); }

projectごとにUserScriptを切り替える
ベースscriptはfor-any-projectから読み込む
script.js
async function importProductionUserScript() { const defaultSrc = "../../takker-dist/for-any-project-min/script.js"; switch(scrapbox.Project.name) { case "takker": await Promise.all([ await import(defaultSrc), await import("./takker.js"), ]); break; case "takker-memex": await import("../../takker-dist/for-any-project-min/takker-memex.js"); break; case "villagepump": await Promise.all([ await import(defaultSrc), await import("./villagepump.js"), ]); break; case "programming-notes": await Promise.all([ await import(defaultSrc), await import("./programming-notes.js"), ]); break;
以下に相当する機能をPorterっぽい編集バーを生やすUserScriptで導入している
また、Ankiの穴埋めを作るPopupMenuも入れている
script.js
case "takker-books": { const { addButton, insertText, } = await import(defaultSrc); addButton({ display: ({ selection }) => selection.hasSelection() ? "\\n" : "", onClick: async ({ selection }) => { const text = selection.getSelectedText(); await insertText( text.replaceAll("\n", "") .replaceAll(".", ".\n") .replaceAll(".", ".\n") .replaceAll("。", "。\n") ); }, }); addButton({ display: ({ selection }) => /https:\/\/gyazo\.com\/[a-z0-9]+/.test( selection.getSelectedText() ) ? { type: "trim" } : "", onClick: ({ selection }) => { const id = selection .getSelectedText() .match( /https:\/\/gyazo\.com\/([a-z0-9]+)/ )?.[1]; if (!id) return; window.open(`https://gyazo.com/${id}/transform`); }, }); await import("../cosense-srsの穴埋めを作るPopupMenu/script.js"); break; }
script.js
default: await import(defaultSrc); break; } }

個別のproject用scripts
villagepump.js
import { execute } from "../Scrapbox-theme-saver/script.js"; execute({interval: 30 * 60 * 1000}); import "../pin-diary-6-min/script.js"; import "../18:00~09:00は井戸端を開けなくするUserScript/ban.js"; import { setup } from "../ToMyProj/mod.js"; setup("takker");
themeを paper-dark-dark に変更する
programming-notes.js
import { setTheme } from "../scrapbox-theme-customizer/script.js"; setTheme("paper-dark-dark");
takker.js
import "../scrapbox-open-episopass/script.js";
bundle済みコードはfor-takker-memexを参照
takker-memex.js
import "../for-any-project/script.ts"; export * from "../for-any-project/script.ts"; import "../New_Buttonで開くページを変更する/script.js"; import "../LETUS_online_editor形式に変換してcopyするPopupMenu/script.js"; import "../選択範囲をspell_checkするPopupMenu/script.js"; import "../文字カウント_(scrapbox)/script.js"; import "../takker99%2Ftakker-scheduler%2Fmobile/script.ts"; import "../scrapbox-open-episopass/script.js";
takker-memex.js
import { main } from "../takker99%2Ftakker-scheduler/auto-diary.ts"; main();
takker-memex(txt)
for-takker-memex [/takker-memex]で使うUserScript [https://scrapbox.io/api/code/takker/import/takker-memex.js takker-memex.js]を[このURL @URL@]でbundleしたもの code:script.js @CODE@

hr
UserCSS

style.css
@import "../import-css/style.css";
default.css
@import "../import-css/default.css";

UserCSSも script.js から読み込ませるようにしようかな
projectごとにUserCSSを動的に切り替えることができる

#2024-05-27 15:46:50 /takker-booksで使うpopup menu shortcutをtakker99/ScrapBindings-settingsに移した
#2023-03-22 15:38:57 ToMyProjを入れた
#2022-12-29 03:19:16
#2022-12-27 07:50:40
全く見ない
むしろmobileでPage Info Menuなどと被って邪魔
#2022-06-20 08:03:16
#2022-05-21 14:00:59
#2022-05-19 11:26:08
#2022-05-10 07:48:03 refactoring
#2022-04-30 06:51:50
#2022-02-11 22:02:43
#2022-01-07 10:08:06
#2022-01-05 16:47:29 タスク管理ツールをtakker99/takker-schedulerに置き換えた
#2021-12-15 21:22:27 /takker/takker-memexのコードを変更
#2021-11-16 18:15:23