diff --git a/server.js b/server.js index 1fdc76b..3de5244 100644 --- a/server.js +++ b/server.js @@ -347,8 +347,8 @@ export function createServer(customSiteDir, customPostsDir, customAssetsDir) { const ext = path.extname(targetFile).toLowerCase(); const contentType = MIME_TYPES[ext] || "application/octet-stream"; - // Cache control: assets get long-term caching, html gets short - if (decodedPath.startsWith("/assets/")) { + // Cache control: static media and webfonts get long-term caching; CSS, JS, and HTML get short revalidation + if (decodedPath.startsWith("/assets/") && !decodedPath.endsWith(".css") && !decodedPath.endsWith(".js")) { res.setHeader("Cache-Control", "public, max-age=2592000, immutable"); } else { res.setHeader("Cache-Control", "public, max-age=0, must-revalidate"); diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk index 2fff564..65a0a92 100644 --- a/src/_includes/layouts/base.njk +++ b/src/_includes/layouts/base.njk @@ -12,7 +12,7 @@ - + {% block head %}{% endblock %} diff --git a/src/assets/css/components/article.css b/src/assets/css/components/article.css index 87cf0cb..3e40cfb 100644 --- a/src/assets/css/components/article.css +++ b/src/assets/css/components/article.css @@ -2,13 +2,32 @@ Article Workspace & Markdown Prose (components/article.css) ========================================================================== */ -/* Left Sticky Sidebar */ +/* Left Sticky Sidebar (Sticky on multi-column desktop, natural flow on mobile/single-column) */ .article-sidebar { display: flex; flex-direction: column; gap: var(--tile-gap); - position: sticky; - top: 16px; + position: static; +} + +@media (min-width: 961px) { + .article-sidebar { + position: sticky; + top: 16px; + max-height: calc(100vh - 32px); + overflow-y: auto; + scrollbar-width: thin; + scrollbar-color: var(--border-color) transparent; + } +} + +@media (max-width: 960px) { + .article-sidebar { + position: static !important; + top: auto !important; + max-height: none !important; + overflow: visible !important; + } } .sidebar-tile {