From 33226cf897eff35777786dcc75ac57d3cc0c073c Mon Sep 17 00:00:00 2001
From: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Date: Sat, 21 Feb 2026 12:16:43 +0100
Subject: [PATCH] site: simplify guides/series layouts
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
COMPONENTS.md | 26 +++++++++++++
.../docker-concepts/building-images/_index.md | 4 +-
content/get-started/introduction/_index.md | 4 +-
content/languages/_index.md | 6 ---
content/languages/c-sharp/_index.md | 5 ---
content/languages/cpp/_index.md | 5 ---
content/languages/go/_index.md | 5 ---
content/languages/java/_index.md | 5 ---
content/languages/js/_index.md | 5 ---
content/languages/php/_index.md | 5 ---
content/languages/python/_index.md | 5 ---
content/languages/r/_index.md | 5 ---
content/languages/ruby/_index.md | 5 ---
content/languages/rust/_index.md | 5 ---
content/tags/_index.md | 7 ----
content/tags/admin/_index.md | 3 --
content/tags/ai/_index.md | 3 --
content/tags/app-dev/_index.md | 3 --
content/tags/best-practices/_index.md | 7 ----
content/tags/cloud-services/_index.md | 3 --
content/tags/data-science/_index.md | 3 --
content/tags/databases/_index.md | 3 --
content/tags/deploy/_index.md | 3 --
content/tags/devops/_index.md | 3 --
content/tags/dhi/_index.md | 3 --
content/tags/distributed-systems/_index.md | 3 --
content/tags/faq/_index.md | 8 ----
content/tags/frameworks/_index.md | 3 --
content/tags/networking/_index.md | 3 --
content/tags/observability/_index.md | 3 --
content/tags/product-demo/_index.md | 3 --
content/tags/release-notes/_index.md | 10 -----
content/tags/secrets/_index.md | 10 -----
content/tags/troubleshooting/_index.md | 7 ----
data/languages.yaml | 30 ++++++++++++++
data/tags.yaml | 38 ++++++++++++++++++
hugo.yaml | 8 +---
layouts/_partials/aside.html | 9 +----
.../_partials/components/guide-summary.html | 18 ---------
layouts/_partials/content-default.html | 11 ++++++
layouts/_partials/guide-languages.html | 15 +++++++
layouts/_partials/guide-tags.html | 9 +++++
layouts/_partials/languages.html | 23 -----------
layouts/_partials/schema.html | 10 +++++
layouts/_partials/sidebar/guides.html | 36 ++++++-----------
layouts/_partials/sidebar/tags.html | 23 -----------
layouts/_partials/tags.html | 16 --------
layouts/baseof.html | 6 ++-
layouts/glossary.html | 5 ---
layouts/guides/landing.html | 34 ++++++++--------
layouts/guides/list.html | 7 +---
layouts/guides/single.html | 21 ----------
layouts/home.metadata.json | 7 +++-
layouts/samples/single.html | 5 ---
layouts/series.html | 39 +++++++++++++++----
layouts/tags/taxonomy.html | 25 ------------
layouts/tags/term.html | 25 ------------
57 files changed, 216 insertions(+), 385 deletions(-)
delete mode 100644 content/languages/_index.md
delete mode 100644 content/languages/c-sharp/_index.md
delete mode 100644 content/languages/cpp/_index.md
delete mode 100644 content/languages/go/_index.md
delete mode 100644 content/languages/java/_index.md
delete mode 100644 content/languages/js/_index.md
delete mode 100644 content/languages/php/_index.md
delete mode 100644 content/languages/python/_index.md
delete mode 100644 content/languages/r/_index.md
delete mode 100644 content/languages/ruby/_index.md
delete mode 100644 content/languages/rust/_index.md
delete mode 100644 content/tags/_index.md
delete mode 100644 content/tags/admin/_index.md
delete mode 100644 content/tags/ai/_index.md
delete mode 100644 content/tags/app-dev/_index.md
delete mode 100644 content/tags/best-practices/_index.md
delete mode 100644 content/tags/cloud-services/_index.md
delete mode 100644 content/tags/data-science/_index.md
delete mode 100644 content/tags/databases/_index.md
delete mode 100644 content/tags/deploy/_index.md
delete mode 100644 content/tags/devops/_index.md
delete mode 100644 content/tags/dhi/_index.md
delete mode 100644 content/tags/distributed-systems/_index.md
delete mode 100644 content/tags/faq/_index.md
delete mode 100644 content/tags/frameworks/_index.md
delete mode 100644 content/tags/networking/_index.md
delete mode 100644 content/tags/observability/_index.md
delete mode 100644 content/tags/product-demo/_index.md
delete mode 100644 content/tags/release-notes/_index.md
delete mode 100644 content/tags/secrets/_index.md
delete mode 100644 content/tags/troubleshooting/_index.md
create mode 100644 data/languages.yaml
create mode 100644 data/tags.yaml
delete mode 100644 layouts/_partials/components/guide-summary.html
create mode 100644 layouts/_partials/guide-languages.html
create mode 100644 layouts/_partials/guide-tags.html
delete mode 100644 layouts/_partials/languages.html
delete mode 100644 layouts/_partials/sidebar/tags.html
delete mode 100644 layouts/_partials/tags.html
delete mode 100644 layouts/guides/single.html
delete mode 100644 layouts/tags/taxonomy.html
delete mode 100644 layouts/tags/term.html
diff --git a/COMPONENTS.md b/COMPONENTS.md
index a1dcebbf0d..69eeef3751 100644
--- a/COMPONENTS.md
+++ b/COMPONENTS.md
@@ -60,6 +60,32 @@ params:
---
```
+### Series (guide) pages
+
+Section pages under `content/guides/` automatically use the `series` layout
+(via a Hugo cascade in `hugo.yaml`). Series pages support additional front
+matter parameters for the metadata card:
+
+```yaml
+---
+title: Getting started
+description: Learn the basics of Docker
+summary: |
+ A longer summary shown on the series landing page.
+params:
+ proficiencyLevel: Beginner
+ time: 15 minutes
+ prerequisites: None
+---
+```
+
+| Field | Description |
+| ---------------- | ---------------------------------------- |
+| summary | Extended description for the series page |
+| proficiencyLevel | Skill level (Beginner, Intermediate) |
+| time | Estimated time to complete |
+| prerequisites | Prerequisites or "None" |
+
## Shortcodes
Shortcodes are reusable components that add rich functionality to your
diff --git a/content/get-started/docker-concepts/building-images/_index.md b/content/get-started/docker-concepts/building-images/_index.md
index a999122c4d..05d8c60789 100644
--- a/content/get-started/docker-concepts/building-images/_index.md
+++ b/content/get-started/docker-concepts/building-images/_index.md
@@ -13,9 +13,9 @@ summary: |
deep dive into the secrets of images, how they are built and best practices.
layout: series
params:
- skill: Beginner
+ proficiencyLevel: Beginner
time: 25 minutes
- prereq: None
+ prerequisites: None
---
## About this series
diff --git a/content/get-started/introduction/_index.md b/content/get-started/introduction/_index.md
index e7362a868b..a28300d3b4 100644
--- a/content/get-started/introduction/_index.md
+++ b/content/get-started/introduction/_index.md
@@ -12,9 +12,9 @@ summary: |
commands, image creation, and container orchestration.
layout: series
params:
- skill: Beginner
+ proficiencyLevel: Beginner
time: 15 minutes
- prereq: None
+ prerequisites: None
aliases:
- /guides/getting-started/
---
diff --git a/content/languages/_index.md b/content/languages/_index.md
deleted file mode 100644
index 78fd6dd9e2..0000000000
--- a/content/languages/_index.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-cascade:
- build:
- render: never
----
-
diff --git a/content/languages/c-sharp/_index.md b/content/languages/c-sharp/_index.md
deleted file mode 100644
index a579a538ce..0000000000
--- a/content/languages/c-sharp/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: C#
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/csharp/csharp-original.svg
----
diff --git a/content/languages/cpp/_index.md b/content/languages/cpp/_index.md
deleted file mode 100644
index f77781db89..0000000000
--- a/content/languages/cpp/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: C++
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/cplusplus/cplusplus-original.svg
----
diff --git a/content/languages/go/_index.md b/content/languages/go/_index.md
deleted file mode 100644
index b98a732a75..0000000000
--- a/content/languages/go/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Go
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/go/go-original.svg
----
diff --git a/content/languages/java/_index.md b/content/languages/java/_index.md
deleted file mode 100644
index 302591c35a..0000000000
--- a/content/languages/java/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Java
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/java/java-original.svg
----
diff --git a/content/languages/js/_index.md b/content/languages/js/_index.md
deleted file mode 100644
index 92ef7a7ff0..0000000000
--- a/content/languages/js/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: JavaScript
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg
----
diff --git a/content/languages/php/_index.md b/content/languages/php/_index.md
deleted file mode 100644
index 03bf6baa77..0000000000
--- a/content/languages/php/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: PHP
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/php/php-original.svg
----
diff --git a/content/languages/python/_index.md b/content/languages/python/_index.md
deleted file mode 100644
index 1e0a5bb338..0000000000
--- a/content/languages/python/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Python
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg
----
diff --git a/content/languages/r/_index.md b/content/languages/r/_index.md
deleted file mode 100644
index c02712c12d..0000000000
--- a/content/languages/r/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: R
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/r/r-original.svg
----
diff --git a/content/languages/ruby/_index.md b/content/languages/ruby/_index.md
deleted file mode 100644
index d99155828e..0000000000
--- a/content/languages/ruby/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Ruby
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/ruby/ruby-original.svg
----
diff --git a/content/languages/rust/_index.md b/content/languages/rust/_index.md
deleted file mode 100644
index 80b981d535..0000000000
--- a/content/languages/rust/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Rust
-params:
- icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/rust/rust-original.svg
----
diff --git a/content/tags/_index.md b/content/tags/_index.md
deleted file mode 100644
index 1568ead9fe..0000000000
--- a/content/tags/_index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Tags
-params:
- icon: tag
----
-
-Here you can browse Docker docs by tag.
diff --git a/content/tags/admin/_index.md b/content/tags/admin/_index.md
deleted file mode 100644
index 9f7ab9b1a9..0000000000
--- a/content/tags/admin/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Administration
----
diff --git a/content/tags/ai/_index.md b/content/tags/ai/_index.md
deleted file mode 100644
index d16578aa0f..0000000000
--- a/content/tags/ai/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: AI
----
diff --git a/content/tags/app-dev/_index.md b/content/tags/app-dev/_index.md
deleted file mode 100644
index 2bea4fc70c..0000000000
--- a/content/tags/app-dev/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: App development
----
diff --git a/content/tags/best-practices/_index.md b/content/tags/best-practices/_index.md
deleted file mode 100644
index ada8e2b9f6..0000000000
--- a/content/tags/best-practices/_index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Best practices
-description: Optimal patterns for Docker
----
-
-Best practices articles describe methods and techniques that are generally
-the most idiomatic and optimized way to do something.
diff --git a/content/tags/cloud-services/_index.md b/content/tags/cloud-services/_index.md
deleted file mode 100644
index 2f57b23d5a..0000000000
--- a/content/tags/cloud-services/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Cloud services
----
diff --git a/content/tags/data-science/_index.md b/content/tags/data-science/_index.md
deleted file mode 100644
index 7926e09730..0000000000
--- a/content/tags/data-science/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Data science
----
diff --git a/content/tags/databases/_index.md b/content/tags/databases/_index.md
deleted file mode 100644
index 51607bd691..0000000000
--- a/content/tags/databases/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Databases
----
diff --git a/content/tags/deploy/_index.md b/content/tags/deploy/_index.md
deleted file mode 100644
index d93db5d491..0000000000
--- a/content/tags/deploy/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Deployment
----
diff --git a/content/tags/devops/_index.md b/content/tags/devops/_index.md
deleted file mode 100644
index 2d9ad18674..0000000000
--- a/content/tags/devops/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: DevOps
----
diff --git a/content/tags/dhi/_index.md b/content/tags/dhi/_index.md
deleted file mode 100644
index c1d74b1c1f..0000000000
--- a/content/tags/dhi/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Docker Hardened Images
----
diff --git a/content/tags/distributed-systems/_index.md b/content/tags/distributed-systems/_index.md
deleted file mode 100644
index ce0470da6d..0000000000
--- a/content/tags/distributed-systems/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Distributed systems
----
diff --git a/content/tags/faq/_index.md b/content/tags/faq/_index.md
deleted file mode 100644
index 861ac65830..0000000000
--- a/content/tags/faq/_index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: FAQ
-description: Frequently asked questions
----
-
-FAQs contain frequently asked questions about all things Docker, from accounts
-and administration to organization management, Docker Desktop, Docker Compose,
-and more.
diff --git a/content/tags/frameworks/_index.md b/content/tags/frameworks/_index.md
deleted file mode 100644
index e8bd2590f9..0000000000
--- a/content/tags/frameworks/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Frameworks
----
diff --git a/content/tags/networking/_index.md b/content/tags/networking/_index.md
deleted file mode 100644
index e5573002b6..0000000000
--- a/content/tags/networking/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Networking
----
diff --git a/content/tags/observability/_index.md b/content/tags/observability/_index.md
deleted file mode 100644
index 19d027311a..0000000000
--- a/content/tags/observability/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Observability
----
diff --git a/content/tags/product-demo/_index.md b/content/tags/product-demo/_index.md
deleted file mode 100644
index de46c1a377..0000000000
--- a/content/tags/product-demo/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Product demo
----
diff --git a/content/tags/release-notes/_index.md b/content/tags/release-notes/_index.md
deleted file mode 100644
index 3cafaa0a4f..0000000000
--- a/content/tags/release-notes/_index.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Release notes
-icon: note_stack_add
-description: Find out about the latest features
-aliases:
-- /release-notes/
----
-
-Release notes describe corrections, changes or enhancements made to a product
-product in a given release.
diff --git a/content/tags/secrets/_index.md b/content/tags/secrets/_index.md
deleted file mode 100644
index f1e0375290..0000000000
--- a/content/tags/secrets/_index.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Secrets
-description: Use sensitive information in containers securely
----
-
-A secret is a piece of data, such as a password, SSH private key, SSL
-certificate, or anything that should not be transmitted over a network or
-stored unencrypted in a Dockerfile or in your application's source code.
-
-Docker provides specially designated features for managing secrets.
diff --git a/content/tags/troubleshooting/_index.md b/content/tags/troubleshooting/_index.md
deleted file mode 100644
index 47f17d79c3..0000000000
--- a/content/tags/troubleshooting/_index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Troubleshooting
-description: Fix common issues
----
-
-Troubleshooting articles contain guidelines for solving common problems and
-pitfalls that you might encounter with Docker products.
diff --git a/data/languages.yaml b/data/languages.yaml
new file mode 100644
index 0000000000..c3cae399d1
--- /dev/null
+++ b/data/languages.yaml
@@ -0,0 +1,30 @@
+c-sharp:
+ title: "C#"
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/csharp/csharp-original.svg
+cpp:
+ title: C++
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/cplusplus/cplusplus-original.svg
+go:
+ title: Go
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/go/go-original.svg
+java:
+ title: Java
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/java/java-original.svg
+js:
+ title: JavaScript
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg
+php:
+ title: PHP
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/php/php-original.svg
+python:
+ title: Python
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg
+r:
+ title: R
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/r/r-original.svg
+ruby:
+ title: Ruby
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/ruby/ruby-original.svg
+rust:
+ title: Rust
+ icon: https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/rust/rust-original.svg
diff --git a/data/tags.yaml b/data/tags.yaml
new file mode 100644
index 0000000000..7a15baf22e
--- /dev/null
+++ b/data/tags.yaml
@@ -0,0 +1,38 @@
+admin:
+ title: Administration
+ai:
+ title: AI
+app-dev:
+ title: App development
+best-practices:
+ title: Best practices
+cloud-services:
+ title: Cloud services
+data-science:
+ title: Data science
+databases:
+ title: Databases
+deploy:
+ title: Deployment
+devops:
+ title: DevOps
+dhi:
+ title: Docker Hardened Images
+distributed-systems:
+ title: Distributed systems
+faq:
+ title: FAQ
+frameworks:
+ title: Frameworks
+networking:
+ title: Networking
+observability:
+ title: Observability
+product-demo:
+ title: Product demo
+release-notes:
+ title: Release notes
+secrets:
+ title: Secrets
+troubleshooting:
+ title: Troubleshooting
diff --git a/hugo.yaml b/hugo.yaml
index 2193d24623..1de3c9ebab 100644
--- a/hugo.yaml
+++ b/hugo.yaml
@@ -8,9 +8,7 @@ disableHugoGeneratorInject: true
ignoreLogs:
- cascade-pattern-with-extension
-taxonomies:
- tag: tags
- language: languages
+taxonomies: {}
# Remove the /manuals prefix for content in the manuals section
permalinks:
@@ -92,10 +90,6 @@ outputs:
section:
- html
- markdown
- taxonomy:
- - html
- term:
- - html
languages:
en:
diff --git a/layouts/_partials/aside.html b/layouts/_partials/aside.html
index 6542d63643..bed195c708 100644
--- a/layouts/_partials/aside.html
+++ b/layouts/_partials/aside.html
@@ -5,11 +5,4 @@
{{ partialCached "pagemeta.html" . . }}
- {{- if ne .Type "guides" }}
- {{ with .GetTerms "tags" }}
-
- {{- partial "tags.html" . }}
-
- {{- end }}
-{{- end }}
-
\ No newline at end of file
+
diff --git a/layouts/_partials/components/guide-summary.html b/layouts/_partials/components/guide-summary.html
deleted file mode 100644
index 458bf9645b..0000000000
--- a/layouts/_partials/components/guide-summary.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- Skill level
- {{ .Params.skill }}
-
-
- Time to complete
- {{ .Params.time }}
-
-
- Prerequisites
- {{ .Params.prereq }}
-
-
-
diff --git a/layouts/_partials/content-default.html b/layouts/_partials/content-default.html
index f47a11f743..9a021cb602 100644
--- a/layouts/_partials/content-default.html
+++ b/layouts/_partials/content-default.html
@@ -12,6 +12,17 @@
{{ .Content }}
+ {{- if and (eq .Type "guides") (not .IsSection) (ne .CurrentSection .FirstSection) -}}
+ {{- with .PrevInSection -}}
+
+ {{- end -}}
+ {{- end -}}
{{ partial "aside.html" . }}
diff --git a/layouts/_partials/guide-languages.html b/layouts/_partials/guide-languages.html
new file mode 100644
index 0000000000..32eec69d70
--- /dev/null
+++ b/layouts/_partials/guide-languages.html
@@ -0,0 +1,15 @@
+{{- range . -}}
+ {{- $lang := index site.Data.languages . -}}
+ {{- with $lang }}
+
+
+ {{ .title }}
+
+ {{- end -}}
+{{- end -}}
diff --git a/layouts/_partials/guide-tags.html b/layouts/_partials/guide-tags.html
new file mode 100644
index 0000000000..c5ec9c48b4
--- /dev/null
+++ b/layouts/_partials/guide-tags.html
@@ -0,0 +1,9 @@
+{{- range . -}}
+ {{- $tag := index site.Data.tags . -}}
+ {{- with $tag }}
+
+ {{ partialCached "icon" "tag" "tag" }}
+ {{ .title }}
+
+ {{- end -}}
+{{- end -}}
diff --git a/layouts/_partials/languages.html b/layouts/_partials/languages.html
deleted file mode 100644
index f2447cae43..0000000000
--- a/layouts/_partials/languages.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{{- /*
- List of languages (taxonomy) chips with images
- Context: page.Pages
- */
--}}
-{{- range . -}}
- {{- if eq .File nil }}
- {{- errorf "[languages] Undefined language: '%s' in %s" (urlize (strings.ToLower .Title)) page.File.Filename }}
- {{- end }}
- {{- if not .Page.Params.icon }}
- {{- errorf "[languages] language is missing an icon: '%s' in %s" (urlize (strings.ToLower .Title)) page.File.Filename }}
- {{- end }}
-
-
- {{ .Page.LinkTitle }}
-
-{{- end -}}
diff --git a/layouts/_partials/schema.html b/layouts/_partials/schema.html
index 9506b1d772..11e6993de9 100644
--- a/layouts/_partials/schema.html
+++ b/layouts/_partials/schema.html
@@ -43,6 +43,16 @@
{{- $schema = merge $schema (dict "keywords" .) -}}
{{- end -}}
+{{- /* Add proficiency level if specified in frontmatter */ -}}
+{{- with .Params.proficiencyLevel -}}
+ {{- $schema = merge $schema (dict "proficiencyLevel" .) -}}
+{{- end -}}
+
+{{- /* Add prerequisites if specified in frontmatter */ -}}
+{{- with .Params.prerequisites -}}
+ {{- $schema = merge $schema (dict "dependencies" .) -}}
+{{- end -}}
+
{{- /* Add time required if specified in frontmatter */ -}}
{{- with .Params.time -}}
{{- /* Convert "20 minutes" to ISO 8601 duration "PT20M" */ -}}
diff --git a/layouts/_partials/sidebar/guides.html b/layouts/_partials/sidebar/guides.html
index b601eae7ea..a10e800e1a 100644
--- a/layouts/_partials/sidebar/guides.html
+++ b/layouts/_partials/sidebar/guides.html
@@ -1,33 +1,19 @@
-{{- /*
- Renders a sidebar for pages in the `/guides` section.
- - Detects if the current page is part of a multipage guide (`.Store.Set "multipage"`).
- - Displays the section's title, summary, languages, tags, and estimated time (`Params.time`).
- - Includes a stepper navigation (`guides-stepper.html`) for multipage guides.
- - Optionally lists resource links from `Params.resource_links`.
- - Provides a link back to the main `/guides/` index.
- */
--}}
+{{- $guide := cond (eq .CurrentSection .FirstSection) . .CurrentSection -}}
- {{- $root := . }}
- {{- .Store.Set "multipage" false }}
- {{- if ne .CurrentSection .FirstSection }}
- {{- $root = .CurrentSection }}
- {{- .Store.Set "multipage" true }}
- {{- end }}
-
{{ $root.Summary }}
+
{{ $guide.Summary }}
- {{- with ($root.GetTerms "languages") }}
- {{ partial "languages.html" . }}
+ {{- with $guide.Params.languages }}
+ {{ partial "guide-languages.html" . }}
{{- end }}
- {{- with ($root.GetTerms "tags") }}
- {{ partial "tags.html" . }}
+ {{- with $guide.Params.tags }}
+ {{ partial "guide-tags.html" . }}
{{- end }}
- {{- with ($root.Params.time) }}
+ {{- with $guide.Params.time }}
{{ partialCached "icon" "schedule" "schedule" }}
{{- end -}}
- {{- if (.Store.Get "multipage") }}
+ {{- if gt (len $guide.Pages) 0 }}
{{- partial "guides-stepper.html" . }}
{{- end }}
- {{- with $root.Params.resource_links }}
+ {{- with $guide.Params.resource_links }}
{{- end }}
-
« Back to all guides
+
« Back to all guides
diff --git a/layouts/_partials/sidebar/tags.html b/layouts/_partials/sidebar/tags.html
deleted file mode 100644
index a7834b2653..0000000000
--- a/layouts/_partials/sidebar/tags.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{{- /*
- Renders a flat list of tags for the "tags" taxonomy.
- - Unlike `sections.html`, this template is based on taxonomy terms, not section pages.
- - Highlights the current tag page and links to all tag pages.
- */
--}}
-
- {{- range site.Taxonomies.tags }}
-
-
- {{ .Page.LinkTitle }}
-
-
- {{- end }}
-
diff --git a/layouts/_partials/tags.html b/layouts/_partials/tags.html
deleted file mode 100644
index faca46436c..0000000000
--- a/layouts/_partials/tags.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{{- /*
- List of tag "chips" as links
- Context: page.Pages
- */
--}}
-{{- range . -}}
- {{- if eq .File nil }}
- {{- errorf "[tags] Undefined tag: '%s' in %s" (urlize (strings.ToLower .Title)) page.File.Filename }}
- {{- end }}
-
-
- {{ partialCached "icon" "tag" "tag" }}
-
- {{ .LinkTitle }}
-
-{{- end -}}
diff --git a/layouts/baseof.html b/layouts/baseof.html
index ebb1e7f5d8..c33fc02347 100644
--- a/layouts/baseof.html
+++ b/layouts/baseof.html
@@ -53,7 +53,11 @@
{{ block "left" . }}
{{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/sections.html" . }}
+ {{ if eq .Type "guides" }}
+ {{ partial "sidebar/guides.html" . }}
+ {{ else }}
+ {{ partial "sidebar/sections.html" . }}
+ {{ end }}
{{ end }}
diff --git a/layouts/glossary.html b/layouts/glossary.html
index cc4da2ee3b..96660152fe 100644
--- a/layouts/glossary.html
+++ b/layouts/glossary.html
@@ -1,8 +1,3 @@
-{{ define "left" }}
- {{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/sections.html" . }}
-{{ end }}
-
{{ define "main" }}
{{ partial "breadcrumbs.html" . }}
diff --git a/layouts/guides/landing.html b/layouts/guides/landing.html
index 03501c9e40..f71aaea091 100644
--- a/layouts/guides/landing.html
+++ b/layouts/guides/landing.html
@@ -40,7 +40,7 @@
>
Tags
- {{- range $name, $taxonomy := where site.Taxonomies.tags ".Page.Section" "guides" }}
+ {{- range $name, $data := site.Data.tags }}
{{- $id := anchorize (fmt.Printf "tag-%s" $name) }}
{{ .Page.LinkTitle }} {{ $data.title }}
{{ end }}
Languages
- {{- range $name, $taxonomy := where site.Taxonomies.languages ".Page.Type" "guides" }}
+ {{- range $name, $data := site.Data.languages }}
{{- $id := anchorize (fmt.Printf "lang-%s" $name) }}
- {{ .Page.LinkTitle }}
+ {{ $data.title }}
{{ end }}
@@ -189,12 +189,12 @@
- {{- range $name, $taxonomy := site.Taxonomies.tags }}
+ {{- range $name, $data := site.Data.tags }}
- {{ template "termchip" $taxonomy.Page.LinkTitle }}
+ {{ template "termchip" $data.title }}
{{- end }}
- {{- range $name, $taxonomy := site.Taxonomies.languages }}
+ {{- range $name, $data := site.Data.languages }}
-
{{ .Page.LinkTitle }}
+
{{ $data.title }}
{{- end }}
@@ -241,11 +241,11 @@
class="flex items-center justify-between gap-8 text-sm text-gray-400 dark:text-gray-300"
>
- {{- $langs := .GetTerms "languages" }}
- {{ partial "languages" $langs }}
- {{- $tags := .GetTerms "tags" }}
- {{- range $tags }}
- {{ template "termchip" .Page.LinkTitle }}
+ {{- with .Params.languages }}
+ {{ partial "guide-languages.html" . }}
+ {{- end }}
+ {{- with .Params.tags }}
+ {{ partial "guide-tags.html" . }}
{{- end }}
{{- with .Params.time }}
diff --git a/layouts/guides/list.html b/layouts/guides/list.html
index cc1fd07232..fd2093b64c 100644
--- a/layouts/guides/list.html
+++ b/layouts/guides/list.html
@@ -1,8 +1,3 @@
-{{ define "left" }}
- {{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/guides.html" . }}
-{{ end }}
-
{{ define "main" }}
{{ partial "breadcrumbs.html" . }}
@@ -14,7 +9,7 @@
{{ .Content }}
{{ partial "heading.html" (dict "text" "Modules" "level" 2) }}
- {{- range $i, $e := .Pages }}
+ {{- range .Pages }}
{{ .LinkTitle }}
{{ plainify .Description }}
diff --git a/layouts/guides/single.html b/layouts/guides/single.html
deleted file mode 100644
index 27940dee77..0000000000
--- a/layouts/guides/single.html
+++ /dev/null
@@ -1,21 +0,0 @@
-{{ define "left" }}
- {{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/guides.html" . }}
-{{ end }}
-
-{{ define "main" }}
- {{ partial "content-default.html" . }}
-
- {{ if (.Store.Get "multipage") }}
- {{- with .PrevInSection }}
-
- {{- end }}
- {{- end }}
-
-{{ end }}
diff --git a/layouts/home.metadata.json b/layouts/home.metadata.json
index acfaf21f2b..aafcee28c7 100644
--- a/layouts/home.metadata.json
+++ b/layouts/home.metadata.json
@@ -4,8 +4,11 @@
{{- $desc := partialCached "utils/description.html" . . -}}
{{- $kwd := partialCached "utils/keywords.html" . . -}}
{{- $tags := slice -}}
- {{- range (.GetTerms "tags") -}}
- {{ $tags = $tags | append .LinkTitle }}
+ {{- range (.Params.tags | default slice) -}}
+ {{- $tagData := index site.Data.tags . -}}
+ {{- with $tagData -}}
+ {{ $tags = $tags | append .title }}
+ {{- end -}}
{{- end -}}
{{- jsonify (dict "url" .Permalink "title" $title "description" $desc "keywords" $kwd "tags" $tags) -}},
{{- end -}}
diff --git a/layouts/samples/single.html b/layouts/samples/single.html
index 29142d0642..0b03d6d9ef 100644
--- a/layouts/samples/single.html
+++ b/layouts/samples/single.html
@@ -1,8 +1,3 @@
-{{ define "left" }}
- {{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/sections.html" . }}
-{{ end }}
-
{{ define "main" }}
{{ partial "breadcrumbs.html" . }}
diff --git a/layouts/series.html b/layouts/series.html
index 498e05ec29..40bfea0b73 100644
--- a/layouts/series.html
+++ b/layouts/series.html
@@ -3,14 +3,39 @@
{{ .Summary }}
- {{ partial "components/guide-summary.html" . }}
+ {{- if or .Params.proficiencyLevel .Params.time .Params.prerequisites }}
+
+
+ {{- with .Params.proficiencyLevel }}
+
+ Skill level
+ {{ . }}
+
+ {{- end }}
+ {{- with .Params.time }}
+
+ Time to complete
+ {{ . }}
+
+ {{- end }}
+ {{- with .Params.prerequisites }}
+
+ Prerequisites
+ {{ . }}
+
+ {{- end }}
+
+
+ {{- end }}
{{ .Content }}
{{ partial "heading.html" (dict "text" "Modules" "level" 2) }}
- {{ range $i, $e := .Pages }}
- {{ $o := compare.Conditional (eq $i 0) true false }}
- {{ $t := fmt.Printf "%d. %s" (add $i 1) $e.Title }}
- {{ $b := fmt.Printf "%s\n\n{{< button url=`%s` text=`%s` >}}" $e.Summary $e.Permalink "Start" }}
- {{ partial "components/accordion.html" (dict "large" true "open" $o "title" $t "body" $b) }}
- {{ end }}
+
+ {{- range .Pages }}
+
+ {{ .LinkTitle }}
+ {{ plainify .Description }}
+
+ {{- end }}
+
{{ end }}
diff --git a/layouts/tags/taxonomy.html b/layouts/tags/taxonomy.html
deleted file mode 100644
index c1dc1a5b37..0000000000
--- a/layouts/tags/taxonomy.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{{ define "left" }}
- {{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/tags.html" . }}
-{{ end }}
-
-{{ define "main" }}
-
- {{ partial "breadcrumbs.html" . }}
-
- {{ partialCached "icon" "tag" "tag" }}
- {{ .Title }}
-
- {{ .Content }}
-
- {{ range site.Taxonomies.tags }}
-
- {{ .Page.Title }}
- ({{ (len .Pages) }} {{ cond (gt (len .Pages) 1) "pages" "page" }})
-
- {{ end }}
-
-
-{{ end }}
diff --git a/layouts/tags/term.html b/layouts/tags/term.html
deleted file mode 100644
index c23440e32d..0000000000
--- a/layouts/tags/term.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{{ define "left" }}
- {{ partial "sidebar/mainnav.html" . }}
- {{ partial "sidebar/tags.html" . }}
-{{ end }}
-
-{{ define "main" }}
-
- {{ partial "breadcrumbs.html" . }}
-
- {{ partialCached "icon" "tag" "tag" }}
- {{ .Title }}
-
- {{ .Content }}
- {{- range .Pages.GroupBy "Type" }}
- {{ (site.GetPage .Key).LinkTitle }}
-
- {{- end }}
-
-{{ end }}