common.js
template(txt)for-any-project-min
[for-any-project]を[このURL @URL@]でbundleしたもの
code:script.js
@https://scrapbox.io/api/code/takker/for-any-project/script.ts@
code:takker-memex.js
@https://scrapbox.io/api/code/takker/import/takker-memex.js@
code:tex-worker.js
@https://scrapbox.io/api/code/takker/ScrapRun/worker.ts@
code:esbuild-worker.js
@https://scrapbox.io/api/code/takker/esbuild-wasm-no-blob/worker.ts@
code:takker-project.css
@https://scrapbox.io/api/code/takker/takkerのbundle前CSS/project.css@
code:takker-user.css
@https://scrapbox.io/api/code/takker/takkerのbundle前CSS/user.css@
code:takker-memex.css
@https://scrapbox.io/api/code/takker/takker-memexのbundle前CSS/project.css@
code:takker-private.css
@https://scrapbox.io/api/code/takker/takker-privateのbundle前CSS/project.css@
$ curl https://scrapbox.io/api/code/takker/for-any-project/import_map.json > deno-scrapbox-aaa.jsonc && deno check --remote -r=https://scrapbox.io --config=deno-scrapbox-aaa.jsonc https://scrapbox.io/api/code/takker/for-any-project/script.ts || rm deno-scrapbox-aaa.jsonc
$ deno info -r=https://scrapbox.io --import-map=https://scrapbox.io/api/code/takker/for-any-project/import_map.json https://scrapbox.io/api/code/takker/for-any-project/script.ts
script.tsimport { sync } from "../scrapbox-watchlist-sync/script.ts";
sync({ project: "takker-dist" });
script.tsimport "../Open_Gyazo_page_menu/script.js";
script.tsimport { setup as setupSearch } from "../takker99%2Fscrapbox-incremental-fulltext-search/mod.tsx";
setupSearch().then((ops) => {
scrapbox.PageMenu.addItem({
title: "Fulltext Search",
onClick: () => {
ops.toggle();
},
});
});
script.tsimport { scrapBindings } from "./bindings.ts";
export { scrapBindings };
bindings.tsimport { Mousetrap } from "../takker99%2FScrapBindings/mod.ts";
import {
useStatusBar,
addTextInputEventListener,
removeTextInputEventListener,
} from "../scrapbox-userscript-std/dom.ts";
import { config, task } from "../takker99%2FScrapBindings-settings/config.ts";
import { Scrapbox } from "../scrapbox-jp%2Ftypes/userscript.ts";
declare const scrapbox: Scrapbox;
const { render } = useStatusBar();
let animationId: number| undefined;
const onSequenceUpdate = (text: string) => {
if(animationId !== undefined) cancelAnimationFrame(animationId);
animationId = requestAnimationFrame(() => render(
{ type: "text", text, }
));
};
export const scrapBindings = new Mousetrap(
{
addEventListener: addTextInputEventListener,
removeEventListener: removeTextInputEventListener,
},
{
onSequenceUpdate,
},
);
const errors = scrapBindings.bind({
...config,
...(scrapbox.Project.name === "takker-memex" ? task : {}),
});
if(errors.size > 0) {
alert([...errors.entries()].map(
([seq, messages]) => `${seq}:\n${
messages.map((message) => `- ${message}`).join("\n")
}`
).join("\n"));
}
script.tsimport "./scrapBubble.ts";
scrapBubble.tsimport { mount } from "../takker99%2FScrapBubble/mod.tsx";
import { Scrapbox } from "../scrapbox-jp%2Ftypes/userscript.ts";
declare const scrapbox: Scrapbox;
const takker_list = ["takker-memex", "takker-private", "takker", "takker-books", "villagepump"];
const additional_list= [];
switch (scrapbox.Project.name) {
case "hub":
case "villagepump":
case "verbalizing-community":
additional_list.push("villagepump", "hub", "verbalizing-community");
break;
case "programming-notes":
case "customize":
case "scrapboxlab":
additional_list.push("programming-notes", "customize", "scrapboxlab");
break;
case "sta":
additional_list.push("sta-taskmanagement");
break;
case "sta-taskmanagement":
case "taskmanagement":
additional_list.push("sta-taskmanagement", "taskmanagement");
break;
case "plurality-japanese":
additional_list.push("nishio", "tkgshn");
break;
}
mount({
//expired: 10 /*60秒は長いので10秒にした*/,
delay: /mobile/i.test(navigator.userAgent) ? 300 : 500,
whiteList: [...takker_list, ...additional_list],
<style>
の基準となるURLは、https://scrapbox.io/assets/index.html になるっぽいscrapBubble.ts style: '@import "/api/code/takker/kakeruの背景を白にするUserCSS/style.css";\n@import "/api/code/takker/アイコン記法を画像記法っぽくするUserCSS/style2.css";',
});
script.tsimport {
setup as setupJupyter
} from "../@takker%2FScrapJupyter/mod.ts";
import { findLatestCache, saveApiCache } from "../scrapbox-userscript-std/dom.ts";
// v0.24.0
const WASM_URL = "https://scrapbox.io/files/67344295032adf96d1e4c276.wasm";
const WORKER_URL = "/api/code/takker-dist/for-any-project-min/esbuild-worker.js";
(async () => {
const req = new Request(WASM_URL);
let res = await findLatestCache(req);
if (!res) {
res = await fetch(req);
await saveApiCache(req, res);
}
await setupJupyter(
await WebAssembly.compileStreaming(res),
WORKER_URL,
);
})();
script.tsimport { setup as setupSelectSuggestion } from "../選択範囲に似ているリンクを入力補完するUserScript/mod.tsx";
import { addTextInputEventListener } from "../scrapbox-userscript-std/dom.ts";
import { Scrapbox } from "../scrapbox-jp%2Ftypes/userscript.ts";
declare const scrapbox: Scrapbox;
(async () => {
const projects = [
scrapbox.Project.name,
"takker", "takker-memex", "takker-books", "takker-private",
"villagepump", "hub", "arpla",
"unnamedcamp", "unnamed-project",
"nishio", "enchi", "rashitamemo", "motoso",
"shokai", "masui", "rakusai", "yuiseki", "akiroom",
"c4j", "miyamonz", "mrsekut-p", "masuilab",
"kidaaam-92022284", "nwtgck", "juneboku",
"marshmallow-rm", "sushitecture", "sno2wman", "inteltank",
"issac-37765679", "blu3mo", "yosider", "Mijinko", "Mijinko-other",
"scrapbox-drinkup", "nota-techconf",
"customize", "scrapboxlab", "scrasobox", "programming-notes",
"tus-alpine", "tus-alpine-private",
"guiland",
];
const ops = await setupSelectSuggestion({
projects,
mark: {
...Object.fromEntries(
[
["takker", "takker"],
["takker-memex", "takker"],
["takker-books", "takker-books"],
["takker-private", "takker-private"],
["nishio", "nishio"],
["rashitamemo", "rashita"],
["enchi", "雑談_2022-04-12~"],
["rakusai", "rakusai"],
["masui", "概要"],
["shokai", "shokai"],
["yuiseki", "yuiseki"],
["akiroom", "はじめに"],
["inteltank", "sawachin"],
["motoso", "もとそのもと"],
["villagepump", "井戸端"],
["hub", "scrapbox.io%2Fhub_について"],
["masuilab", "増井研に入ったらまずやること"],
["marshmallow-rm", "読書猿マシュマロ全質問回答"],
["miyamonz", "miyamonz"],
["mrsekut-p", "mrsekut"],
["kidaaam-92022284", "kidooom"],
["c4j", "Code_for_Japan"],
["suto3", "suto3"],
["blu3mo", "blu3mo"],
["nwtgck", "nwtgck"],
["juneboku", "juneboku"],
["jigsaw", "jgs"],
["sno2wman", "SnO2WMaN"],
["sushitecture", "hashrock"],
["unnamedcamp", "知を営む"],
["unnamed-project", "unnamed-project"],
["issac-37765679", "cFQ2f7LRuLYP"],
["blu3mo", "blu3mo"],
["yosider", "yosider"],
["Mijinko", "Mijinko_SD"],
["Mijinko-other", "Mijinko_SD"],
["customize", "みんなのカスタマイズ"],
["scrapboxlab", "入会手続き"],
["scrasobox", "Scrapboxとあそぶ"],
["programming-notes", "参加する"],
["guiland", "概要と参加方法"],
].map(([p, t]) => [p, `https://scrapbox.io/api/pages/${p}/${t}/icon`])
),
"NDLSH-SB": "📚",
"scrapbox-drinkup": "https://scrapbox.io/assets/img/page-icon/scrapbox_beaver.png",
"nota-techconf": "https://i.gyazo.com/727f42bbd9e2534d99d70e6ea90705b3.jpg",
"plurality-japanese": "⿻",
},
enableSelfProjectOnStart: true,
});
const pvsp = (e: Event): void => {
e.preventDefault();
e.stopPropagation();
};
const hasPopup = (): boolean => document.querySelector(".line .popup-menu") !== null;
scrapBindings.bind({
"<Tab>": (e) => { if(hasPopup()) return; if(!ops.selectNext?.({ cyclic: true })) return; pvsp(e); },
"<S-Tab>": (e) => { if(hasPopup()) return; if(!ops.selectPrev?.({ cyclic: true })) return; pvsp(e); },
"<Enter>": (e) => { if(hasPopup()) return; if(!ops.confirm?.()) return; pvsp(e); },
"<Esc>": (e) => { if(hasPopup()) return; if(!ops.cancel?.()) return; pvsp(e); },
});
})();
script.tsimport { setup as setUpRun, previewSVG, previewGLSL, previewPlantUML, previewTikZ } from "../ScrapRun/mod.ts";
setUpRun({ previewers: [
{ when: /(?:^|\.)svg$/, preview: previewSVG },
{ when: /(?:^|\.)glsl$/, preview: previewGLSL },
{ when: /(?:^|\.)(?:plantuml|puml|pu)$/, preview: previewPlantUML },
{ when: /(?:^|\.)tikz\(tex\)$/, preview: previewTikZ(
"/api/code/takker-dist/for-any-project-min/tex-worker.js",
"https://scrapbox.io/files/65d1645c19cd8e002433c3df",
) },
]});
script.tsimport { setup as setupSlider } from "https://raw.githubusercontent.com/takker99/scrapbox-history-slider/0.2.1/App.tsx";
(async () => {
const { toggle } = await setupSlider([]);
scrapbox.PageMenu.addItem({
title: "履歴スライダー",
image: "https://1.bp.blogspot.com/-UZtkSEX0wh4/U5l5_dNcEsI/AAAAAAAAhWs/UzJGVzyiX8Y/s800/kaichu_dokei.png",
onClick: toggle,
});
})();
script.tsimport { isMobile } from "../mobile版scrapboxの判定/script.js";
script.js.disabledimport { setup as setup2 } from "../scrapbox-local-graph/mod.tsx";
// 現状だとmobileでクラッシュする
if (!/mobile/i.test(navigator.userAgent)) {
const { open, close, isOpen } = setup2(
document.documentElement.dataset?.projectTheme?.includes?.("dark")
|| scrapbox.Project.name === "takker"
? "svg { --graph-link: #5a5a5a; }"
: ""
);
close();
scrapbox.PageMenu.addItem({
title: "toggle Local Graph",
onClick: () => { isOpen() ? close(): open(); },
});
}
script.tsimport "../popup/script.ts";
script.tsimport { main } from "../takker99%2Ftakker-scheduler/auto-review.ts";
main(
"takker",
["takker", "振り返り(takker-workflow@0.0.1)のtemplate", "txt"],
["takker", "1週間の振り返り(takker-workflow@0.0.1)のtemplate", "txt"]
);
script.tsimport { addButton } from "../Porterっぽい編集バーを生やすUserScript@1.0.0/mod.ts";
import {
porterCopy, porterCut, porterPaste, toggleCaret
} from "../Porterっぽい編集バーを生やすUserScript@1.0.0/commands.ts";
import {
downBlocks,
downLines,
indentBlocks,
indentLines,
insertText,
outdentBlocks,
outdentLines,
upBlocks,
upLines,
redo,
undo,
} from "../scrapbox-userscript-std/dom.ts";
if (isMobile()) {
addButton({
display: { type: "caret-left" },
onClick: ({ cursor, selection }) => {
cursor.focus();
selection.getSelectedText() === "" ? outdentBlocks() : outdentLines();
},
});
addButton({
display: { type: "caret-right" },
onClick: ({ cursor, selection }) => {
cursor.focus();
selection.getSelectedText() === "" ? indentBlocks() : indentLines();
},
});
addButton({
display: { type: "caret-up" },
onClick: ({ cursor, selection }) => {
cursor.focus();
selection.getSelectedText() === "" ? upBlocks() : upLines();
},
});
addButton({
display: { type: "caret-down" },
onClick: ({ cursor, selection }) => {
cursor.focus();
selection.getSelectedText() === "" ? downBlocks() : downLines()
},
});
addButton({
display: { type: "copy" },
onClick: async ({ cursor, selection }) => await porterCopy(cursor, selection),
});
addButton({
display: { type: "cut" },
onClick: async ({ cursor, selection }) => await porterCut(cursor, selection),
});
addButton({
display: { type: "clipboard" },
onClick: async ({ cursor }) => await porterPaste(cursor),
});
script.ts.disabled addButton({
display: ({ selection }) => selection.hasSelection() ?
{ type: "unlink" } :
"",
onClick: async ({ selection }) => {
const text = selection.getSelectedText();
const unlinked = text.split("\n")
.map(line => line.replace(
/\[((?:[^\[$!"#%&'()\*\+,\-\.\/\{\|\}<>_~]\s?|[\[$!"#%&'()\*\+,\-\.\/\{\|\}<>_~]\S)[^\[\]]*)\]/g,
"$1"
))
.join("\n");
if (text === unlinked) return;
await insertText(unlinked);
},
});
script.ts.disabled addButton({
display: ({ selection }) => selection.hasSelection() ?
{ type: "strikethrough" } :
"",
onClick: async ({ selection }) => {
const text = selection.getSelectedText();
const striked = strike(text);
if (text === striked) return;
await insertText(striked);
},
});
code
script.ts.disabled addButton({
display: ({ selection }) => selection.hasSingleLineSelection() ?
{ type: "code" } :
"",
onClick: async ({ selection }) => {
const text = selection.getSelectedText();
await insertText(`\`${text}\``);
},
});
script.ts.disabled addButton({
display: ({ selection }) => hasURL(selection.getSelectedText()) ? "URL" : "",
onClick: async ({ selection }) => {
const text = selection.getSelectedText();
const converted = await convertURL(text);
if (text === converted) return;
await insertText(converted);
},
});
script.ts.disabled addButton({
display: ({ selection }) => getLink(selection.getSelectedText()) ? "update a link" : "",
onClick: async ({ selection }) => {
const text = selection.getSelectedText();
await replace(
text,
[scrapbox.Project.name, "takker", "takker-memex", "takker-private"],
);
},
});
script.ts addButton({
display: { type: "undo" },
onClick: () => undo(),
});
addButton({
display: { type: "redo" },
onClick: () => redo(),
});
addButton({
display: ({ cursor }) => cursor.getVisible() && cursor.hasFocus
// @ts-ignore private扱いだけど、これしかアクセス方法がないため使わせていただく
&& cursor.visiblePopupMenu ?
{ type: ["i-cursor", "slash"] } :
{ type: "i-cursor" },
onClick: ({ cursor }) => toggleCaret(cursor),
});
}
script.tsimport "../scrapbox-editor-begin-edit/script.ts";
script.tsimport "../mobileからtimestampを行頭に挿入するUserScript/script.js";
script.tsimport "../Kakeruを開くPage_Menu/script.js";
script.tsimport {
transport, createTask,
} from "../takker99%2Ftakker-scheduler/deps.ts";
if (isMobile() && scrapbox.Project.name !== "takker-memex") {
const id = "task";
scrapbox.PageMenu.addMenu({
title: id,
image: 'https://img.icons8.com/ios/180/FFFFFF/todo-list--v2.png',
});
scrapbox.PageMenu(id).addItem({
title: 'Book starting',
image: 'https://img.icons8.com/ios/180/FFFFFF/plus-1day.png',
onClick: createTask,
});
scrapbox.PageMenu(id).addItem({
title: 'Transport',
onClick: () => transport({
from: {
project: scrapbox.Project.name,
title: scrapbox.Page.title!,
},
to: "takker-memex",
}),
});
}
script.tsimport { makeNewPage } from "../custom-new-page/mod.ts";
import {
newPageHook,
splittedLinkHook,
taskLineHook,
} from "../for-custom-new-page/mod.ts";
if (isMobile()) {
const id = "New Page";
const hooks = [taskLineHook, newPageHook, splittedLinkHook];
scrapbox.PageMenu.addMenu({
title: id,
image: "https://img.icons8.com/ios/180/FFFFFF/cut-paper.png",
});
scrapbox.PageMenu(id).addItem({
title: "New Page",
onClick: () => {
const project = window.prompt("Create a new page at", scrapbox.Project.name);
if (!project) return;
makeNewPage({ project, mode: "noopen", hooks })?.();
},
});
scrapbox.PageMenu(id).addItem({
title: "New Page and Open",
onClick: () => {
const project = window.prompt("Create a new page at", scrapbox.Project.name);
if (!project) return;
makeNewPage({ project, mode: "self", hooks })?.();
},
});
}
import "../ページを転送するUserScript/pageMenu.ts";
import { addToInboxFromPrompt } from "../Inboxに素早く入れるUserScript/mod.ts";
scrapbox.PageMenu.addMenu({
title: "Add to inbox",
image: "https://img.icons8.com/ios/180/FFFFFF/inbox.png",
onClick: () => addToInboxFromPrompt(
"takker-memex",
"メモ帳",
),
});
import "../scrapbox-icon-button/script.js";
import "../Markdown形式でページのURLをコピーするPageMenu/script.js";
script.tsimport {
setup as setupActions
} from "../takker99%2Ftakker-scheduler/viewer.tsx";
import {
setup as setupScheduler,
setupWedget
} from "../takker99%2Ftakker-scheduler/weekly-scheduler.tsx";
(async () => {
const id = "next-action";
const selector = `head style[data-userscript-name="${id}"]`;
document.querySelector(selector)?.remove?.();
const style = document.createElement("style");
style.dataset.userscriptName = id;
style.textContent = `
button:is(#${id}, #scheduler).tool-btn::before {
position: absolute;
font: 900 20px/46px "Font Awesome 5 Free";
}
button#${id}.tool-btn::before {
content: "\\f0ae";
}
button#scheduler.tool-btn::before {
content: "\\f073";
font-weight: 400;
}
button:is(#${id}, #scheduler).tool-btn img {
opacity: 0;
}`;
document.head.append(style);
const projects = ["takker-memex", "takker"];
const { open } = await setupActions(projects);
scrapbox.PageMenu.addMenu({
title: id,
image: "/assets/img/favicon/apple-touch-icon.png",
onClick: open,
});
const scheduler = await setupScheduler(projects);
scrapbox.PageMenu.addMenu({
title: "scheduler",
image: "/assets/img/favicon/apple-touch-icon.png",
onClick: scheduler.open,
});
{
const key = "takker-scheduler/wedget";
let settings = JSON.parse(localStorage.getItem(key) ?? "{}");
const project = scrapbox.Project.name;
settings[project] ??= false;
const wedget = await setupWedget(projects, settings[project]);
const toggle = () => {
settings[project] = !wedget.isOpen;
if (wedget.isOpen) { wedget.close(); } else { wedget.open?.(); }
localStorage.setItem(key, JSON.stringify(settings));
};
if (!isMobile()) {
scrapbox.PageMenu.addItem({
title: "toggle wedget",
onClick: toggle,
});
} else {
addButton({
display: { type: "calendar" },
onClick: toggle,
});
}
}
})();
script.tsexport { addButton, insertText, };
import_map.json{
"imports": {
"https://scrapbox.io/api/code/takker/date-fns.min.js/script.js": "https://scrapbox.io/api/code/takker/for-any-project/date-fns.ts",
"https://scrapbox.io/api/code/takker/scrapbox-parser.min.js/parser.js": "https://scrapbox.io/api/code/takker/for-any-project/parser.ts",
"https://esm.sh/@progfay/scrapbox-parser@8.1.0": "https://scrapbox.io/api/code/takker/scrapbox-parser/mod.ts",
"https://esm.sh/@progfay/scrapbox-parser@9.0.0": "https://scrapbox.io/api/code/takker/scrapbox-parser/mod.ts",
"https://esm.sh/preact@10.13.2": "https://scrapbox.io/api/code/takker/preact/mod.tsx",
"https://esm.sh/preact@10.13.2/hooks": "https://scrapbox.io/api/code/takker/preact/hooks.ts",
"https://esm.sh/preact@10.22.1": "https://scrapbox.io/api/code/takker/preact/mod.tsx",
"https://esm.sh/preact@10.22.1/hooks": "https://scrapbox.io/api/code/takker/preact/hooks.ts",
"https://esm.sh/preact@10.6.4": "https://scrapbox.io/api/code/takker/preact/mod.tsx",
"https://esm.sh/preact@10.6.4/hooks": "https://scrapbox.io/api/code/takker/preact/hooks.ts",
"https://esm.sh/preact@10.6.4?dev": "https://scrapbox.io/api/code/takker/preact/mod.tsx",
"https://esm.sh/preact@10.6.4/hooks?dev": "https://scrapbox.io/api/code/takker/preact/hooks.ts",
"react": "npm:preact@10",
"react/": "npm:preact@10/",
"https://deno.land/std@0.224.0/async/mod.ts": "jsr:@std/async@1",
"https://deno.land/x/date_fns@v2.22.1/lightFormat/index.ts": "https://scrapbox.io/api/code/takker/for-any-project/lightFormat.ts",
"https://raw.githubusercontent.com/takker99/scrapbox-storage/0.1.3/": "https://raw.githubusercontent.com/takker99/scrapbox-storage/0.1.4/",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.3.5/rest.ts": "jsr:@cosense/types@0.10/rest",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.4.2/rest.ts": "jsr:@cosense/types@0.10/rest",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.7.1/rest.ts": "jsr:@cosense/types@0.10/rest",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.9.0/rest.ts": "jsr:@cosense/types@0.10/rest",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.3.5/userscript.ts": "jsr:@cosense/types@0.10/userscript",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.4.2/userscript.ts": "jsr:@cosense/types@0.10/userscript",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.5.0/userscript.ts": "jsr:@cosense/types@0.10/userscript",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.7.1/userscript.ts": "jsr:@cosense/types@0.10/userscript",
"https://raw.githubusercontent.com/scrapbox-jp/types/0.9.0/userscript.ts": "jsr:@cosense/types@0.10/userscript",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.23.1/browser/dom/mod.ts": "jsr:@cosense/std@0.29/browser/dom",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.23.1/rest/mod.ts": "jsr:@cosense/std@0.29/rest",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.23.1/title.ts": "jsr:@cosense/std@0.29/title",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.23.1/text.ts": "jsr:@cosense/std@0.29/text",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.23.1/mod.ts": "jsr:@cosense/std@0.29",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.27.0/browser/dom/mod.ts": "jsr:@cosense/std@0.29/browser/dom",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.27.0/rest/mod.ts": "jsr:@cosense/std@0.29/rest",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.27.0/title.ts": "jsr:@cosense/std@0.29/title",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.27.0/text.ts": "jsr:@cosense/std@0.29/text",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.26.2/browser/dom/mod.ts": "jsr:@cosense/std@0.29/browser/dom",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.26.2/title.ts": "jsr:@cosense/std@0.29/title",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.24.3/text.ts": "jsr:@cosense/std@0.29/text",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.27.0/browser/websocket/mod.ts": "jsr:@cosense/std@0.29/browser/websocket",
"https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.24.3/browser/dom/mod.ts": "jsr:@cosense/std@0.29/browser/dom",
"jsr:@cosense/std@0.28/browser/dom": "jsr:@cosense/std@0.29/browser/dom",
"jsr:@cosense/std@0.28/parseAbsoluteLink": "jsr:@cosense/std@0.29/parseAbsoluteLink",
"jsr:@cosense/std@0.28/rest": "jsr:@cosense/std@0.29/rest",
"jsr:@luca/esbuild-deno-loader@0.11": "jsr:@luca/esbuild-deno-loader@0.10",
"npm:option-t@50/plain_result": "npm:option-t@49/plain_result"
},
"compilerOptions": {
"lib": [
"esnext",
"dom",
"dom.iterable",
"deno.ns"
],
"jsx": "react-jsx",
"jsxImportSource": "npm:preact@10"
}
}
parser.tsexport * as ScrapboxParser from "https://scrapbox.io/api/code/takker/scrapbox-parser/mod.ts";
date-fns.tsimport { lightFormat } from "../date-fns/mod.ts";
export const format = lightFormat;
export * from "../date-fns/mod.ts";
lightFormat.tsimport { lightFormat } from "../date-fns/mod.ts";
export { lightFormat as default };
<Esc>
以外のキーを無効化する