From aa7e435999e81c51bc80f330f8ac817801cc1c9a Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Tue, 10 Mar 2026 19:11:01 +0100 Subject: [PATCH 1/2] blog: add homepage section, tags, and improved blog pages Revitalize the blog presence on tekton.dev: - Add a 'Latest from the Blog' section to the homepage showing the 3 most recent posts as cards with title, date, tags, description, and author, plus a 'View all posts' CTA button - Tag all 11 existing blog posts with descriptive categories: release, security, tutorial, deep-dive, community, and component-specific tags (pipelines, chains, pruner, etc.) - Display tags as badges on blog post pages and the blog list - Improve the blog landing page with a description and a call-to-action for blog contributions Implemented via Hugo shortcode (recent-blog-posts.html) and overridden Docsy blog templates (content.html, list.html). --- assets/scss/_styles_project.scss | 40 ++++++++++++ content/en/_index.html | 2 + content/en/blog/2022/graduation/index.md | 2 + content/en/blog/2023/cdcon-gitopscon/index.md | 3 + .../index.md | 3 + content/en/blog/2023/slsa-2/index.md | 3 + .../index.md | 3 + content/en/blog/2025/ghcr-migration/index.md | 3 + .../index.md | 3 + .../blog/2025/tekton-pipeline-v1.0.0/index.md | 3 + .../2026/introducing-tekton-pruner/index.md | 3 + .../index.md | 3 + .../2026/tekton-pipeline-v1.9.0-lts/index.md | 3 + content/en/blog/_index.md | 7 +++ layouts/blog/content.html | 29 +++++++++ layouts/blog/list.html | 51 +++++++++++++++ layouts/shortcodes/recent-blog-posts.html | 63 +++++++++++++++++++ 17 files changed, 224 insertions(+) create mode 100644 layouts/blog/content.html create mode 100644 layouts/blog/list.html create mode 100644 layouts/shortcodes/recent-blog-posts.html diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index 114518df0..951d094dd 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -146,6 +146,46 @@ pre { } +/* Blog cards on homepage */ +.card.shadow-sm { + transition: transform 0.2s ease, box-shadow 0.2s ease; + border-radius: 8px; + + &:hover { + transform: translateY(-4px); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important; + } + + .card-title a { + text-decoration: none; + + &:hover { + color: $primary !important; + } + } + + .badge-light { + background-color: #e9ecef; + font-weight: normal; + font-size: 0.75rem; + } +} + +/* Blog tag badges */ +.blog-tags .badge { + margin-right: 0.25rem; + margin-bottom: 0.25rem; + font-size: 0.85rem; + font-weight: normal; + padding: 0.35em 0.65em; +} + +.badge-outline-primary { + color: $primary; + background-color: transparent; + border: 1px solid $primary; +} + /* Styling for the banner */ .banner { color: #fff; diff --git a/content/en/_index.html b/content/en/_index.html index 592927928..58251b3a2 100644 --- a/content/en/_index.html +++ b/content/en/_index.html @@ -39,6 +39,8 @@ {{< /blocks/section >}} +{{< recent-blog-posts >}} + diff --git a/content/en/blog/2022/graduation/index.md b/content/en/blog/2022/graduation/index.md index 5ce43ffb0..840936e1b 100644 --- a/content/en/blog/2022/graduation/index.md +++ b/content/en/blog/2022/graduation/index.md @@ -5,6 +5,8 @@ date: 2022-10-26 author: "Andrea Frittoli" description: > From founding project to graduated, a brief history of Tekton +tags: + - community --- We're very happy to announce that Tekton has reached graduated status within the diff --git a/content/en/blog/2023/cdcon-gitopscon/index.md b/content/en/blog/2023/cdcon-gitopscon/index.md index d46ca01ae..f14192344 100644 --- a/content/en/blog/2023/cdcon-gitopscon/index.md +++ b/content/en/blog/2023/cdcon-gitopscon/index.md @@ -5,6 +5,9 @@ date: 2023-04-14 author: "CD Foundation" description: > List of talks given by Tekton community members at cdCon + GitOpsCon 2023 +tags: + - community + - events --- {{< imgproc banner Fit 700x500 >}}{{< /imgproc >}} diff --git a/content/en/blog/2023/distributed-traces-for-testing-with-tekton-pipelines-and-tracetest/index.md b/content/en/blog/2023/distributed-traces-for-testing-with-tekton-pipelines-and-tracetest/index.md index 5a556c2dc..b83b16fbb 100644 --- a/content/en/blog/2023/distributed-traces-for-testing-with-tekton-pipelines-and-tracetest/index.md +++ b/content/en/blog/2023/distributed-traces-for-testing-with-tekton-pipelines-and-tracetest/index.md @@ -5,6 +5,9 @@ date: 2023-08-15 author: "Adnan Rahic" description: > How to automate Tracetest test runs with Tekton +tags: + - tutorial + - pipelines --- [Tekton](https://tekton.dev/) is an [open-source framework](https://github.com/tektoncd/pipeline) for creating efficient CI/CD systems. This empowers developers to seamlessly construct, test, and deploy applications across various cloud environments and on-premise setups. diff --git a/content/en/blog/2023/slsa-2/index.md b/content/en/blog/2023/slsa-2/index.md index c5ec27aa7..11e33de7b 100644 --- a/content/en/blog/2023/slsa-2/index.md +++ b/content/en/blog/2023/slsa-2/index.md @@ -5,6 +5,9 @@ date: 2023-04-19 author: "Prakash Jagatheesan and Brandon Lum, Google Software Engineers" description: > Tekton SLSA Integrations +tags: + - security + - chains --- # Overview As application developers, we achieve amazing results quickly by leveraging a rich ecosystem of freely available libraries, modules and frameworks that provide ready-to-use capabilities and abstract away from underlying complexity. This is so foundational to how we work that we'll nonchalantly build and publish an app that pulls in hundreds of dependencies without even thinking about it. And it's only fairly recently, in the wake of some very high profile and high impact compromises, that we've started to reckon with the fact that this wonderful ecosystem is also a security quagmire. All of the dependencies that feed into your build make up your software supply chain, and supply chains need to be secured. In this post, we'll show how an increasingly popular open source CI/CD system, Tekton, implements the [OpenSSF SLSA][slsa] framework to provide you with supply chain security guarantees. diff --git a/content/en/blog/2023/speeding-up-container-image-builds-in-tekton-pipelines/index.md b/content/en/blog/2023/speeding-up-container-image-builds-in-tekton-pipelines/index.md index 532c32447..6698102a4 100644 --- a/content/en/blog/2023/speeding-up-container-image-builds-in-tekton-pipelines/index.md +++ b/content/en/blog/2023/speeding-up-container-image-builds-in-tekton-pipelines/index.md @@ -5,6 +5,9 @@ date: 2023-11-02 author: "Giovanni Galloro, Google" description: > Various caching approaches to speed container builds in Tekton +tags: + - tutorial + - pipelines --- diff --git a/content/en/blog/2025/ghcr-migration/index.md b/content/en/blog/2025/ghcr-migration/index.md index c0f40184e..e94ced39c 100644 --- a/content/en/blog/2025/ghcr-migration/index.md +++ b/content/en/blog/2025/ghcr-migration/index.md @@ -5,6 +5,9 @@ date: 2025-04-03 author: "Stanislav Jakuschevskij, IBM" description: > How to migrate your images from gcr.io to ghcr.io and why we migrated +tags: + - release + - infrastructure --- ## Why and How diff --git a/content/en/blog/2025/protect-signing-secrets-for-tekton-chains-using-confidential-computing/index.md b/content/en/blog/2025/protect-signing-secrets-for-tekton-chains-using-confidential-computing/index.md index fd63043d0..fd5fe3e1d 100644 --- a/content/en/blog/2025/protect-signing-secrets-for-tekton-chains-using-confidential-computing/index.md +++ b/content/en/blog/2025/protect-signing-secrets-for-tekton-chains-using-confidential-computing/index.md @@ -5,6 +5,9 @@ date: 2025-04-23 author: "Puneet Punamiya and Pradipta Banerjee, Red Hat" description: > Integrating Tekton pipelines and chains with confidential computing +tags: + - security + - chains --- diff --git a/content/en/blog/2025/tekton-pipeline-v1.0.0/index.md b/content/en/blog/2025/tekton-pipeline-v1.0.0/index.md index 94d20fa90..cf52061ff 100644 --- a/content/en/blog/2025/tekton-pipeline-v1.0.0/index.md +++ b/content/en/blog/2025/tekton-pipeline-v1.0.0/index.md @@ -5,6 +5,9 @@ date: 2025-05-23 author: "Vincent Demeester, Red Hat" description: > Tekton Pipeline component v1.0.0 release announcement. +tags: + - release + - pipelines --- We're thrilled to announce the official 1.0 release of the Tekton Pipelines component ([`tektoncd/pipeline`](https://github.com/tektoncd/pipeline) repository) ! While this marks a significant milestone for the project, it's important to note that the stability you've come to rely on with the v1 API has been a reality for over two years. This release solidifies that foundation while paving the way for even more exciting changes in the Tekton ecosystem. diff --git a/content/en/blog/2026/introducing-tekton-pruner/index.md b/content/en/blog/2026/introducing-tekton-pruner/index.md index 601bd3d38..02bf41d3d 100644 --- a/content/en/blog/2026/introducing-tekton-pruner/index.md +++ b/content/en/blog/2026/introducing-tekton-pruner/index.md @@ -5,6 +5,9 @@ date: 2026-02-05 author: "Shubham Bhardwaj, Red Hat" description: > Automate the cleanup of completed PipelineRuns and TaskRuns with Tekton Pruner +tags: + - deep-dive + - pruner --- [Tekton Pruner](https://tekton.dev/docs/pruner/) automatically cleans up completed PipelineRuns and TaskRuns based on retention policies you define. diff --git a/content/en/blog/2026/securing-http-resolver-with-digest-verification/index.md b/content/en/blog/2026/securing-http-resolver-with-digest-verification/index.md index ea857ab97..b143bec23 100644 --- a/content/en/blog/2026/securing-http-resolver-with-digest-verification/index.md +++ b/content/en/blog/2026/securing-http-resolver-with-digest-verification/index.md @@ -5,6 +5,9 @@ date: 2026-02-04 author: "Zaki Shaikh, Red Hat" description: > Introducing digest validation support for the HTTP resolver to secure your PipelineRuns by verifying remote Tekton resources. +tags: + - security + - pipelines --- ## Overview diff --git a/content/en/blog/2026/tekton-pipeline-v1.9.0-lts/index.md b/content/en/blog/2026/tekton-pipeline-v1.9.0-lts/index.md index 7c6b13860..70fa94fa6 100644 --- a/content/en/blog/2026/tekton-pipeline-v1.9.0-lts/index.md +++ b/content/en/blog/2026/tekton-pipeline-v1.9.0-lts/index.md @@ -5,6 +5,9 @@ date: 2026-02-02 author: "Vincent Demeester, Red Hat" description: > Announcing Tekton Pipeline v1.9.0 LTS with a summary of all the improvements since v1.0.0. +tags: + - release + - pipelines --- We're excited to announce the release of Tekton Pipelines v1.9.0, our latest Long-Term Support (LTS) release! Since the milestone [v1.0.0 release](https://github.com/tektoncd/pipeline/releases/tag/v1.0.0) in May 2025, the project has continued to evolve with significant new features, performance improvements, and stability enhancements. This post summarizes the journey from v1.0.0 to v1.9.0, organized by LTS milestones. diff --git a/content/en/blog/_index.md b/content/en/blog/_index.md index 697efb5cc..3eb5c158e 100644 --- a/content/en/blog/_index.md +++ b/content/en/blog/_index.md @@ -3,5 +3,12 @@ title: Blog menu: main: weight: 40 +description: > + News, releases, tutorials, and deep dives from the Tekton community. --- +Stay up to date with the latest Tekton developments. Our blog features release announcements, +security best practices, tutorials, and insights from contributors across the ecosystem. + +**Want to contribute a post?** Check out our [blog guidelines](/docs/contribute/blog-guidelines/) +to learn how to submit your article. diff --git a/layouts/blog/content.html b/layouts/blog/content.html new file mode 100644 index 000000000..e03e0d97e --- /dev/null +++ b/layouts/blog/content.html @@ -0,0 +1,29 @@ +
+

{{ .Title }}

+ {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} + + {{ with .Params.tags }} +
+ {{ range . }} + {{ . }} + {{ end }} +
+ {{ end }} + + {{ .Content }} + {{ if (.Site.Params.DisqusShortname) }} +
+ {{ partial "disqus-comment.html" . }} +
+ {{ end }} + + {{ partial "pager.html" . }} +
diff --git a/layouts/blog/list.html b/layouts/blog/list.html new file mode 100644 index 000000000..43f016018 --- /dev/null +++ b/layouts/blog/list.html @@ -0,0 +1,51 @@ +{{ define "main" }} +{{ if (and .Parent .Parent.IsHome) }} +{{ $.Scratch.Set "blog-pages" (where .Site.RegularPages "Section" .Section) }} +{{ else }} +{{$.Scratch.Set "blog-pages" .Pages }} +{{ end }} + +
+
+ {{- if .Pages -}} + {{ $pag := .Paginate (( $.Scratch.Get "blog-pages").GroupByDate "2006" )}} + {{ range $pag.PageGroups }} +

{{ T "post_posts_in" }} {{ .Key }}

+
    + {{ range .Pages }} +
  • +
    +
    {{ .Title }}
    +

    + {{ .Date.Format ($.Param "time_format_blog") }} {{ T "ui_in"}} {{ .CurrentSection.LinkTitle }} + {{ with .Params.tags }} + {{ range . }} + {{ . }} + {{ end }} + {{ end }} +

    + + {{ partial "featured-image.html" (dict "p" . "w" 250 "h" 125 "class" "float-left mr-3 pt-1 d-none d-md-block") }} +

    {{ .Plain | safeHTML | truncate 250 }}

    +

    {{ T "ui_read_more"}}

    +
    +
  • + {{ end }} +
+ {{ end }} + {{ end }} +
+
+
+
+ {{ if .Pages }} + {{ template "_internal/pagination.html" . }} + {{ end }} +
+
+{{ end }} diff --git a/layouts/shortcodes/recent-blog-posts.html b/layouts/shortcodes/recent-blog-posts.html new file mode 100644 index 000000000..467d2cbc7 --- /dev/null +++ b/layouts/shortcodes/recent-blog-posts.html @@ -0,0 +1,63 @@ +{{/* Recent Blog Posts shortcode for the homepage */}} +{{ $pages := where site.RegularPages "Section" "blog" }} +{{ $recent := first 3 $pages }} +{{ if $recent }} + +
+
+
+
+

Latest from the Blog

+

News, tutorials, and deep dives from the Tekton community

+
+
+
+ {{ range $recent }} +
+
+
+
+ + + {{ .Date.Format "January 2, 2006" }} + + {{ with .Params.tags }} + {{ range first 2 . }} + {{ . }} + {{ end }} + {{ end }} +
+
+ + {{ .Params.linkTitle | default .Title }} + +
+

+ {{ with .Description }} + {{ . | truncate 150 }} + {{ else }} + {{ .Summary | truncate 150 }} + {{ end }} +

+
+ + {{ with .Params.author }} + {{ . }} + {{ end }} + +
+
+
+
+ {{ end }} +
+ +
+
+{{ end }} From 5e7a1c2b8580d4051ab55b096e4caac3eff94f9e Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Tue, 24 Mar 2026 11:35:57 +0100 Subject: [PATCH 2/2] blog: address review feedback from PR #705 - Scope .card.shadow-sm CSS selector to .blog-card to avoid styling all bootstrap cards globally - Add {{ .Content }} to blog list.html so _index.md description and intro text are rendered on the blog landing page - Remove taxonomy_terms_article_wrapper.html partial from content.html and list.html since taxonomies are disabled in config.yaml - Use Hugo built-in .LinkTitle method instead of manual .Params.linkTitle | default .Title in recent-blog-posts shortcode - Add comment on .badge-outline-primary CSS class for clarity --- assets/scss/_styles_project.scss | 3 ++- layouts/blog/content.html | 7 +++---- layouts/blog/list.html | 8 ++++---- layouts/shortcodes/recent-blog-posts.html | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index 951d094dd..9925eff66 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -147,7 +147,7 @@ pre { /* Blog cards on homepage */ -.card.shadow-sm { +.blog-card.card.shadow-sm { transition: transform 0.2s ease, box-shadow 0.2s ease; border-radius: 8px; @@ -180,6 +180,7 @@ pre { padding: 0.35em 0.65em; } +/* Badge variant used by homepage blog cards */ .badge-outline-primary { color: $primary; background-color: transparent; diff --git a/layouts/blog/content.html b/layouts/blog/content.html index e03e0d97e..57805ba56 100644 --- a/layouts/blog/content.html +++ b/layouts/blog/content.html @@ -12,12 +12,11 @@

{{ .Title }}

{{ end }} {{ end }} + {{ if (and (not .Params.hide_readingtime) (.Site.Params.ui.readingtime.enable)) }} + {{ end }} {{ .Content }} {{ if (.Site.Params.DisqusShortname) }}
diff --git a/layouts/blog/list.html b/layouts/blog/list.html index 43f016018..a509b4cd2 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -7,6 +7,7 @@
+ {{ .Content }} {{- if .Pages -}} {{ $pag := .Paginate (( $.Scratch.Get "blog-pages").GroupByDate "2006" )}} {{ range $pag.PageGroups }} @@ -24,12 +25,11 @@
{{ .Title }}
{{ end }} {{ end }}

+ {{ if (and (not .Params.hide_readingtime) (.Site.Params.ui.readingtime.enable)) }} + {{ end }} {{ partial "featured-image.html" (dict "p" . "w" 250 "h" 125 "class" "float-left mr-3 pt-1 d-none d-md-block") }}

{{ .Plain | safeHTML | truncate 250 }}

{{ T "ui_read_more"}}

diff --git a/layouts/shortcodes/recent-blog-posts.html b/layouts/shortcodes/recent-blog-posts.html index 467d2cbc7..f665537eb 100644 --- a/layouts/shortcodes/recent-blog-posts.html +++ b/layouts/shortcodes/recent-blog-posts.html @@ -14,7 +14,7 @@

Latest from the Blog

{{ range $recent }}
-