$(function () {
// サブメニューの表示/非表示処理
$("ul.sub_menu").slideDown();
$("a.category").click(function () {
$("ul.sub_menu").slideUp();
if ($("+ul", this).css("display") == "none") {
$("+ul", this).slideDown();
}
});
if (!location.pathname.startsWith("/biography/")) return;
if ($('#side_menu .sub_menu').length === 0) return;
const currentYear = 2026;
const latestYearText = currentYear + "年";
// 最新年のリンクが無ければ追加
if (
$('#side_menu .sub_menu li a').filter(function () {
return $(this).text().replace(/[^\d]/g, "") === String(currentYear);
}).length === 0
) {
const newListItem = $(
'
' + latestYearText + ''
);
const prevYearLink = $('#side_menu .sub_menu li a').filter(function () {
return $(this).text().replace(/[^\d]/g, "") === String(currentYear - 1);
}).parent();
if (prevYearLink.length) {
newListItem.insertBefore(prevYearLink);
} else {
$('#side_menu .sub_menu').prepend(newListItem);
}
}
// 前年のリンクが無ければ追加
if (
$('#side_menu .sub_menu li a').filter(function () {
return $(this).text().replace(/[^\d]/g, "") === String(currentYear - 1);
}).length === 0
) {
const prevListItem = $(
'
' + (currentYear - 1) + '年'
);
const olderYearLink = $('#side_menu .sub_menu li a').filter(function () {
return $(this).text().replace(/[^\d]/g, "") === String(currentYear - 2);
}).parent();
const currentYearLink = $('#side_menu .sub_menu li a').filter(function () {
return $(this).text().replace(/[^\d]/g, "") === String(currentYear);
}).parent();
if (olderYearLink.length) {
prevListItem.insertBefore(olderYearLink);
} else if (currentYearLink.length) {
currentYearLink.after(prevListItem);
} else {
$('#side_menu .sub_menu').prepend(prevListItem);
}
}
// 各年リンクのhrefを正規化
$('#side_menu .sub_menu li a').each(function () {
const yearText = $(this).text().replace(/[^\d]/g, "");
if (!yearText) return;
const yearNum = parseInt(yearText, 10);
if (yearNum === currentYear) {
$(this).attr("href", "../biography/index.html");
} else {
$(this).attr("href", "../biography/" + yearNum + ".html");
}
});
// 現在ページの年を取得
var year = location.pathname.match(/\/biography\/(\d{4})\.html$/);
var thisYear;
if (year) {
thisYear = year[1] + "年";
} else {
// index.htmlの場合
thisYear = latestYearText;
}
// すべての年リンクから一度class="oth"を消す
$('#side_menu .sub_menu li a').removeClass("oth");
// 「今の年」以外の年にclass="oth"をつける
$('#side_menu .sub_menu li a').each(function () {
if ($(this).text().trim() !== thisYear) {
$(this).addClass("oth");
}
});
// 下線()の処理
$('#side_menu .sub_menu li a').each(function () {
$(this).html($(this).text());
});
$('#side_menu .sub_menu li a').each(function () {
if ($(this).text().trim() === thisYear) {
$(this).html("" + $(this).text() + "");
}
});
});