Files
roux/layouts/baseof.html
T
valknar 0ae8afbf7b 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>
2026-05-18 17:09:39 +02:00

57 lines
1.7 KiB
HTML

<!doctype html>
<html lang="en">
<head>
{{- partial "head.html" . }}
</head>
<body>
{{- partial "header.html" . }}
<main id="content">
{{- block "main" . }}{{- end }}
</main>
{{- partial "footer.html" . }}
{{- partial "lightbox.html" . }}
<div class="ribbon" id="ribbon">
<span>Roux № {{ .Site.Params.issueNumber }} — out now. <a href="/issues/01/">See the plates →</a></span>
<button id="ribbonClose" aria-label="Dismiss">
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>
</button>
</div>
{{/* Inline posts data for JS search + lightbox */}}
<script id="roux-data" type="application/json">
{{- $posts := slice }}
{{- range (where .Site.RegularPages "Section" "posts") }}
{{- $img := .Resources.GetMatch "*.png" }}
{{- $thumb := "" }}
{{- $card := "" }}
{{- if $img }}
{{- $t := $img.Resize "300x450 webp" }}
{{- $c := $img.Resize "900x1350 webp" }}
{{- $thumb = $t.RelPermalink }}
{{- $card = $c.RelPermalink }}
{{- end }}
{{- $post := dict
"id" .Params.plate
"slug" .Params.slug
"issue" (index (.Params.issues | default (slice "01")) 0)
"title" .Title
"description" .Params.description
"categories" .Params.categories
"tags" .Params.tags
"thumb" $thumb
"card" $card
"url" .RelPermalink
}}
{{- $posts = $posts | append $post }}
{{- end }}
{{- $posts | jsonify | safeJS }}
</script>
<script src="/js/app.js" defer></script>
</body>
</html>