デイリーログ
code:script.js
const newDate = (yyyymmdd, offset) => {
const dt = yyyymmdd ? new Date(yyyymmdd) : new Date()
dt.setDate(dt.getDate() + offset)
const locale = 'ja-JP'
const options = { year: 'numeric', month: '2-digit', day: '2-digit' }
return dt.toLocaleDateString(locale, options).replace(/\//g, '-')
}
scrapbox.PageMenu().addItem({
title: 'デイリーログ',
image: null,
onClick: (e) => {
const today = window.prompt('デイリーログを作ります: yyyy-mm-dd', newDate('', 0))
if (!today) { return }
const yesterday = newDate(today, -1)
const tomorrow = newDate(today, +1)
const thisMonth = today.substring(0, 7)
const title = encodeURIComponent(today)
const body = encodeURIComponent([
[${yesterday}] | [${thisMonth}] | [${tomorrow}]
].join('\n'))
const created = scrapbox.Project.pages.some(p => p.exists && p.title === today)
if (created) {
window.open(/${scrapbox.Project.name}/${title})
} else {
window.open(/${scrapbox.Project.name}/${title}?body=${body})
}
}
})