template
#日記 のテンプレートを作ってみた
まなてぃページのscript.jsと連動している
code:today.js
// scrapbox-daily-today.js
// タイトル: "YYYY-MM-DD ddd"
// タグ: #MM月DD日 #YYYY-MM-DD #YYYY年MM月 #YYYY-Www #YYYY-circle{1..4} #日記
// 使い方: Scrapboxプロジェクト内で実行すると当日のページを作成/遷移します。
// ブックマークレット化する場合は先頭と末尾を (()=>{ ...code... })() で包んで "javascript:" を付けて保存してください。
(function () {
// ==== helpers ====
const pad2 = (n) => String(n).padStart(2, "0");
const dows = "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"; // ddd
const addDays = (date, n) => {
const d = new Date(date);
d.setDate(d.getDate() + n);
return d;
};
const fmtYMD = (d) => ({
yyyy: d.getFullYear(),
mm: pad2(d.getMonth() + 1),
dd: pad2(d.getDate()),
ddd: dowsd.getDay(),
});
// 四半期タグ(1-3:1, 4-6:2, 7-9:3, 10-12:4)を返す
const quarterCircleTag = (date) => {
const year = date.getFullYear();
const month = date.getMonth() + 1; // 1..12
const q = Math.ceil(month / 3); // 1..4
return #${year}-circle${q};
};
// 今日(ローカル)の 0:00 固定で計算
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const yest = addDays(today, -1);
const tomo = addDays(today, 1);
const T = fmtYMD(today);
const Y = fmtYMD(yest);
const N = fmtYMD(tomo);
// ISO 8601 週番号(無くても運用に支障は無いが、検索用タグとして付与)
const isoWeekNumber = (date) => {
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
const dayNum = d.getUTCDay() || 7; // 月=1 ... 日=7
d.setUTCDate(d.getUTCDate() + 4 - dayNum);
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
};
// タイトル(リンクは括弧なしの素タイトルへ)
const baseTitle = ${T.yyyy}-${T.mm}-${T.dd} ${T.ddd};
const title = ${baseTitle};
// 指定タグ(四半期タグを追加)
const tags =
#${T.mm}月${T.dd}日 +
#${T.yyyy}-${T.mm}-${T.dd} +
#${T.yyyy}年${T.mm}月 +
#${T.yyyy}-W${pad2(isoWeekNumber(today))} +
${quarterCircleTag(today)} +
#日記 #2026年やりたいことリスト;
// 本文
const body = `${tags}
⬜トイレ掃除
`;
// 実行中プロジェクト名の推定(/project/page の2つ目要素)
let project = (location.pathname.split("/")1 || "").trim();
if (!project) {
project = prompt("Scrapboxのプロジェクト名を入力してください:", "");
if (!project) return;
}
// 新規ページURL(bodyプリフィル)
const url =
https://scrapbox.io/${encodeURIComponent(project)}/ +
${encodeURIComponent(title)}?body=${encodeURIComponent(body)};
// 遷移
location.href = url;
})();
code:tomorrow.js
// scrapbox-daily-tomorrow.js
// タイトル: "YYYY-MM-DD ddd"(翌日の日付)
// タグ: #MM月DD日 #YYYY-MM-DD #YYYY年MM月 #YYYY-Www #YYYY-circle{1..4} #日記
// 使い方: Scrapboxプロジェクト内で実行すると「翌日」のページを作成/遷移します。
// ブックマークレット化する場合は先頭と末尾を (()=>{ ...code... })() で包んで "javascript:" を付けて保存してください。
(function () {
// ==== helpers ====
const pad2 = (n) => String(n).padStart(2, "0");
const dows = "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"; // ddd
const addDays = (date, n) => {
const d = new Date(date);
d.setDate(d.getDate() + n);
return d;
};
const fmtYMD = (d) => ({
yyyy: d.getFullYear(),
mm: pad2(d.getMonth() + 1),
dd: pad2(d.getDate()),
ddd: dowsd.getDay(),
});
// 四半期タグ(1-3:1, 4-6:2, 7-9:3, 10-12:4)を返す
const quarterCircleTag = (date) => {
const year = date.getFullYear();
const month = date.getMonth() + 1; // 1..12
const q = Math.ceil(month / 3); // 1..4
return #${year}-circle${q};
};
// 今日(ローカル)の 0:00 固定で計算 → そこから「翌日」を基準日にする
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const tomo = addDays(today, 1);
// ページ作成の基準日(=翌日)
const T = fmtYMD(tomo);
// ISO 8601 週番号(無くても運用に支障は無いが、検索用タグとして付与)
const isoWeekNumber = (date) => {
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
const dayNum = d.getUTCDay() || 7; // 月=1 ... 日=7
d.setUTCDate(d.getUTCDate() + 4 - dayNum);
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
};
// タイトル(翌日の日付)
const baseTitle = ${T.yyyy}-${T.mm}-${T.dd} ${T.ddd};
const title = ${baseTitle};
// 指定タグ(四半期タグを追加)※すべて「翌日」基準
const tags =
#${T.mm}月${T.dd}日 +
#${T.yyyy}-${T.mm}-${T.dd} +
#${T.yyyy}年${T.mm}月 +
#${T.yyyy}-W${pad2(isoWeekNumber(tomo))} +
${quarterCircleTag(tomo)} +
#日記 #2026年やりたいことリスト;
// 本文
const body = `${tags}
⬜トイレ掃除
`;
// 実行中プロジェクト名の推定(/project/page の2つ目要素)
let project = (location.pathname.split("/")1 || "").trim();
if (!project) {
project = prompt("Scrapboxのプロジェクト名を入力してください:", "");
if (!project) return;
}
// 新規ページURL(bodyプリフィル)
const url =
https://scrapbox.io/${encodeURIComponent(project)}/ +
${encodeURIComponent(title)}?body=${encodeURIComponent(body)};
// 遷移
location.href = url;
})();
code:weekly.js
// scrapbox-weekly-template.js
// タイトル: "YYYY-MM-DD Week"(その週の月曜日の日付を使用)
// タグ: #YYYY年MM月(週が月をまたぐ場合は両方) #YYYY-circle{1..4}(同様にまたぐ場合は両方)
// #週次 #YYYY-Www(ISO週番号) #2026年やりたいことリスト
// 本文: 月〜日の7日分、各日を YYYY-MM-DD ddd のリンクにし、配下に「トイレ掃除」「TODO」を並べる
// 使い方: scrapbox-daily-today.js と同様、実行すると「今日を含む週」のウィークリーページを作成/遷移します。
// (何曜日に実行しても、その週の月曜始まりで7日分が生成されます)
// 注意: 既に同名ページが存在する場合、Scrapboxの仕様上 ?body= は無視され既存ページがそのまま開きます
// (dailyスクリプトと同じ挙動です)。
(function () {
// ==== helpers(dailyスクリプトと共通)====
const pad2 = (n) => String(n).padStart(2, "0");
const dows = "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"; // ddd
const addDays = (date, n) => {
const d = new Date(date);
d.setDate(d.getDate() + n);
return d;
};
const fmtYMD = (d) => ({
yyyy: d.getFullYear(),
mm: pad2(d.getMonth() + 1),
dd: pad2(d.getDate()),
ddd: dowsd.getDay(),
});
// 四半期タグ(1-3:1, 4-6:2, 7-9:3, 10-12:4)を返す
const quarterCircleTag = (date) => {
const year = date.getFullYear();
const month = date.getMonth() + 1; // 1..12
const q = Math.ceil(month / 3); // 1..4
return #${year}-circle${q};
};
// ISO 8601 週番号(無くても運用に支障は無いが、検索用タグとして付与)
const isoWeekNumber = (date) => {
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
const dayNum = d.getUTCDay() || 7; // 月=1 ... 日=7
d.setUTCDate(d.getUTCDate() + 4 - dayNum);
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
};
// 今日(ローカル)の 0:00 固定で計算
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
// 今週の月曜日を求める(日曜=0の場合は-6日、それ以外は1-dow日)
// ※週の始まりを日曜にしたい場合は diffToMonday の式をここだけ変更すればOK
const dow = today.getDay();
const diffToMonday = dow === 0 ? -6 : 1 - dow;
const monday = addDays(today, diffToMonday);
// 月〜日の7日分
const weekDays = Array.from({ length: 7 }, (_, i) => addDays(monday, i));
const weekDaysYMD = weekDays.map(fmtYMD);
const M = fmtYMD(monday);
// タイトル:YYYY-W(週番号)
const title = ${M.yyyy}-W${pad2(isoWeekNumber(monday))};
// 週内でまたがる「年月」「四半期」タグを重複無しで収集(月/四半期をまたぐ週にも対応)
const monthTagSet = new Set(weekDaysYMD.map((d) => #${d.yyyy}年${d.mm}月));
const quarterTagSet = new Set(weekDays.map((d) => quarterCircleTag(d)));
const tagsArr = [
...monthTagSet,
...quarterTagSet,
#${M.yyyy}-W${pad2(isoWeekNumber(monday))},
"#2026年やりたいことリスト #バレットジャーナルkey",
];
const tags = tagsArr.join(" ");
// 本文:各日を YYYY-MM-DD ddd リンク(既存の日付ページへの実リンク)にし、配下にチェック項目
const dayBlocks = weekDaysYMD
.map((d) => {
const dayTitle = ${d.yyyy}-${d.mm}-${d.dd} ${d.ddd};
return [${dayTitle}];
})
.join("\n");
const body = `${tags}\n${dayBlocks}\n
🥞今週の振り返り
週次振り返りプロンプト
`;
// 実行中プロジェクト名の推定(/project/page の2つ目要素)
let project = (location.pathname.split("/")1 || "").trim();
if (!project) {
project = prompt("Scrapboxのプロジェクト名を入力してください:", "");
if (!project) return;
}
// 新規ページURL(bodyプリフィル)
const url =
https://scrapbox.io/${encodeURIComponent(project)}/ +
${encodeURIComponent(title)}?body=${encodeURIComponent(body)};
// 遷移
location.href = url;
})();
code:monthly.js
// monthly.js
// タイトル: "YYYY年MM月"
// タグ: #MM月DD日 #YYYY-MM-DD #YYYY年MM月 #YYYY-circle{1..4}
// 使い方: Scrapboxプロジェクト内で実行すると当日のページを作成/遷移します。
// ブックマークレット化する場合は先頭と末尾を (()=>{ ...code... })() で包んで "javascript:" を付けて保存してください。
(function () {
// ==== helpers ====
const pad2 = (n) => String(n).padStart(2, "0");
const dows = "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"; // ddd
const addDays = (date, n) => {
const d = new Date(date);
d.setDate(d.getDate() + n);
return d;
};
const fmtYMD = (d) => ({
yyyy: d.getFullYear(),
mm: pad2(d.getMonth() + 1),
dd: pad2(d.getDate()),
ddd: dowsd.getDay(),
});
// 四半期タグ(1-3:1, 4-6:2, 7-9:3, 10-12:4)を返す
const quarterCircleTag = (date) => {
const year = date.getFullYear();
const month = date.getMonth() + 1; // 1..12
const q = Math.ceil(month / 3); // 1..4
return #${year}-circle${q};
};
// 今日(ローカル)の 0:00 固定で計算
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const yest = addDays(today, -1);
const tomo = addDays(today, 1);
const T = fmtYMD(today);
const Y = fmtYMD(yest);
const N = fmtYMD(tomo);
// タイトル(リンクは括弧なしの素タイトルへ)
const baseTitle = ${T.yyyy}年${T.mm}月;
const title = ${baseTitle};
// 指定タグ(四半期タグを追加)
const tags =
#${T.yyyy}年${T.mm}月 +
${quarterCircleTag(today)} +
#ピュアライフダイアリー #2026年やりたいことリスト;
// 本文
const body = `${tags}
記入日: []
はじまり
🌟今月のTOBEリスト
TO BE サークルを実現するために意識したいこと・やりたいこと
自分にやさしくするためにやりたいこと
🎈TOBEを叶えるために手放すこと
---.icon
記入日: []
ふりかえり
💡TOBEリストの振り返り
(やったこと・感想)
😊今月よかったこと、感謝したこと
今月感じた変化
深めたいと思ったこと
新たに取り組みたいと思ったこと
`;
// 実行中プロジェクト名の推定(/project/page の2つ目要素)
let project = (location.pathname.split("/")1 || "").trim();
if (!project) {
project = prompt("Scrapboxのプロジェクト名を入力してください:", "");
if (!project) return;
}
// 新規ページURL(bodyプリフィル)
const url =
https://scrapbox.io/${encodeURIComponent(project)}/ +
${encodeURIComponent(title)}?body=${encodeURIComponent(body)};
// 遷移
location.href = url;
})();
code: tobe_circle.js
// tobe_circle.js
// タイトル: "YYYY-circle{1..4}"
// タグ: #YYYY年MM月(当該四半期の3ヶ月分) #YYYY-circle{1..4} #ピュアライフダイアリー #ピュアライフサークル
// 使い方: Scrapboxプロジェクト内で実行すると四半期ごとのピュアライフサークルページを作成/遷移します。
(function () {
// ==== helpers ====
const pad2 = (n) => String(n).padStart(2, "0");
// 四半期番号を返す(1–4)
const getQuarter = (month) => Math.ceil(month / 3);
// 四半期の開始月を返す(1, 4, 7, 10)
const quarterStartMonth = (quarter) => (quarter - 1) * 3 + 1;
// 四半期タグ(例: "2025-circle4")
const quarterCircleTag = (date) => {
const year = date.getFullYear();
const month = date.getMonth() + 1;
const q = getQuarter(month);
return ${year}-circle${q};
};
// 今日の日付(ローカル時間 0:00 固定)
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const year = today.getFullYear();
const month = today.getMonth() + 1;
const quarter = getQuarter(month);
// 四半期の3か月分タグ生成(例:#2025年10月 #2025年11月 #2025年12月)
const startMonth = quarterStartMonth(quarter);
const monthsInQuarter = startMonth, startMonth + 1, startMonth + 2;
const quarterMonthTags = monthsInQuarter
.map((m) => #${year}年${pad2(m)}月)
.join(" ");
// タイトルとタグ
const title = ${quarterCircleTag(today)};
const tags = #${quarterCircleTag(today)} #ピュアライフダイアリー #ピュアライフサークル ${quarterMonthTags} #2026年やりたいことリスト;
// 本文テンプレート
const body = `${tags}
TOBEサークル
ありたい自分
なりたい自分
やりたいこと
やりたいと思っているけど我慢していること
本当は好きなこと
新たに取り組んでみたいこと
など、自分にとってのTOBEを8つの分野ごとに書いてみましょう!
叶えたい夢や挑戦したいことが浮かぶ場合はそれも書きましょう。
ここに書けないことはアナログ手帳に書いておきましょう。
---.icon
記入日: []
メンテナンス.iconメンテナンスワーク日: []
🎷しゅみ
📚まなび
🥰けんこう・びよう
🏡くらし
💖パートナーシップ・かぞく
💻しごと
🧑‍🤝‍🧑にんげんかんけい
💰おかね
`;
// プロジェクト名の自動取得 or 手動入力
let project = (location.pathname.split("/")1 || "").trim();
if (!project) {
project = prompt("Scrapboxのプロジェクト名を入力してください:", "");
if (!project) return;
}
// URL生成
const url =
https://scrapbox.io/${encodeURIComponent(project)}/ +
${encodeURIComponent(title)}?body=${encodeURIComponent(body)};
location.href = url;
})();