feat: add sitemap page with card grid layout

This commit is contained in:
2026-03-22 21:58:24 +09:00
parent a1cb7b865e
commit 2fd8e55a33
2 changed files with 90 additions and 0 deletions

43
js/sitemap.js Normal file
View File

@@ -0,0 +1,43 @@
function renderSitemap() {
if (typeof sites === "undefined") return;
var projectContainer = document.getElementById("project-cards");
if (projectContainer) {
projectContainer.innerHTML = sites.projects.map(function (s) {
var subLink = "";
if (s.subLinks && s.subLinks.length > 0) {
subLink = s.subLinks.map(function (sl) {
return '<a href="' + sl.url + '" class="site-card-sublink" target="_blank" rel="noopener">' + sl.label + ' ↗</a>';
}).join("");
}
return (
'<div class="site-card-wrapper">' +
'<a href="' + s.url + '" class="site-card" target="_blank" rel="noopener">' +
'<div class="site-card-icon">' + s.icon + "</div>" +
'<div class="site-card-name">' + s.name + "</div>" +
'<div class="site-card-desc">' + s.description + "</div>" +
"</a>" +
subLink +
"</div>"
);
}).join("");
}
var infraContainer = document.getElementById("infra-cards");
if (infraContainer) {
infraContainer.innerHTML = sites.infra.map(function (s) {
return (
'<a href="' + s.url + '" class="infra-card" target="_blank" rel="noopener">' +
'<div class="infra-card-icon">' + s.icon + "</div>" +
'<div class="infra-card-name">' + s.name + "</div>" +
'<div class="infra-card-desc">' + s.description + "</div>" +
"</a>"
);
}).join("");
}
}
document.addEventListener("DOMContentLoaded", function () {
renderSitemap();
});