UserScripts
code:script.js
import("https://scrapbox.io/api/code/zahyou/UserScripts/diary-template.js");
import("https://scrapbox.io/api/code/zahyou/UserScripts/quote.js");
import("https://scrapbox.io/api/code/zahyou/UserScripts/caption.js");
import("https://scrapbox.io/api/code/zahyou/UserScripts/a.js");
日記テンプレート
参考:/ci7lus-diary/ci7lus
code:diary-template.js
/* https://scrapbox.io/ci7lus-diary/ci7lus */
/* MIT License Copyright (c) 2020 ci7lus */
import { importExternalJs } from "/api/code/ci7lus/userscript-utils/import-external-js.js";
importExternalJs(
"https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.8.36/dayjs.min.js"
);
import { insertText } from "/api/code/customize/scrapbox-insert-text/script.js";
scrapbox.PageMenu.addMenu({
title: 日記,
image: "https://cdnjs.cloudflare.com/ajax/libs/twemoji/12.0.4/svg/1f4dd.svg",
onClick: () => {
if (!scrapbox.Page.lines || !scrapbox.Page.lines.length == 1) return;
const input = prompt(
"日記テンプレートを展開したい日付を相対(d+)または絶対(2020-1-1)で(入力なしで今日)"
);
if (input === null) return;
const diff = parseInt(input.trim() || 0);
const abs = input.split("-").length === 3 && dayjs(input);
if ((Number.isNaN(diff) && !abs) || (abs && !abs.isValid())) return;
const today = abs
? abs.startOf("days")
: dayjs().startOf("days").add(diff, "days");
const yesterday = today.clone().subtract(1, "days");
const tomorrow = today.clone().add(1, "days");
console.log(today.format(), yesterday.format(), tomorrow.format());
const conf = confirm(対象の日付は ${today.format("YYYY_MM/DD")} ですか?);
if (!conf) return;
insertText({
text: ${today.format("YYYY_MM/DD")}\n<- [${tomorrow.format("YYYY_MM/DD")}] / [${today.format("YYYY_MM")}] / [${yesterday.format("YYYY_MM/DD")}] ->\n\n\n\n<- [${tomorrow.format("YYYY_MM/DD")}] / [${today.format("YYYY_MM")}] / [${yesterday.format("YYYY_MM/DD")}] ->,
});
},
});
code:quote.js
scrapbox.PopupMenu.addButton({
title: 'quote',
onClick: text => text.split(/\n/).map(line => >${line}).join('\n')
})
code:caption.js
scrapbox.PopupMenu.addButton({
title: 'caption',
onClick: text => {
return text.split(/\n/).map(line => [| ${line}]).join('\n');
}
});
code:a.js
scrapbox.PopupMenu.addButton({
title: 'Gyazo Raw',
onClick: (text) => {
const gyazoRegex = /(https:\/\/gyazo\.com\/a-f0-9{32})/g;
if (text.endsWith('/raw.png') || text.endsWith('/raw.png]')) {
return text;
}
const newText = text.replace(gyazoRegex, '$1/raw.png');
return newText;
}
});