mirror of
https://github.com/docker/docs.git
synced 2026-11-04 10:01:00 +00:00
docs: add automated what's new highlights (#25729)
## Summary Replace the static Featured topics section with a data-driven Whatʼs new timeline. Show the five most important launches by default and let readers expand the full curated 30-day archive. Run a daily Claude Sonnet 5 curator over a rolling 30-day window, with manual dispatch support, deterministic validation, and bot-managed pull requests. Package the editorial workflow as the reusable `curate-whats-new` repository skill so Docker Agent and other Agent Skills-compatible clients can invoke the same process. Preserve the human-reviewed July 13 through August 11, 2026 result and flexible selection criteria as a regression example outside the skillʼs runtime context. @netlify / [Homepage preview](https://deploy-preview-25729--docsdocker.netlify.app/) Generated by Codex
This commit is contained in:
1 parent
58f1389442
commit
678542f456
12 files changed
+685
-45
No files matched your search
@@ -0,0 +1,79 @@
|
||||
{{- $data := index hugo.Data "whats-new" -}}
|
||||
{{- with $data.items -}}
|
||||
{{- $items := sort . "published" "desc" -}}
|
||||
{{- $more := where $items "featured" false -}}
|
||||
<section class="py-10 md:py-12" x-data="{ expanded: false }">
|
||||
<div class="container mx-auto max-w-4xl px-4">
|
||||
<header class="mb-6 border-b border-gray-200 pb-4 dark:border-gray-800">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 dark:text-white">
|
||||
What's new
|
||||
</h2>
|
||||
</header>
|
||||
<ol>
|
||||
{{ range $items }}
|
||||
<li
|
||||
{{ if not .featured }}
|
||||
x-cloak x-show="expanded" x-collapse.duration.300ms
|
||||
{{ end }}
|
||||
class="grid grid-cols-[1fr] md:grid-cols-[5rem_1fr] md:gap-x-6"
|
||||
>
|
||||
<time
|
||||
class="hidden pt-5 text-right text-sm text-gray-500 md:block dark:text-gray-400"
|
||||
datetime="{{ .published }}"
|
||||
>{{ .published | time.Format "Jan 2" }}</time
|
||||
>
|
||||
<a
|
||||
href="{{ .url }}"
|
||||
class="group relative block border-l border-gray-200 py-5 pl-7 dark:border-gray-700"
|
||||
>
|
||||
<span
|
||||
aria-hidden="true"
|
||||
class="absolute top-6 -left-[5px] size-[9px] rounded-full bg-gray-300 ring-4 ring-gray-50 transition group-hover:bg-blue-500 dark:bg-gray-600 dark:ring-gray-950 dark:group-hover:bg-blue-400"
|
||||
></span>
|
||||
<span
|
||||
class="mb-1 flex flex-wrap items-center gap-x-2 text-sm font-medium text-blue-600 dark:text-blue-400"
|
||||
>
|
||||
{{ .product }}
|
||||
<time
|
||||
class="font-normal text-gray-500 md:hidden dark:text-gray-400"
|
||||
datetime="{{ .published }}"
|
||||
>{{ .published | time.Format "Jan 2" }}</time
|
||||
>
|
||||
</span>
|
||||
<span class="flex items-center gap-2">
|
||||
<span
|
||||
class="font-medium text-gray-900 transition group-hover:text-blue-500 dark:text-white dark:group-hover:text-blue-400"
|
||||
>{{ .title }}</span
|
||||
>
|
||||
<span
|
||||
class="icon-svg shrink-0 text-gray-400 transition group-hover:translate-x-1 group-hover:text-blue-500 dark:text-gray-500 dark:group-hover:text-blue-400"
|
||||
>
|
||||
{{ partialCached "icon" "arrow-right" "arrow-right" }}
|
||||
</span>
|
||||
</span>
|
||||
<span class="mt-1 block text-sm text-gray-600 dark:text-gray-300"
|
||||
>{{ .description }}</span
|
||||
>
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ol>
|
||||
{{ with $more }}
|
||||
<button
|
||||
type="button"
|
||||
@click="expanded = !expanded"
|
||||
:aria-expanded="expanded"
|
||||
class="mt-4 ml-7 inline-flex items-center gap-1 text-sm font-medium text-blue-600 hover:text-blue-500 md:ml-[6.5rem] dark:text-blue-400 dark:hover:text-blue-300"
|
||||
>
|
||||
<span x-text="expanded ? 'Show less' : 'Show more'">Show more</span>
|
||||
<span class="icon-svg icon-sm" x-show="!expanded">
|
||||
{{ partialCached "icon" "chevron-down" "chevron-down" }}
|
||||
</span>
|
||||
<span class="icon-svg icon-sm" x-cloak x-show="expanded">
|
||||
{{ partialCached "icon" "chevron-up" "chevron-up" }}
|
||||
</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{- $data := index hugo.Data "whats-new" -}}
|
||||
{{- with $data.items }}
|
||||
|
||||
## What's new
|
||||
|
||||
{{ range . }}
|
||||
{{ printf "- [%s: %s](%s): %s (%s)\n" .product .title .url .description (.published | time.Format "Jan 2, 2006") -}}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
+1
-37
@@ -116,43 +116,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Popular Topics Section -->
|
||||
<section class="py-8">
|
||||
<div class="container mx-auto max-w-3xl px-4">
|
||||
<h2
|
||||
class="mb-8 text-center text-2xl font-semibold text-gray-900 dark:text-white"
|
||||
>
|
||||
Featured topics
|
||||
</h2>
|
||||
<div
|
||||
class="divide-y divide-gray-200 rounded-xl border border-gray-200 bg-white dark:divide-gray-700 dark:border-gray-700 dark:bg-gray-900"
|
||||
>
|
||||
{{ range slice
|
||||
(dict "url" "/dhi/" "title" "Docker Hardened Images")
|
||||
(dict "url" "/ai/sandboxes/get-started/" "title" "Get started with Docker Sandboxes")
|
||||
(dict "url" "/desktop/" "title" "Docker Desktop overview")
|
||||
(dict "url" "/engine/install/" "title" "Install Docker Engine")
|
||||
(dict "url" "/reference/dockerfile/" "title" "Dockerfile reference")
|
||||
(dict "url" "/build/" "title" "Docker Build overview")
|
||||
}}
|
||||
<a
|
||||
href="{{ .url }}"
|
||||
class="group flex items-center justify-between px-4 py-3 transition hover:bg-blue-50 dark:hover:bg-gray-700"
|
||||
>
|
||||
<span
|
||||
class="text-gray-900 transition group-hover:text-blue-500 dark:text-white dark:group-hover:text-blue-400"
|
||||
>{{ .title }}</span
|
||||
>
|
||||
<span
|
||||
class="icon-svg text-gray-400 transition group-hover:translate-x-1 dark:text-gray-500"
|
||||
>
|
||||
{{ partialCached "icon" "arrow-right" "arrow-right" }}
|
||||
</span>
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ partial "whats-new.html" . }}
|
||||
</main>
|
||||
<footer>{{ partialCached "footer.html" . }}</footer>
|
||||
</body>
|
||||
|
||||
Reference in new issue
Block a user