ia: Umbenennung — Library→Archiv, Wiki→Library (URLs, Content, Code)
Neue Informationsarchitektur: - ARCHIV (/archiv) = die fertigen Texte (vormals Library): Essays mit Byline, Quellen/Zitieren, Dialog, Versionsverlauf. Section "archiv". - LIBRARY (/library) = das verlinkte Werkstattwissen (vormals Wiki): zwei- spaltig mit Gruppen-Navigation + Filter. Section "library". Umgesetzt: - content/ + layouts/ verschoben (git mv), Menü (ARCHIV+LIBRARY, kein WIKI), Startseiten-Journal zieht jetzt Section "archiv", Querverweise umgeschrieben (/library→/archiv, /wiki→/library). - CMS: files.js klassifiziert archiv/<sec>→beitrag, library/→biblio; stats.js + Admin (Typ "Library-Seite", KIND_LABEL, Pfade) nachgezogen. - single.html: Byline/Provenance/Dialog an Section "archiv" gebunden. - Beide Header zentriert (section-header) — einheitlicher Look. - Interne Dialog-Werte (thread.kind='library', Forum "Beiträge") unverändert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
{{ end }}
|
||||
{{/* Byline + Meta nur bei Library-Beiträgen — Seiten wie Manifest,
|
||||
Kontakt, Spenden brauchen weder Autor noch „Aktualisiert am". */}}
|
||||
{{ if eq .Section "library" }}
|
||||
{{ if eq .Section "archiv" }}
|
||||
{{ $author := .Params.author | default site.Params.author.name }}
|
||||
{{ $aslug := urlize $author }}
|
||||
{{ if not .Params.author }}{{ with index site.Data.authors site.Params.author.email }}{{ with .slug }}{{ $aslug = . }}{{ end }}{{ end }}{{ end }}
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
{{/* Tags: bei Seiten (nicht-Library) wie bisher unter dem Text. Bei Library
|
||||
wandern sie in die Aktionsreihe (rechts neben Dialog) im Partial. */}}
|
||||
{{ if ne .Section "library" }}
|
||||
{{ if ne .Section "archiv" }}
|
||||
{{- with .Params.tags }}
|
||||
<ul class="tag-pills" aria-label="Tags">
|
||||
{{- range . -}}<li><a href="/tags/{{ . | urlize }}/">{{ . }}</a></li>{{- end -}}
|
||||
@@ -71,7 +71,7 @@
|
||||
{{ end }}
|
||||
|
||||
{{/* Artikel-Fuß (zitieren, Dialog, Tags, Versionen) — nur bei Library. */}}
|
||||
{{ if eq .Section "library" }}
|
||||
{{ if eq .Section "archiv" }}
|
||||
{{ partial "provenance.html" . }}
|
||||
<script src="/version-history.js"></script>
|
||||
{{ end }}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{- /* Wiki-Seitenleiste: alle Wiki-Seiten nach `group` gruppiert, mit Filter.
|
||||
{{- /* Library-Seitenleiste: alle Library-Seiten nach `group` gruppiert, mit Filter.
|
||||
Seiten ohne `group` landen unter „Allgemein“. */ -}}
|
||||
{{- $cur := .RelPermalink -}}
|
||||
{{- $pages := where site.RegularPages "Section" "wiki" -}}
|
||||
{{- $pages := where site.RegularPages "Section" "library" -}}
|
||||
{{- $groups := dict -}}
|
||||
{{- range $pages -}}
|
||||
{{- $g := .Params.group | default "Allgemein" -}}
|
||||
@@ -0,0 +1,113 @@
|
||||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
|
||||
{{ if .IsSection }}
|
||||
{{ if eq .Path "/archiv" }}
|
||||
{{/* Archiv root: Atlas — gruppiert nach Untersection */}}
|
||||
<section class="atlas">
|
||||
{{ range .Sections.ByWeight }}
|
||||
{{ $section := path.Base .RelPermalink }}
|
||||
<article class="atlas-section" data-section="{{ $section }}">
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
|
||||
{{ with .Params.description }}<p class="text-muted">{{ . }}</p>{{ end }}
|
||||
<ul class="atlas-list">
|
||||
{{ range first 6 .RegularPages.ByDate.Reverse }}
|
||||
<li>
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
<span class="list-meta text-muted"> · {{ partial "date.html" .Date }}</span>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ if gt (len .RegularPages) 6 }}
|
||||
<p class="more"><a href="{{ .RelPermalink }}">alle in {{ .Title }} →</a></p>
|
||||
{{ end }}
|
||||
</article>
|
||||
{{ end }}
|
||||
|
||||
{{/* Tag-Cloud */}}
|
||||
{{ with site.Taxonomies.tags }}
|
||||
<article class="atlas-tags">
|
||||
<h2>Tags</h2>
|
||||
<ul class="tag-cloud">
|
||||
{{ range $name, $taxonomy := . }}
|
||||
<li><a href="/tags/{{ $name | urlize }}/">{{ $name }} <span class="text-muted">({{ len $taxonomy }})</span></a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</article>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ else if eq .Path "/archiv/software" }}
|
||||
{{/* Software: kuratierte Landing — Werkzeuge (mit externem Link) getrennt
|
||||
von Texten & Anleitungen. */}}
|
||||
<header class="section-header" data-section="software">
|
||||
<p class="section-rubric">Archiv</p>
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
{{ with .Params.description }}<p class="section-description">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
|
||||
{{ $tools := where .RegularPages "Params.external" "!=" nil }}
|
||||
{{ $texts := where .RegularPages "Params.external" nil }}
|
||||
|
||||
{{ with $tools }}
|
||||
<section class="software-tools">
|
||||
<h2 class="software-h">Werkzeuge</h2>
|
||||
<ul class="tool-list">
|
||||
{{ range .ByWeight }}
|
||||
<li class="tool-item"{{ with .Params.color }} data-color="{{ . }}"{{ end }}>
|
||||
<a class="tool-main" href="{{ .RelPermalink }}">
|
||||
<span class="tool-name">{{ .LinkTitle }}</span>
|
||||
{{ with .Params.summary }}<span class="tool-sum text-muted">{{ . }}</span>{{ end }}
|
||||
</a>
|
||||
{{ with .Params.external }}<a class="tool-ext" href="{{ . }}" rel="noopener" aria-label="extern öffnen">↗</a>{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
<section class="software-texts">
|
||||
<h2 class="software-h">Texte & Anleitungen</h2>
|
||||
<div class="time-list" data-section="software">
|
||||
<ul>
|
||||
{{ range $texts.ByDate.Reverse }}
|
||||
<li class="list-item">
|
||||
<div class="list-title-row">
|
||||
<div class="list-title">
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
{{ with .Params.summary }}<div class="list-summary text-muted">{{ . }}</div>{{ end }}
|
||||
</div>
|
||||
<div class="list-meta">{{ partial "date.html" .Date }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
{{ else }}
|
||||
{{/* Library subsection: chronologisch */}}
|
||||
{{ $section := path.Base .RelPermalink }}
|
||||
<header class="section-header" data-section="{{ $section }}">
|
||||
<p class="section-rubric">Archiv</p>
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
{{ with .Params.description }}<p class="section-description">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
<div class="time-list" data-section="{{ $section }}">
|
||||
<ul>
|
||||
{{ range .RegularPages.ByDate.Reverse }}
|
||||
<li class="list-item">
|
||||
<div class="list-title-row">
|
||||
<div class="list-title">
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
{{ with .Params.summary }}
|
||||
<div class="list-summary text-muted">{{ . }}</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="list-meta">{{ partial "date.html" .Date }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
|
||||
{{ $library := where site.RegularPages "Section" "library" }}
|
||||
{{ $journal := first 20 $library.ByDate.Reverse }}
|
||||
{{ $archiv := where site.RegularPages "Section" "archiv" }}
|
||||
{{ $journal := first 20 $archiv.ByDate.Reverse }}
|
||||
|
||||
<section class="journal" aria-label="Journal — neueste Beiträge">
|
||||
<header class="journal-header">
|
||||
@@ -21,8 +21,8 @@
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{ if gt (len $library) 20 }}
|
||||
<p class="more"><a href="/library/">→ Alle Beiträge in der Library</a></p>
|
||||
{{ if gt (len $archiv) 20 }}
|
||||
<p class="more"><a href="/archiv/">→ Alle Beiträge im Archiv</a></p>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
+32
-104
@@ -1,113 +1,41 @@
|
||||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
<header class="section-header">
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
</header>
|
||||
|
||||
{{ if .IsSection }}
|
||||
{{ if eq .Path "/library" }}
|
||||
{{/* Library root: Atlas — gruppiert nach Untersection */}}
|
||||
<section class="atlas">
|
||||
{{ range .Sections.ByWeight }}
|
||||
{{ $section := path.Base .RelPermalink }}
|
||||
<article class="atlas-section" data-section="{{ $section }}">
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
|
||||
{{ with .Params.description }}<p class="text-muted">{{ . }}</p>{{ end }}
|
||||
<ul class="atlas-list">
|
||||
{{ range first 6 .RegularPages.ByDate.Reverse }}
|
||||
<li>
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
<span class="list-meta text-muted"> · {{ partial "date.html" .Date }}</span>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ if gt (len .RegularPages) 6 }}
|
||||
<p class="more"><a href="{{ .RelPermalink }}">alle in {{ .Title }} →</a></p>
|
||||
{{ end }}
|
||||
</article>
|
||||
{{ end }}
|
||||
<div class="wiki">
|
||||
<aside class="wiki-side">{{ partial "library-nav.html" . }}</aside>
|
||||
|
||||
{{/* Tag-Cloud */}}
|
||||
{{ with site.Taxonomies.tags }}
|
||||
<article class="atlas-tags">
|
||||
<h2>Tags</h2>
|
||||
<ul class="tag-cloud">
|
||||
{{ range $name, $taxonomy := . }}
|
||||
<li><a href="/tags/{{ $name | urlize }}/">{{ $name }} <span class="text-muted">({{ len $taxonomy }})</span></a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</article>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ else if eq .Path "/library/software" }}
|
||||
{{/* Software: kuratierte Landing — Werkzeuge (mit externem Link) getrennt
|
||||
von Texten & Anleitungen. */}}
|
||||
<header class="section-header" data-section="software">
|
||||
<p class="section-rubric">Library</p>
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
{{ with .Params.description }}<p class="section-description">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
<div class="wiki-page">
|
||||
<div class="single-content">{{ .Content }}</div>
|
||||
|
||||
{{ $tools := where .RegularPages "Params.external" "!=" nil }}
|
||||
{{ $texts := where .RegularPages "Params.external" nil }}
|
||||
|
||||
{{ with $tools }}
|
||||
<section class="software-tools">
|
||||
<h2 class="software-h">Werkzeuge</h2>
|
||||
<ul class="tool-list">
|
||||
{{ range .ByWeight }}
|
||||
<li class="tool-item"{{ with .Params.color }} data-color="{{ . }}"{{ end }}>
|
||||
<a class="tool-main" href="{{ .RelPermalink }}">
|
||||
<span class="tool-name">{{ .LinkTitle }}</span>
|
||||
{{ with .Params.summary }}<span class="tool-sum text-muted">{{ . }}</span>{{ end }}
|
||||
</a>
|
||||
{{ with .Params.external }}<a class="tool-ext" href="{{ . }}" rel="noopener" aria-label="extern öffnen">↗</a>{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ $pages := where site.RegularPages "Section" "library" }}
|
||||
{{ $groups := dict }}
|
||||
{{ range $pages }}
|
||||
{{ $g := .Params.group | default "Allgemein" }}
|
||||
{{ $existing := index $groups $g | default slice }}
|
||||
{{ $groups = merge $groups (dict $g ($existing | append .)) }}
|
||||
{{ end }}
|
||||
|
||||
<section class="software-texts">
|
||||
<h2 class="software-h">Texte & Anleitungen</h2>
|
||||
<div class="time-list" data-section="software">
|
||||
<ul>
|
||||
{{ range $texts.ByDate.Reverse }}
|
||||
<li class="list-item">
|
||||
<div class="list-title-row">
|
||||
<div class="list-title">
|
||||
{{ if $pages }}
|
||||
<div class="wiki-index">
|
||||
{{ range $g, $ps := $groups }}
|
||||
<section class="wiki-group">
|
||||
<h2>{{ $g }}</h2>
|
||||
<ul>
|
||||
{{ range sort $ps "Title" }}
|
||||
<li>
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
{{ with .Params.summary }}<div class="list-summary text-muted">{{ . }}</div>{{ end }}
|
||||
</div>
|
||||
<div class="list-meta">{{ partial "date.html" .Date }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
{{ else }}
|
||||
{{/* Library subsection: chronologisch */}}
|
||||
{{ $section := path.Base .RelPermalink }}
|
||||
<header class="section-header" data-section="{{ $section }}">
|
||||
<p class="section-rubric">Library</p>
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
{{ with .Params.description }}<p class="section-description">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
<div class="time-list" data-section="{{ $section }}">
|
||||
<ul>
|
||||
{{ range .RegularPages.ByDate.Reverse }}
|
||||
<li class="list-item">
|
||||
<div class="list-title-row">
|
||||
<div class="list-title">
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
{{ with .Params.summary }}
|
||||
<div class="list-summary text-muted">{{ . }}</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="list-meta">{{ partial "date.html" .Date }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{{ with .Params.summary }}<span class="text-muted"> — {{ . }}</span>{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ else }}
|
||||
<p class="text-muted"><em>Noch keine Einträge — der erste entsteht im Redaktions-Editor.</em></p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
{{ define "main" }}
|
||||
<header class="section-header">
|
||||
<p class="section-rubric">{{ with .Params.group }}{{ . }}{{ else }}Library{{ end }}</p>
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
{{ with .Params.summary }}<p class="section-description">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
|
||||
<div class="wiki">
|
||||
<header class="section-header">
|
||||
<p class="section-rubric">{{ with .Params.group }}{{ . }}{{ else }}Wiki{{ end }}</p>
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
{{ with .Params.summary }}<p class="section-description">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
<aside class="wiki-side">{{ partial "wiki-nav.html" . }}</aside>
|
||||
<aside class="wiki-side">{{ partial "library-nav.html" . }}</aside>
|
||||
|
||||
<div class="wiki-page">
|
||||
{{ $hasToC := .Params.toc | default false }}
|
||||
@@ -1,40 +0,0 @@
|
||||
{{ define "main" }}
|
||||
<div class="wiki">
|
||||
<header class="section-header">
|
||||
<h1 class="section-title">{{ .Title }}</h1>
|
||||
</header>
|
||||
<aside class="wiki-side">{{ partial "wiki-nav.html" . }}</aside>
|
||||
|
||||
<div class="wiki-page">
|
||||
<div class="single-content">{{ .Content }}</div>
|
||||
|
||||
{{ $pages := where site.RegularPages "Section" "wiki" }}
|
||||
{{ $groups := dict }}
|
||||
{{ range $pages }}
|
||||
{{ $g := .Params.group | default "Allgemein" }}
|
||||
{{ $existing := index $groups $g | default slice }}
|
||||
{{ $groups = merge $groups (dict $g ($existing | append .)) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if $pages }}
|
||||
<div class="wiki-index">
|
||||
{{ range $g, $ps := $groups }}
|
||||
<section class="wiki-group">
|
||||
<h2>{{ $g }}</h2>
|
||||
<ul>
|
||||
{{ range sort $ps "Title" }}
|
||||
<li>
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
{{ with .Params.summary }}<span class="text-muted"> — {{ . }}</span>{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ else }}
|
||||
<p class="text-muted"><em>Noch keine Einträge — der erste entsteht im Redaktions-Editor.</em></p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
Reference in New Issue
Block a user