UserScripts
code:script.js
日記テンプレート
code:diary-template.js
/* MIT License Copyright (c) 2020 ci7lus */
import { importExternalJs } from "/api/code/ci7lus/userscript-utils/import-external-js.js";
importExternalJs(
);
import { insertText } from "/api/code/customize/scrapbox-insert-text/script.js";
scrapbox.PageMenu.addMenu({
title: 日記,
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;
}
});