MobileEditMenu
モバイル版Scrapbox改善活動の一環
全て作りかけ
code:mobile_edit_menu.js
import { getCursor } from "https://scrapbox.io/api/code/kuuote/Scrapbox%E3%81%AECursor%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/script.js";
import { statusBar } from "https://github.com/takker99/scrapbox-userscript-std/raw/f7923be4f275abe935286b568ace5687066f2748/browser/dom/dom.ts";
import { useKuuoteMenu } from "https://scrapbox.io/api/code/kuuote/KuuoteMenu/script.js"
const {
cursor,
selection,
mobileSelection,
} = getCursor();
window.cursor = cursor;
window.selection = selection;
window.mobileSelection = mobileSelection;
window.cursor = getCursor();
function mobileEditMenu() {
window.kuuote ??= {};
if (window.kuuote.mobileEditMenu != null) {
return;
}
const data = window.kuuote.mobileEditMenu = {};
const bar = statusBar();
data.start = document.createElement("div");
data.start.innerHTML = "始点";
data.start.onclick = (e) => {
e.preventDefault();
e.stopPropagation();
data.line = cursor.data.line;
data.char = cursor.data.char;
data.start.innerHTML = "拝承";
setTimeout(() => {
data.start.innerHTML = "始点";
}, 1000);
};
bar.append(data.start);
data.end = document.createElement("div");
data.end.innerHTML = "終点";
data.end.onclick = (e) => {
e.preventDefault();
e.stopPropagation();
if (!data.line) {
return;
}
selection.setRange({
start: {
line: data.line,
char: data.char,
},
end: cursor.data,
})
}
bar.append(data.end);
}
useKuuoteMenu().addItem({
title: () => "Mobile Edit Menu",
onClick: mobileEditMenu,
});
$ deno bundle https://scrapbox.io/api/code/kuuote/MobileEditMenu/mobile_edit_menu.js bundle.js