Cosenseで前後のページに移動する矢印を追加するUserScript
/ugo/Cosenseのデイリーページから前日と翌日にリンクするUserScriptを参考に
前日の日付にリンクする矢印アイコン
code:script.js
scrapbox.PageMenu.addMenu({
title: '前日',
image: 'https://gyazo.com/6721e6c2fcc204b789f541e3a6766c77/raw', //左向き矢印のアイコン。変更可能。
onClick: () => {
const path = location.pathname.split('/');
const project = path1;
const title = path2;
if (/^\d{4}%2F\d{1,2}%2F\d{1,2}$/.test(title)) {
const d = new Date(decodeURIComponent(title));
d.setDate(d.getDate() - 1);
// 年、月、日をそれぞれ取得
const year = d.getFullYear();
const month = d.getMonth() + 1; // getMonth() は0から11を返すため、+1する
const day = d.getDate();
// ゼロ埋めされていない形式で日付文字列を構築
const rowPrev = ${year}/${month}/${day};
const prev = encodeURIComponent(rowPrev);
//location.href = /${project}/${prev};
//直にhrefを動かすと遅いので、リンクをクリックさせる
const a = document.createElement('a');
a.href = /${project}/${prev};
a.setAttribute('type', 'link'); // type="link"
a.classList.add('page-link'); // class="page-link"
a.setAttribute('rel', 'route'); // rel="route"
a.setAttribute('data-page-title', decodeURIComponent(title)); // data-page-title="2025/5/28"
// 新しいタブで開きたい場合 (target="_blank" をシミュレート)
// a.target = '_blank';
// <body> に追加してすぐにクリック(一時的に追加)
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
}
});
翌日の日付にリンクする矢印アイコン
code:script.js
scrapbox.PageMenu.addMenu({
title: '翌日',
image: 'https://gyazo.com/676bb7623d84b046348fc194d4f6e366/raw', //右向き矢印のアイコン。変更可能。
onClick: () => {
const path = location.pathname.split('/');
const project = path1;
const title = path2;
if (/^\d{4}%2F\d{1,2}%2F\d{1,2}$/.test(title)) {
const d = new Date(decodeURIComponent(title));
d.setDate(d.getDate() + 1);
// 年、月、日をそれぞれ取得
const year = d.getFullYear();
const month = d.getMonth() + 1; // getMonth() は0から11を返すため、+1する
const day = d.getDate();
// ゼロ埋めされていない形式で日付文字列を構築
const rowNext = ${year}/${month}/${day};
const next = encodeURIComponent(rowNext);
//location.href = https://scrapbox.io/${project}/${next};
//直にhrefを動かすと遅いので、リンクをクリックさせる
const a = document.createElement('a');
a.href = /${project}/${next};
a.setAttribute('type', 'link'); // type="link"
a.classList.add('page-link'); // class="page-link"
a.setAttribute('rel', 'route'); // rel="route"
a.setAttribute('data-page-title', decodeURIComponent(title)); // data-page-title="2025/5/28"
// 新しいタブで開きたい場合 (target="_blank" をシミュレート)
// a.target = '_blank';
// <body> に追加してすぐにクリック(一時的に追加)
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
}
});