Replace posts/001/slug nesting with issue taxonomy
Use Hugo's `issue = "issues"` taxonomy so each post carries
`issues: ["01"]` in frontmatter. Issue pages live at /issues/01/
with a dedicated _index.md holding title, season, and description.
The /issues/ archive page uses data/issues.json for forthcoming
entries that have no posts yet.
Layouts:
- layouts/issues/list.html → plate grid for a single issue term
- layouts/issues/terms.html → issues archive (new)
- _default/single.html → scopes grid to issue term page, back-link to /issues/01/
- baseof.html → ribbon links to /issues/01/, JSON island includes issue field
- partials/header.html → Issues link → /issues/
JS:
- lbClose() navigates to /issues/${issueId}/ on a single-post page
- lightbox meta panel shows linked Issue fact
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+5
-3
@@ -91,7 +91,7 @@
|
||||
const path = location.pathname;
|
||||
tabs.forEach(btn => {
|
||||
const cat = btn.dataset.cat;
|
||||
const active = (cat === 'All' && (path === '/' || path === '/posts/' || path.startsWith('/posts')))
|
||||
const active = (cat === 'All' && (path === '/' || path.startsWith('/issue') || path === '/posts/'))
|
||||
|| (cat !== 'All' && path.toLowerCase().includes(cat.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '')));
|
||||
btn.setAttribute('aria-pressed', active ? 'true' : 'false');
|
||||
});
|
||||
@@ -222,9 +222,10 @@
|
||||
if (!lb) return;
|
||||
lb.dataset.open = 'false';
|
||||
document.body.style.overflow = '';
|
||||
// pop back to gallery if we're on a single-post URL
|
||||
if (window.__ROUX_OPEN_SLUG) {
|
||||
navigate('/');
|
||||
const cur = lbList[lbIdx];
|
||||
const issueId = (cur && cur.issue) || '01';
|
||||
navigate(`/issues/${issueId}/`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,6 +280,7 @@
|
||||
<p class="lb__desc">${esc(p.description)}</p>
|
||||
<dl class="lb__factgrid">
|
||||
<div class="lb__fact"><dt>Plate</dt><dd>№ ${esc(p.id)}</dd></div>
|
||||
<div class="lb__fact"><dt>Issue</dt><dd><a href="/issues/${esc(p.issue || '01')}/" style="color:inherit;border-bottom:1px solid currentColor">№ ${esc(p.issue || '01')}</a></dd></div>
|
||||
<div class="lb__fact"><dt>Category</dt><dd>${esc((p.categories||['—'])[0])}</dd></div>
|
||||
</dl>
|
||||
<div class="lb__tags">${tags.map(t => {
|
||||
|
||||
Reference in New Issue
Block a user