This is an automated email from the ASF dual-hosted git repository.

wu-sheng pushed a commit to branch blog-topics-data-driven
in repository https://gitbox.apache.org/repos/asf/skywalking-website.git

commit fec98ba44ab8d389a9a8e7661e574598e1c7f1b5
Author: Wu Sheng <[email protected]>
AuthorDate: Mon May 25 15:24:07 2026 +0800

    feat(blog): data-driven topics, sidebar, inline pills, taxonomy term pages
    
    Topics (name + EN/CN intro + label colors) now live in a single source of
    truth: data/blog_topics.yml. The sidebar topic cards, inline post pills,
    generated .blog-label[data-label] color rules and /tags/<term>/ pages are
    all driven from that file — adding a 12th topic is one edit, no
    template/SCSS changes required.
    
    Blog index (EN + CN)
    - Hero + right 'Browse topics' sidebar showing one card per topic with
      its description (data file), post count, and link to /tags/<term>/.
    - Main column lists all posts grouped by year (pagination removed; the
      per-tag pages paginate at 12).
    - Sidebar collapses above the grid as a horizontal scroll-snap row at
      <=992px.
    
    Blog detail page
    - Shadowed themes/docsy/layouts/blog/content.html: 'Tags | …' link list
      replaced with inline colored .blog-label pills, each linking to its
      /tags/<term>/ page.
    - Right sidebar shows only the TOC (tags moved inline); column widths
      rebalanced to col-xl-9 + col-xl-3 and the awkward .td-toc border-left
      removed so the natural prose/TOC gap doesn't read as a blank strip.
    - Polished .td-toc styling under .td-blog (uppercase label, brand-blue
      active item, left-border accent on hovered items, +1 nesting depth).
    - Hidden the empty Docsy .td-page-meta that was leaving a gap above the
      TOC.
    
    Tag taxonomy pages (new)
    - layouts/tags/baseof.html + layouts/tags/term.html render /tags/<term>/
      styled like the blog list, filtered to Section==blog (so docs frontmatter
      tags can't bleed in), 12 cards per page with pagination.
    
    Blog content remap
    - Every blog post frontmatter (EN: 82 files, CN: 31 of 94) rewritten to
      use only the canonical 11 labels (Release, AI, Tracing, Metrics,
      Logging, Profiling, Storage, Agents, Cloud Native, Engineering,
      Community), max 3 tags per post, deduped.
---
 assets/scss/_custom_home.scss                      | 167 ++++++++++++++++++---
 content/blog/2018-05-24-skywalking-net/index.md    |   2 +-
 .../index.md                                       |   4 +-
 content/blog/2019-01-01-Understand-Trace/index.md  |   2 +-
 content/blog/2019-01-25-mesh-loadtest/index.md     |   4 +-
 .../blog/2019-09-25-alarm-webhook-share/index.md   |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   6 +-
 .../blog/2020-07-26-apdex-and-skywalking/index.md  |   2 +-
 .../blog/2020-08-03-skywalking8-1-release/index.md |   4 +-
 .../2020-08-11-observability-at-scale/index.md     |   2 +-
 .../blog/2020-10-29-skywalking8-2-release/index.md |   4 +-
 content/blog/2020-11-21-apachecon-keynote/index.md |   2 +-
 .../blog/2020-11-21-apachecon-obs-apisix/index.md  |   2 +-
 .../index.md                                       |   2 +-
 .../2020-11-21-apachecon-obs-sourcemarker/index.md |   2 +-
 .../blog/2020-11-21-apachecon-obs-storage/index.md |   2 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   2 +-
 .../blog/2021-01-01-300-contributors-mark/index.md |   2 +-
 .../2021-01-17-elastic-change-license/index.md     |   2 +-
 .../index.md                                       |   2 +-
 .../blog/2021-02-01-e2e-verifier-design/index.md   |   2 +-
 .../2021-02-07-infrastructure-monitoring/index.md  |   2 +-
 .../index.md                                       |   4 +-
 .../blog/2021-03-16-continuous-feedback/index.md   |   6 +-
 .../blog/2021-05-09-OpenSearch-supported/index.md  |   2 +-
 .../blog/2021-07-12-500-contributors-mark/index.md |   2 +-
 .../blog/2021-08-01-skywalking-8-intro/index.md    |   2 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   2 +-
 .../2021-12-06-extend-skywalking-with-nbb/index.md |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../2022-01-28-volcengine-violates-aplv2/index.md  |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   6 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   6 +-
 .../index.md                                       |   6 +-
 content/blog/2023-01-03-aliyun-copy-page/index.md  |   2 +-
 .../blog/2023-03-12-skywalking-aws-s3-eks/index.md |   2 +-
 .../2023-03-13-skywalking-aws-dynamodb/index.md    |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   4 +-
 .../blog/2023-06-13-celebrate-22k-stars/index.md   |   2 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   6 +-
 content/blog/2023-08-13-hashicorp-bsl/index.md     |   2 +-
 .../2023-10-18-skywalking-toolkit-trace/index.md   |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../blog/2024-05-13-skywalking-10-release/index.md |   6 +-
 .../blog/2024-06-04-banyandb-0.6-release/index.md  |   4 +-
 .../index.md                                       |   2 +-
 .../2024-12-09-skywalking-async-profiler/index.md  |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   6 +-
 .../blog/2026-03-08-agentic-vibe-coding/index.md   |   6 +-
 .../index.md                                       |   6 +-
 .../index.md                                       |   6 +-
 .../index.md                                       |   4 +-
 .../2026-04-05-virtual-genai-monitoring/index.md   |   4 +-
 content/blog/2026-04-08-traceql/index.md           |   4 +-
 .../index.md                                       |   6 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   2 +-
 content/blog/e2e-design/index.md                   |   2 +-
 .../index.md                                       |   6 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../obs-service-mesh-vm-with-sw-and-als/index.md   |   2 +-
 content/blog/skywalking8-4-release/index.md        |   4 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   9 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   5 +-
 .../index.md                                       |   5 +-
 .../index.md                                       |   5 +-
 content/zh/2023-08-20-coc-asia-2023/index.md       |   5 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   5 +-
 content/zh/2023-11-09-ospp-summary/index.md        |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../index.md                                       |   2 +-
 .../zh/2024-05-13-skywalking-10-release/index.md   |   8 +-
 .../zh/2024-06-04-banyandb-0.6-release/index.md    |   5 +-
 content/zh/2024-12-10-ospp-summary/index.md        |   2 +-
 .../index.md                                       |   3 +-
 content/zh/2026-03-08-agentic-vibe-coding/index.md |  10 +-
 .../index.md                                       |  10 +-
 .../index.md                                       |   9 +-
 .../index.md                                       |   6 +-
 .../2026-04-05-virtual-genai-monitoring/index.md   |   7 +-
 content/zh/2026-04-08-traceql/index.md             |   7 +-
 .../index.md                                       |   8 +-
 .../index.md                                       |   4 +-
 .../index.md                                       |   7 +-
 .../index.md                                       |   3 +-
 data/blog_topics.yml                               |  73 +++++++++
 layouts/blog/baseof.html                           |   6 +-
 layouts/blog/content.html                          |  25 +++
 layouts/blog/list.html                             |  75 ++++++---
 layouts/partials/blog-topic-styles.html            |   8 +
 layouts/partials/tags-zh.html                      |   2 +
 layouts/partials/tags.html                         |   4 +
 layouts/tags/baseof.html                           |  22 +++
 layouts/{blog/list.html => tags/term.html}         |  27 ++--
 layouts/zh/baseof.html                             |   6 +-
 layouts/zh/content.html                            |  23 +++
 layouts/zh/list.html                               |  70 ++++++---
 126 files changed, 611 insertions(+), 300 deletions(-)

diff --git a/assets/scss/_custom_home.scss b/assets/scss/_custom_home.scss
index bbed0aac0d1..6010450a176 100644
--- a/assets/scss/_custom_home.scss
+++ b/assets/scss/_custom_home.scss
@@ -761,10 +761,13 @@ $brand-grad: linear-gradient(180deg, #479EEB 0%, #3788D0 
100%);
     p  { font-size: 16px; color: $body; line-height: 1.6; margin: 0; 
max-width: 660px; }
   }
 
-  .blog-wrap { max-width: 1200px; padding-top: 32px; padding-bottom: 64px; }
+  .blog-wrap { max-width: 1200px; padding-top: 18px; padding-bottom: 64px; }
   .blog-year {
-    font-size: 14px; font-weight: 700; color: $muted; border: 0; padding: 0;
-    margin: 28px 0 16px; letter-spacing: .02em;
+    font-size: 12px; font-weight: 700; color: $muted; border: 0; padding: 0;
+    margin: 28px 0 12px; letter-spacing: .1em; text-transform: uppercase;
+    // The very first year heading in the main column must align with the
+    // sidebar's "Browse topics" heading on the same grid row.
+    &:first-child { margin-top: 4px; }
   }
 
   .blog-grid {
@@ -786,18 +789,9 @@ $brand-grad: linear-gradient(180deg, #479EEB 0%, #3788D0 
100%);
     padding: 2px 9px; border-radius: 999px;
     background: #eef1f5; color: #5b6573; border: 1px solid #e1e6ee;
   }
-  // label colors
-  .blog-label[data-label="Release"]      { background:#e6f6ec; color:#1a7f43; 
border-color:#bfe8cd; }
-  .blog-label[data-label="Tracing"]      { background:#fdecde; color:#c2580d; 
border-color:#f6d4ba; }
-  .blog-label[data-label="Metrics"]      { background:#e2f1fd; color:#1d6fb8; 
border-color:#c4e1f7; }
-  .blog-label[data-label="Logging"]      { background:#f0e7fd; color:#7c3aed; 
border-color:#ddccfa; }
-  .blog-label[data-label="Profiling"]    { background:#def5e7; color:#11814b; 
border-color:#bce8cf; }
-  .blog-label[data-label="Storage"]      { background:#e0f7fa; color:#0e7490; 
border-color:#bdeaf1; }
-  .blog-label[data-label="Agents"]       { background:#e8eafd; color:#4f46e5; 
border-color:#d3d7fa; }
-  .blog-label[data-label="Cloud Native"] { background:#e6f3fe; color:#0369a1; 
border-color:#c5e4fb; }
-  .blog-label[data-label="AI"]           { background:#fde8f3; color:#be2069; 
border-color:#f8cbe2; }
-  .blog-label[data-label="Community"]    { background:#eef1f5; color:#5b6573; 
border-color:#e1e6ee; }
-  .blog-label[data-label="Engineering"]  { background:#fef3e2; color:#b45309; 
border-color:#fbe0bb; }
+  // Per-topic colors are generated from data/blog_topics.yml by the
+  // partial layouts/partials/blog-topic-styles.html (included in
+  // blog/baseof.html, zh/baseof.html and tags/baseof.html).
 
   .blog-card-title {
     font-size: 17px; font-weight: 700; line-height: 1.35; margin: 0 0 10px;
@@ -836,14 +830,147 @@ $brand-grad: linear-gradient(180deg, #479EEB 0%, #3788D0 
100%);
     }
     .page-item.active .page-link { background: $brand; border-color: $brand; 
color: #fff !important; }
   }
+
+  // ── Two-column layout: main posts + right "Browse topics" sidebar ─────
+  .blog-layout {
+    display: grid;
+    grid-template-columns: minmax(0, 1fr) 300px;
+    gap: 36px;
+    align-items: start;
+  }
+  .blog-content { min-width: 0; }   // prevent grid blowout from wide cards
+  .blog-sidebar { position: relative; }
+  // No internal scroll: the sidebar just scrolls with the page. (Sticky here
+  // doesn't behave usefully — align-items: start sizes the grid cell to the
+  // sidebar's own height, so there's nothing to stick to.)
+  .blog-sidebar-inner { padding-right: 2px; }
+  // Same font/weight/spacing as .blog-year so both column heads visually
+  // align on the first row of .blog-layout.
+  .blog-sidebar-head {
+    font-size: 12px; font-weight: 700; letter-spacing: .1em;
+    text-transform: uppercase; color: $muted;
+    margin: 4px 0 12px; border: 0; padding: 0;
+  }
+  // With sidebar present the main grid should be 2 cols to keep cards readable
+  .blog-grid { grid-template-columns: 1fr 1fr; }
+
+  // ── "Album" topic cards — used inside the sidebar ─────────────────────
+  .album-grid {
+    display: grid; grid-template-columns: 1fr; gap: 10px;
+  }
+  .album-card {
+    display: flex; flex-direction: column;
+    background: #fff; border: 1px solid $line; border-radius: 12px;
+    padding: 12px 14px; text-decoration: none;
+    transition: box-shadow .18s ease, border-color .18s ease, transform .18s 
ease;
+    &:hover {
+      box-shadow: 0 12px 28px -16px rgba(17,24,39,.22);
+      border-color: #d6e4f5; transform: translateY(-1px);
+    }
+  }
+  .album-top {
+    display: flex; align-items: center; justify-content: space-between;
+    gap: 8px; margin-bottom: 8px;
+  }
+  .album-count {
+    font-size: 11px; font-weight: 800; color: $muted; letter-spacing: .04em;
+    padding: 1px 7px; border-radius: 999px;
+    background: #f3f6fa; border: 1px solid $line;
+  }
+  .album-intro {
+    font-size: 12.5px; color: $body; line-height: 1.5;
+    margin: 0;
+    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; 
overflow: hidden;
+  }
+
+  // ── Tag term page hero ─────────────────────────────────────────────────
+  .bf-back {
+    display: inline-flex; align-items: center; gap: 4px;
+    color: $muted; font-size: 13px; font-weight: 600; text-decoration: none;
+    margin-bottom: 10px;
+    &:hover { color: $brand; }
+  }
+  .tag-hero-top {
+    display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
+  }
+  .tag-hero-chip {
+    font-size: 12px; padding: 4px 12px; line-height: 1.2;
+  }
+  .tag-hero-count {
+    font-size: 12px; font-weight: 700; color: $muted; letter-spacing: .04em;
+    text-transform: uppercase;
+  }
+
+  // ── Single-post right sidebar polish ────────────────────────────────────
+  // Blog detail page reuses .td-toc but lives under .td-blog. No left
+  // border — the vertical line made the natural prose-to-TOC gap look like
+  // an empty strip; without it the column reads cleanly.
+  .td-toc {
+    border-left: 0;
+    padding-left: 0;
+    font-size: 13px;
+    .td-toc-label {
+      font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: 
uppercase;
+      color: $muted; margin: 4px 0 10px;
+    }
+    .td-page-meta a {
+      display: inline-flex; align-items: center; gap: 6px;
+      color: $muted; font-weight: 600; font-size: 12.5px;
+      &:hover { color: $brand; }
+    }
+    #TableOfContents {
+      border-left: 0;
+      ul { padding-left: 0; list-style: none; margin: 0; }
+      li { line-height: 1.35; padding: 0; }
+      a {
+        display: block; position: relative;
+        padding: 5px 0 5px 12px; margin-left: -1px;
+        color: $muted; font-weight: 500;
+        border-left: 2px solid transparent;
+        transition: color .12s ease, border-color .12s ease;
+        &:hover { color: $ink; }
+        &.active { color: $brand; font-weight: 700; border-left-color: $brand; 
}
+      }
+      ul ul    a { padding-left: 24px; font-size: 12.5px; font-weight: 400; }
+      ul ul ul a { padding-left: 36px; }
+      ul ul ul ul a { padding-left: 48px; }
+    }
+    // Docsy injects an empty <div class="td-page-meta"> (edit-on-github
+    // etc.) above the TOC; the blog has nothing to put there so hide it,
+    // otherwise it leaves an awkward gap.
+    .td-page-meta { display: none; }
+  }
+  // Inline tag pills shown above the post body (replaces the theme's
+  // "Tags | …" link list). Same .blog-label pills as the /blog/ listing.
+  .post-tags-list {
+    display: flex; flex-wrap: wrap; gap: 6px;
+    .blog-label {
+      text-decoration: none;
+      transition: filter .12s ease, transform .12s ease;
+      &:hover { filter: brightness(.96); transform: translateY(-1px); }
+    }
+  }
+  .post-tags-list--inline {
+    margin: 4px 0 24px;
+  }
 }
 
-@media (max-width: 992px) { .td-blog .blog-grid { grid-template-columns: 1fr 
1fr; } }
+// Below 992px stack the sidebar above the post grid; topic cards become a
+// horizontal-scroll row so they don't dominate the viewport.
+@media (max-width: 992px) {
+  .td-blog .blog-layout { grid-template-columns: 1fr; gap: 24px; }
+  .td-blog .blog-sidebar { order: -1; }
+  .td-blog .blog-sidebar-inner { position: static; max-height: none; overflow: 
visible; }
+  .td-blog .album-grid {
+    display: flex; gap: 10px; overflow-x: auto;
+    padding-bottom: 6px; scroll-snap-type: x mandatory;
+  }
+  .td-blog .album-card { flex: 0 0 240px; scroll-snap-align: start; }
+  .td-blog .blog-grid { grid-template-columns: 1fr 1fr; }
+}
 @media (max-width: 600px) {
-  .td-blog {
-    .blog-grid { grid-template-columns: 1fr; }
-    .blog-hero { padding-top: calc(4rem + 18px); h1 { font-size: 30px; } }
-  }
+  .td-blog .blog-grid { grid-template-columns: 1fr; }
+  .td-blog .blog-hero { padding-top: calc(4rem + 18px); h1 { font-size: 30px; 
} }
 }
 
 // =====================================================================
diff --git a/content/blog/2018-05-24-skywalking-net/index.md 
b/content/blog/2018-05-24-skywalking-net/index.md
index 1e1f7d937dd..1c9928ffdd8 100755
--- a/content/blog/2018-05-24-skywalking-net/index.md
+++ b/content/blog/2018-05-24-skywalking-net/index.md
@@ -4,7 +4,7 @@ date: 2018-05-24
 author: Haoyang Liu, the major maintainer of SkyWalking .NET Core agent
 description: "SkyWalking .NET Core SDK is available."
 tags:
-- Agents
+  - Agents
 ---
 
 Translated by Sheng Wu.
diff --git a/content/blog/2018-12-12-skywalking-service-mesh-ready/index.md 
b/content/blog/2018-12-12-skywalking-service-mesh-ready/index.md
index 5cb61ec63d7..ae0efedd587 100644
--- a/content/blog/2018-12-12-skywalking-service-mesh-ready/index.md
+++ b/content/blog/2018-12-12-skywalking-service-mesh-ready/index.md
@@ -4,8 +4,8 @@ date: 2018-12-05
 author: Wu Sheng, tetrate
 description: "The integration of SkyWalking and Istio Service Mesh yields an 
essential open-source tool for resolving the chaos created by the proliferation 
of siloed, cloud-based services."
 tags:
-- Release
-- Cloud Native
+  - Release
+  - Cloud Native
 ---
 
 Original link, [Tetrate.io 
blog](https://www.tetrate.io/blog/apache-skywalking-v6/)
diff --git a/content/blog/2019-01-01-Understand-Trace/index.md 
b/content/blog/2019-01-01-Understand-Trace/index.md
index a3bb404279d..e81828666ee 100644
--- a/content/blog/2019-01-01-Understand-Trace/index.md
+++ b/content/blog/2019-01-01-Understand-Trace/index.md
@@ -4,7 +4,7 @@ date: 2019-01-01
 author: Wu Sheng(Tetrate)
 description: "Distributed tracing is a necessary part of modern microservices 
architecture, but how to understand or use distributed tracing data is unclear 
to some end users. This blog overviews typical distributed tracing use cases 
with new visualization features in SkyWalking v6."
 tags:
-- Tracing
+  - Tracing
 ---
 
 ## Background
diff --git a/content/blog/2019-01-25-mesh-loadtest/index.md 
b/content/blog/2019-01-25-mesh-loadtest/index.md
index 1dc9abf68cf..2afb0b318ca 100644
--- a/content/blog/2019-01-25-mesh-loadtest/index.md
+++ b/content/blog/2019-01-25-mesh-loadtest/index.md
@@ -4,8 +4,8 @@ date: 2019-01-25
 author: Hongtao Gao(Tetrate)
 description: "Service mesh receiver performance test on Google Kubernetes 
Engine."
 tags:
-- Profiling
-- Engineering
+  - Profiling
+  - Engineering
 ---
 
 - Author: Hongtao Gao, Apache SkyWalking & ShardingShpere PMC
diff --git a/content/blog/2019-09-25-alarm-webhook-share/index.md 
b/content/blog/2019-09-25-alarm-webhook-share/index.md
index 5c939fcb833..c6a56413c04 100644
--- a/content/blog/2019-09-25-alarm-webhook-share/index.md
+++ b/content/blog/2019-09-25-alarm-webhook-share/index.md
@@ -4,7 +4,7 @@ date: 2019-09-25
 author: Wei Qiang
 description: " Alerts via SkyWalking alarm webhook for better perception of 
tracing."
 tags:
-- Engineering
+  - Engineering
 ---
 
 - Author: Wei Qiang
diff --git a/content/blog/2020-01-20-celebrate-200th-contributor/index.md 
b/content/blog/2020-01-20-celebrate-200th-contributor/index.md
index b51af5f6a71..c78ffbefad2 100644
--- a/content/blog/2020-01-20-celebrate-200th-contributor/index.md
+++ b/content/blog/2020-01-20-celebrate-200th-contributor/index.md
@@ -4,7 +4,7 @@ date: 2020-01-20
 author: Sheng Wu(Tetrate)
 description: " SkyWalking community joins the 200+ contributors open source 
club."
 tags:
-- Community
+  - Community
 ---
 
 - Author: Wu Sheng, tetrate.io, SkyWalking original creator, SkyWalking V.P.
diff --git a/content/blog/2020-04-13-apache-skywalking-profiling/index.md 
b/content/blog/2020-04-13-apache-skywalking-profiling/index.md
index e781abdd8c2..f942fadddf8 100644
--- a/content/blog/2020-04-13-apache-skywalking-profiling/index.md
+++ b/content/blog/2020-04-13-apache-skywalking-profiling/index.md
@@ -4,9 +4,9 @@ date: 2020-04-13
 author: "Sheng Wu, Adrian Cole and Han Liu"
 description: "This post introduces a way to automatically profile code in 
production with Apache SkyWalking. We believe the profile method helps reduce 
maintenance and overhead while increasing the precision in root cause analysis."
 tags:
-- Profiling
-- Agents
-- Tracing
+  - Profiling
+  - Agents
+  - Tracing
 ---
 
 *This post originally appears on [The New 
Stack](https://thenewstack.io/apache-skywalking-use-profiling-to-fix-the-blind-spot-of-distributed-tracing/)*
diff --git a/content/blog/2020-07-26-apdex-and-skywalking/index.md 
b/content/blog/2020-07-26-apdex-and-skywalking/index.md
index 083cfd17297..8693dfcc790 100644
--- a/content/blog/2020-07-26-apdex-and-skywalking/index.md
+++ b/content/blog/2020-07-26-apdex-and-skywalking/index.md
@@ -4,7 +4,7 @@ date: 2020-07-26
 author: Srinivasan Ramaswamy(Tetrate)
 description: " In managing Service Mesh Health, Asking `How are you' is more 
profound than `What are your symptoms'. Apdex goes a long way in helping this."
 tags:
-- Cloud Native
+  - Cloud Native
 ---
 
 - Author: Srinivasan Ramaswamy, tetrate
diff --git a/content/blog/2020-08-03-skywalking8-1-release/index.md 
b/content/blog/2020-08-03-skywalking8-1-release/index.md
index 1bb3df636d3..bcbd4c65bbc 100644
--- a/content/blog/2020-08-03-skywalking8-1-release/index.md
+++ b/content/blog/2020-08-03-skywalking8-1-release/index.md
@@ -4,8 +4,8 @@ date: 2020-08-03
 author: Srinivasan Ramaswamy(Tetrate)
 description: " SpringSleuth metrics, endpoint dependency detection, Kafka 
transport traces and metrics."
 tags:
-- Release
-- Agents
+  - Release
+  - Agents
 ---
 
 - Author: Sheng Wu, Hongtao Gao, and Tevah Platt(Tetrate)
diff --git a/content/blog/2020-08-11-observability-at-scale/index.md 
b/content/blog/2020-08-11-observability-at-scale/index.md
index d954debb97a..279bd2fef63 100644
--- a/content/blog/2020-08-11-observability-at-scale/index.md
+++ b/content/blog/2020-08-11-observability-at-scale/index.md
@@ -4,7 +4,7 @@ date: 2020-08-11
 author: Sheng Wu(Tetrate)
 description: " SkyWalking evolved to address the problem of observability at 
scale, and grew from a pure tracing system to a feature-rich observability 
platform that is now used to analyze deployments that collect tens of billions 
of traces per day. "
 tags:
-- Community
+  - Community
 ---
 
 - Author: Sheng Wu
diff --git a/content/blog/2020-10-29-skywalking8-2-release/index.md 
b/content/blog/2020-10-29-skywalking8-2-release/index.md
index 32dc31df01a..adbb5c5797a 100644
--- a/content/blog/2020-10-29-skywalking8-2-release/index.md
+++ b/content/blog/2020-10-29-skywalking8-2-release/index.md
@@ -4,8 +4,8 @@ date: 2020-10-29
 author: Zhenxu Ke, Sheng Wu, Hongtao Gao, and Tevah Platt. tetrate.io
 description: "Browser Side Monitoring; Query Traces by Tags; Meter Analysis 
Language; Composite Alert Rules"
 tags:
-- Release
-- Agents
+  - Release
+  - Agents
 ---
 
 ![](0081Kckwly1gkl5m6kv3uj31lb0u0jum.jpg)
diff --git a/content/blog/2020-11-21-apachecon-keynote/index.md 
b/content/blog/2020-11-21-apachecon-keynote/index.md
index 7f169fe100e..7a3b7521e45 100644
--- a/content/blog/2020-11-21-apachecon-keynote/index.md
+++ b/content/blog/2020-11-21-apachecon-keynote/index.md
@@ -4,7 +4,7 @@ date: 2020-11-20
 author: Sheng Wu, Founding Engineer, Tetrate.io
 description: "ApacheCon@Home 2020 Keynote, the progress about China embracing 
the Apache culture, and willing of enhancing the whole Apache community."
 tags:
-- Community
+  - Community
 ---
 
 Sheng Wu is a founding engineer at tetrate.io, leads the observability for 
service mesh and hybrid cloud. A searcher, evangelist, and developer in the 
observability, distributed tracing, and APM. He is a member of the Apache 
Software Foundation. Love open source software and culture. Created the Apache 
SkyWalking project and being its VP and PMC member. Co-founder and PMC member 
of Apache ShardingSphere. Also as a PMC member of Apache Incubator and APISIX. 
He is awarded as Microsoft MVP, [...]
diff --git a/content/blog/2020-11-21-apachecon-obs-apisix/index.md 
b/content/blog/2020-11-21-apachecon-obs-apisix/index.md
index dad23aaa087..6ef35cfc54e 100644
--- a/content/blog/2020-11-21-apachecon-obs-apisix/index.md
+++ b/content/blog/2020-11-21-apachecon-obs-apisix/index.md
@@ -4,7 +4,7 @@ date: 2020-11-21
 author: Yuansheng Wang. Apache APISIX PMC member.
 description: "ApacheCon@Home 2020 Observability Track"
 tags:
-- Community
+  - Community
 ---
 
 Apache APISIX is a cloud-native microservices API gateway, delivering the 
ultimate performance, security, open-source and scalable platform for all your 
APIs and microservices. Apache SkyWalking: an APM(application performance 
monitor) system, especially designed for microservices, cloud-native and 
container-based (Docker, Kubernetes, Mesos) architectures. Through the powerful 
plug-in mechanism of Apache APISIX, Apache Skywalking is quickly supported, so 
that we can see the complete life [...]
diff --git a/content/blog/2020-11-21-apachecon-obs-shardingsphere/index.md 
b/content/blog/2020-11-21-apachecon-obs-shardingsphere/index.md
index 503d7f53414..6bc91065ce3 100644
--- a/content/blog/2020-11-21-apachecon-obs-shardingsphere/index.md
+++ b/content/blog/2020-11-21-apachecon-obs-shardingsphere/index.md
@@ -4,7 +4,7 @@ date: 2020-11-21
 author: Juan Pan. Apache ShardingSphere PMC member.
 description: "ApacheCon@Home 2020 Observability Track"
 tags:
-- Community
+  - Community
 ---
 
 The APM system provides the tracing or metrics for distributed systems or 
microservice architectures. Back to APM themselves, they always need backend 
storage to store the necessary massive data. What are the features required for 
backend storage? Simple, fewer dependencies, widely used query language, and 
the efficiency could be into your consideration. Based on that, traditional SQL 
databases (like MySQL) or NoSQL databases would be better choices. However, 
this topic will present anot [...]
diff --git a/content/blog/2020-11-21-apachecon-obs-sourcemarker/index.md 
b/content/blog/2020-11-21-apachecon-obs-sourcemarker/index.md
index 9127ebf1859..45ec15740e5 100644
--- a/content/blog/2020-11-21-apachecon-obs-sourcemarker/index.md
+++ b/content/blog/2020-11-21-apachecon-obs-sourcemarker/index.md
@@ -4,7 +4,7 @@ date: 2020-11-21
 author: Brandon Fergerson. Apache SkyWalking committer.
 description: "ApacheCon@Home 2020 Observability Track"
 tags:
-- Community
+  - Community
 ---
 
 Today's monitoring solutions are geared towards operational tasks, displaying 
behavior as time-series graphs inside dashboards and other abstractions. These 
abstractions are immensely useful but are largely designed for software 
operators, whose responsibilities require them to think in systems, rather than 
the underlying source code. This is problematic given that an ongoing trend of 
software development is the blurring boundaries between building and operating 
software. This trend make [...]
diff --git a/content/blog/2020-11-21-apachecon-obs-storage/index.md 
b/content/blog/2020-11-21-apachecon-obs-storage/index.md
index 8abc6458950..c97e8a347bc 100644
--- a/content/blog/2020-11-21-apachecon-obs-storage/index.md
+++ b/content/blog/2020-11-21-apachecon-obs-storage/index.md
@@ -4,7 +4,7 @@ date: 2020-11-21
 author: Hongtao Gao. Apache SkyWalking PMC member. Tetrate.io
 description: "ApacheCon@Home 2020 Observability Track"
 tags:
-- Community
+  - Community
 ---
 
 Over the past few years, and coupled with the growing adoption of 
microservices, distributed tracing has emerged as one of the most commonly used 
monitoring and troubleshooting methodologies. New tracing tools are 
increasingly being introduced, driving adoption even further. One of these 
tools is Apache SkyWalking, a popular open-source tracing, and APM platform. 
This talk explores the history of the SkyWalking storage module, shows the 
evolution of distributed tracing storage layers, fr [...]
diff --git a/content/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.md 
b/content/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.md
index 54c4eb95389..6f88fd64bc6 100644
--- a/content/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.md
+++ b/content/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.md
@@ -4,8 +4,8 @@ date: 2020-11-25
 author: Jiapeng Liu. Apache SkyWalking Committer.
 description: "The design of Satellite 0.1.0.  The structure of the project 
would follow this design."
 tags:
-- Agents
-- Engineering
+  - Agents
+  - Engineering
 ---
 
 
diff --git a/content/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.md 
b/content/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.md
index 454d54ba621..ec5113b6d76 100644
--- a/content/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.md
+++ b/content/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.md
@@ -4,7 +4,7 @@ date: 2020-12-03
 author: Zhenxu Ke, Sheng Wu, and Tevah Platt. tetrate.io
 description: In this tutorial, learn how to use Apache SkyWalking for service 
mesh observability without Istio Mixer
 tags:
-- Cloud Native
+  - Cloud Native
 ---
 
 ![](canyonhorseshoe.jpg)
diff --git a/content/blog/2021-01-01-300-contributors-mark/index.md 
b/content/blog/2021-01-01-300-contributors-mark/index.md
index 99f463c5484..1c54a4991a6 100644
--- a/content/blog/2021-01-01-300-contributors-mark/index.md
+++ b/content/blog/2021-01-01-300-contributors-mark/index.md
@@ -4,7 +4,7 @@ date: 2020-12-22
 author: Sheng Wu, Tetrate.io, Apache SkyWalking Creator. 
[GitHub](https://github.com/wu-sheng) 
[Twitter](https://twitter.com/wusheng1108) 
[Linkedin](https://www.linkedin.com/in/wusheng1108)
 description: "SkyWalking hits 300 contributors mark at one single repository"
 tags:
-- Community
+  - Community
 ---
 
 Apache SkyWalking is an open source APM for distributed system. Provide 
tracing, service mesh observability, metrics analysis, alarm and visualization.
diff --git a/content/blog/2021-01-17-elastic-change-license/index.md 
b/content/blog/2021-01-17-elastic-change-license/index.md
index 0fbb886e033..120158ef398 100644
--- a/content/blog/2021-01-17-elastic-change-license/index.md
+++ b/content/blog/2021-01-17-elastic-change-license/index.md
@@ -4,7 +4,7 @@ date: 2021-01-17
 author: Sheng Wu, Tetrate.io, Apache SkyWalking Creator. 
[GitHub](https://github.com/wu-sheng) 
[Twitter](https://twitter.com/wusheng1108) 
[Linkedin](https://www.linkedin.com/in/wusheng1108)
 description: "Elastic Search server doesn't release under Apache 2.0 anymore. 
What is the impact to the SkyWalking project?"
 tags:
-- Community
+  - Community
 ---
 
 [Elastic](https://elastic.co) announced their license change, [**Upcoming 
licensing changes to Elasticsearch and 
Kibana**.](https://www.elastic.co/blog/licensing-change)
diff --git a/content/blog/2021-01-23-tencent-cloud-violates-aplv2/index.md 
b/content/blog/2021-01-23-tencent-cloud-violates-aplv2/index.md
index 743b2623b8d..646b5c27d28 100644
--- a/content/blog/2021-01-23-tencent-cloud-violates-aplv2/index.md
+++ b/content/blog/2021-01-23-tencent-cloud-violates-aplv2/index.md
@@ -4,7 +4,7 @@ date: 2021-01-22
 author: Apache SkyWalking
 description: "Tencent Cloud Service, Tencent Service Watcher - TSW, have been 
reported as it violates Apache 2.0 License requirements."
 tags:
-- Community
+  - Community
 ---
 
 [Apache SkyWalking](https://skywalking.apache.org) is an open source APM for 
distributed system, Apache Software Foundation top-level project.
diff --git a/content/blog/2021-02-01-e2e-verifier-design/index.md 
b/content/blog/2021-02-01-e2e-verifier-design/index.md
index 5ff9e62fbf0..e7631221392 100644
--- a/content/blog/2021-02-01-e2e-verifier-design/index.md
+++ b/content/blog/2021-02-01-e2e-verifier-design/index.md
@@ -4,7 +4,7 @@ date: 2021-02-01
 author: "[Zhenxu Ke](https://github.com/kezhenxu94), Tetrate.io; [Huaxi 
Jiang](http://github.com/fgksgf), Committer; [Ke 
Zhang](http://github.com/HumbertZhang), Committer"
 description: "The design of Next Generation End-to-End Testing Framework  
Verifier"
 tags:
-- Engineering
+  - Engineering
 ---
 
 ## Background
diff --git a/content/blog/2021-02-07-infrastructure-monitoring/index.md 
b/content/blog/2021-02-07-infrastructure-monitoring/index.md
index 0c377abe058..3b204e9f9a8 100644
--- a/content/blog/2021-02-07-infrastructure-monitoring/index.md
+++ b/content/blog/2021-02-07-infrastructure-monitoring/index.md
@@ -4,7 +4,7 @@ date: 2021-02-08
 author: Kai Wan, Sheng Wu. tetrate.io
 description: In this tutorial, learn how to use Apache SkyWalking for 
infrastructure monitoring 
 tags:
-- Metrics
+  - Metrics
 ---
 
 ![](apache-skywalking.jpeg)
diff --git a/content/blog/2021-02-09-skywalking-trace-threadpool/index.md 
b/content/blog/2021-02-09-skywalking-trace-threadpool/index.md
index 17d6fe802ee..439a8f0cd16 100644
--- a/content/blog/2021-02-09-skywalking-trace-threadpool/index.md
+++ b/content/blog/2021-02-09-skywalking-trace-threadpool/index.md
@@ -5,8 +5,8 @@ author: "Binglong Li"
 description: "This post introduces how to propagate context between threads 
when using ThreadPoolExecutor, 
 which SkyWalking agent should not enhance"
 tags:
-- Agents
-- Tracing
+  - Agents
+  - Tracing
 ---
 
 When using SkyWalking java agent, people usually propagate context easily. 
They even do not need to change the business 
diff --git a/content/blog/2021-03-16-continuous-feedback/index.md 
b/content/blog/2021-03-16-continuous-feedback/index.md
index 3df04b751cc..8644fa2b536 100644
--- a/content/blog/2021-03-16-continuous-feedback/index.md
+++ b/content/blog/2021-03-16-continuous-feedback/index.md
@@ -4,9 +4,9 @@ date: 2021-03-16
 author: "Brandon Fergerson"
 description: "The JetBrains plugin providing continuous feedback capabilities 
via Apache SkyWalking."
 tags:
-- Tracing
-- Logging
-- Engineering
+  - Tracing
+  - Logging
+  - Engineering
 ---
 
 ![Alt Text](SM_IDE-APM.gif)
diff --git a/content/blog/2021-05-09-OpenSearch-supported/index.md 
b/content/blog/2021-05-09-OpenSearch-supported/index.md
index 1879ca8d3c8..ce99906d2d3 100644
--- a/content/blog/2021-05-09-OpenSearch-supported/index.md
+++ b/content/blog/2021-05-09-OpenSearch-supported/index.md
@@ -4,7 +4,7 @@ date: 2021-05-09
 author: Sheng Wu, Tetrate.io, Apache SkyWalking Creator. 
[GitHub](https://github.com/wu-sheng) 
[Twitter](https://twitter.com/wusheng1108) 
[Linkedin](https://www.linkedin.com/in/wusheng1108)
 description: "Elasticsearch server doesn't release under Apache 2.0 anymore. 
But we have another open option in OpenSearch project."
 tags:
-- Community
+  - Community
 ---
 
 We posted our [**Response to Elastic 2021 License 
Change**](/blog/2021-01-17-elastic-change-license/) blog 4 months ago. It 
doesn't have a big impact in 
diff --git a/content/blog/2021-07-12-500-contributors-mark/index.md 
b/content/blog/2021-07-12-500-contributors-mark/index.md
index 3d9f3d2fc5a..cc840da2d90 100644
--- a/content/blog/2021-07-12-500-contributors-mark/index.md
+++ b/content/blog/2021-07-12-500-contributors-mark/index.md
@@ -7,7 +7,7 @@ startTime: 2021-07-01T00:00:00Z
 endTime: 2021-08-01T10:00:00Z
 poster: /images/500-mark.png
 tags:
-- Community
+  - Community
 ---
 
 ![](500-mark.png)
diff --git a/content/blog/2021-08-01-skywalking-8-intro/index.md 
b/content/blog/2021-08-01-skywalking-8-intro/index.md
index f70ef475ec6..c0b48b83a71 100644
--- a/content/blog/2021-08-01-skywalking-8-intro/index.md
+++ b/content/blog/2021-08-01-skywalking-8-intro/index.md
@@ -4,7 +4,7 @@ date: 2021-08-04
 author: Sheng Wu, Tetrate.io, Apache SkyWalking Creator. 
[GitHub](https://github.com/wu-sheng) 
[Twitter](https://twitter.com/wusheng1108) 
[Linkedin](https://www.linkedin.com/in/wusheng1108)
 description: "Introduce the concepts of Apache SkyWalking, why we built it, 
and how we build it."
 tags:
-- Community
+  - Community
 ---
 
 [GOUP](https://www.linkedin.com/company/goupaz/) hosted a webinar, and invited 
[Sheng Wu](https://twitter.com/wusheng1108) to introduce
diff --git a/content/blog/2021-09-12-skywalking-python-profiling/index.md 
b/content/blog/2021-09-12-skywalking-python-profiling/index.md
index ab1aa3a8159..e712dee97a4 100644
--- a/content/blog/2021-09-12-skywalking-python-profiling/index.md
+++ b/content/blog/2021-09-12-skywalking-python-profiling/index.md
@@ -4,8 +4,8 @@ date: "2021-09-12"
 author: "[Ke Zhang](http://github.com/HumbertZhang), Committer; [Sheng 
Wu](https://github.com/wu-sheng), Tetrate.io, Apache SkyWalking Creator; 
[Zhenxu Ke](https://github.com/kezhenxu94), Tetrate.io."
 description: "This post introduces how to use profiling in SkyWalking Python 
Agent and the mechanism of profiling."
 tags:
-- Profiling
-- Agents
+  - Profiling
+  - Agents
 ---
 
 The Java Agent of Apache SkyWalking has supported profiling since 
[v7.0.0](https://github.com/apache/skywalking/releases/tag/v7.0.0), and it 
enables users to troubleshoot the root cause of performance issues, and now we 
bring it into Python Agent.
diff --git a/content/blog/2021-11-23-design-of-iotdb-storage-option/index.md 
b/content/blog/2021-11-23-design-of-iotdb-storage-option/index.md
index d8960f7c0f4..5750c9be935 100644
--- a/content/blog/2021-11-23-design-of-iotdb-storage-option/index.md
+++ b/content/blog/2021-11-23-design-of-iotdb-storage-option/index.md
@@ -4,7 +4,7 @@ date: "2021-11-23"
 author: "[Wei Liu](https://github.com/LIU-WEI-git), School of Computer 
Science, NPU, China"
 description: "This is an introduction to IoTDB Storage Option. It introduces 
some basic concept about IoTDB and the storage schema design."
 tags:
-- Storage
+  - Storage
 ---
 
 This plugin is one of the outcomes of [Apache IoTDB - Apache SkyWalking 
Adapter](https://summer.iscas.ac.cn/#/org/prodetail/210070771) in [Summer 2021 
of Open Source Promotion Plan](https://summer.iscas.ac.cn/#/homepage). The 
design and development work is under the guidance of 
[@jixuan1989](https://github.com/jixuan1989) from IoTDB and 
[@wu-sheng](https://github.com/wu-sheng) from SkyWalking. Thanks for their 
guidance and the help from community.
diff --git a/content/blog/2021-12-06-extend-skywalking-with-nbb/index.md 
b/content/blog/2021-12-06-extend-skywalking-with-nbb/index.md
index dc11cdd10ac..12897c69413 100644
--- a/content/blog/2021-12-06-extend-skywalking-with-nbb/index.md
+++ b/content/blog/2021-12-06-extend-skywalking-with-nbb/index.md
@@ -4,7 +4,7 @@ author: "Brandon Fergerson"
 date: 2021-12-06
 description: "SkyWalking is designed for easy customization, and with the 
latest release of Source++, it is now easier than ever to add non-breaking 
breakpoints to existing SkyWalking installations."
 tags:
-- Community
+  - Community
 ---
 
 Non-breaking breakpoints are breakpoints specifically designed for live 
production environments. With non-breaking breakpoints, reproducing production 
bugs locally or in staging is conveniently replaced with capturing them 
directly in production.
diff --git 
a/content/blog/2021-12-08-application-guide-of-iotdb-storage-option/index.md 
b/content/blog/2021-12-08-application-guide-of-iotdb-storage-option/index.md
index ee73ea8ef30..a9fba7fa050 100644
--- a/content/blog/2021-12-08-application-guide-of-iotdb-storage-option/index.md
+++ b/content/blog/2021-12-08-application-guide-of-iotdb-storage-option/index.md
@@ -4,7 +4,7 @@ date: "2021-12-08"
 author: "[Wei Liu](https://github.com/LIU-WEI-git), School of Computer 
Science, NPU, China"
 description: "This guide will tell you how to use SkyWalking Showcase to run 
demo applications or start manually step by step. In addition, it introduces 
some methods about visiting IoTDB server and gives some query SQLs as example."
 tags:
-- Storage
+  - Storage
 ---
 
 This document is one of the outcomes of [Apache IoTDB - Apache SkyWalking 
Adapter](https://summer.iscas.ac.cn/#/org/prodetail/210070771) in [Summer 2021 
of Open Source Promotion Plan](https://summer.iscas.ac.cn/#/homepage). The 
design and development work is under the guidance of 
[@jixuan1989](https://github.com/jixuan1989) from IoTDB and 
[@wu-sheng](https://github.com/wu-sheng) from SkyWalking. Thanks for their 
guidance and the help from community.
diff --git 
a/content/blog/2021-12-13-skywalking-nginx-agent-integration/index.md 
b/content/blog/2021-12-13-skywalking-nginx-agent-integration/index.md
index 070e2873d98..b491a58e849 100644
--- a/content/blog/2021-12-13-skywalking-nginx-agent-integration/index.md
+++ b/content/blog/2021-12-13-skywalking-nginx-agent-integration/index.md
@@ -4,7 +4,7 @@ date: 2021-12-13
 author: shiyan.xiong, the user of skywalking
 description: "provide a path to integrate skywalking-nginx-lua to nginx and 
avoid you falling pit"
 tags:
-- Agents
+  - Agents
 ---
 
 
diff --git 
a/content/blog/2021-12-21-better-observability-for-chaos-engineering/index.md 
b/content/blog/2021-12-21-better-observability-for-chaos-engineering/index.md
index 636b4e16761..18c1f48e19b 100644
--- 
a/content/blog/2021-12-21-better-observability-for-chaos-engineering/index.md
+++ 
b/content/blog/2021-12-21-better-observability-for-chaos-engineering/index.md
@@ -3,7 +3,7 @@ title: 'Chaos Mesh + SkyWalking: Better Observability for Chaos 
Engineering'
 date: 2021-12-21
 author: Ningxuan Wang
 tags:
-- Cloud Native
+  - Cloud Native
 ---
 
 ![Chaos Mesh + SkyWalking: Better Observability for Chaos 
Engineering](chaos-mesh-skywalking-banner.png)
diff --git a/content/blog/2022-01-24-scaling-with-apache-skywalking/index.md 
b/content/blog/2022-01-24-scaling-with-apache-skywalking/index.md
index 36bf6871817..671f73505c5 100644
--- a/content/blog/2022-01-24-scaling-with-apache-skywalking/index.md
+++ b/content/blog/2022-01-24-scaling-with-apache-skywalking/index.md
@@ -4,7 +4,7 @@ date: 2022-01-24
 author: Han Liu, Sheng Wu
 description: "Introduce how to load balance the traffic between SkyWalking 
backend and agent through SkyWalking Satellite"
 tags:
-- Profiling
+  - Profiling
 ---
 
 ## Background
diff --git a/content/blog/2022-01-28-volcengine-violates-aplv2/index.md 
b/content/blog/2022-01-28-volcengine-violates-aplv2/index.md
index a58205e5b12..c5951e86c39 100644
--- a/content/blog/2022-01-28-volcengine-violates-aplv2/index.md
+++ b/content/blog/2022-01-28-volcengine-violates-aplv2/index.md
@@ -4,7 +4,7 @@ date: 2022-01-28
 author: Apache SkyWalking
 description: "Volcengine Inc.(火山引擎) Application Performance Monitoring - 
Distributed Tracing (应用性能监控全链路版) redistributed Apache SkyWalking illegally. 
They don't follow the Apache 2.0 License requirements"
 tags:
-- Community
+  - Community
 ---
 
 [Apache SkyWalking](https://skywalking.apache.org) is an open-source APM for a 
distributed system, Apache Software Foundation top-level project.
diff --git 
a/content/blog/2022-04-14-integrating-skywalking-with-source-code/index.md 
b/content/blog/2022-04-14-integrating-skywalking-with-source-code/index.md
index 6eeea2dacff..cb5c11e3a9f 100644
--- a/content/blog/2022-04-14-integrating-skywalking-with-source-code/index.md
+++ b/content/blog/2022-04-14-integrating-skywalking-with-source-code/index.md
@@ -4,7 +4,7 @@ author: "Brandon Fergerson"
 date: 2022-04-14
 description: "In this article, we will introduce a new concept in Source++, 
the open-source live-coding platform, specifically designed to allow developers 
to monitor production applications more intuitively."
 tags:
-- Community
+  - Community
 ---
 
 ## Introduction
diff --git 
a/content/blog/2022-04-19-How-to-use-the-java-agent-injector/index.md 
b/content/blog/2022-04-19-How-to-use-the-java-agent-injector/index.md
index fbd311585de..213cf17dc05 100644
--- a/content/blog/2022-04-19-How-to-use-the-java-agent-injector/index.md
+++ b/content/blog/2022-04-19-How-to-use-the-java-agent-injector/index.md
@@ -4,7 +4,7 @@ date: 2022-04-19
 author: "[Ye Cao](https://github.com/dashanji), Apache SkyWalking Committer; 
[Hongtao Gao](https://github.com/hanahmily), Apache SkyWalking PMC member, 
Tetrate.io."
 description: "Introduce how to quickly get started the java agent injector 
based on SWCK"
 tags:
-- Engineering
+  - Engineering
 ---
 
 ### content:
diff --git 
a/content/blog/2022-05-08-Apache-ShenYu(incubating)-Integrated-Skywalking-Practice-Observability/index.md
 
b/content/blog/2022-05-08-Apache-ShenYu(incubating)-Integrated-Skywalking-Practice-Observability/index.md
index 7a594887022..199a16ac42b 100644
--- 
a/content/blog/2022-05-08-Apache-ShenYu(incubating)-Integrated-Skywalking-Practice-Observability/index.md
+++ 
b/content/blog/2022-05-08-Apache-ShenYu(incubating)-Integrated-Skywalking-Practice-Observability/index.md
@@ -4,9 +4,9 @@ date: 2022-05-08
 author: hutaishi
 description: This article introduces the principle of ShenYu(incubating) 
plugin implementation and the observability practice of ShenYu(incubating) 
gateway
 tags:
-- Agents
-- Tracing
-- Metrics
+  - Agents
+  - Tracing
+  - Metrics
 ---
 
 ### Content
diff --git 
a/content/blog/2022-07-05-pinpoint-service-mesh-critical-performance-impact-by-using-ebpf/index.md
 
b/content/blog/2022-07-05-pinpoint-service-mesh-critical-performance-impact-by-using-ebpf/index.md
index de44e121523..c43d5e0b4af 100644
--- 
a/content/blog/2022-07-05-pinpoint-service-mesh-critical-performance-impact-by-using-ebpf/index.md
+++ 
b/content/blog/2022-07-05-pinpoint-service-mesh-critical-performance-impact-by-using-ebpf/index.md
@@ -4,8 +4,8 @@ date: 2022-07-05
 author: Han Liu, Sheng Wu
 description: Introducing performance analysis in production with SkyWalking 
Rover
 tags:
-- Profiling
-- Cloud Native
+  - Profiling
+  - Cloud Native
 ---
 
 ### Content
diff --git 
a/content/blog/2022-08-11-kongcast-20-distributed-tracing-using-skywalking-kong/index.md
 
b/content/blog/2022-08-11-kongcast-20-distributed-tracing-using-skywalking-kong/index.md
index 4fd03928a93..740be546516 100644
--- 
a/content/blog/2022-08-11-kongcast-20-distributed-tracing-using-skywalking-kong/index.md
+++ 
b/content/blog/2022-08-11-kongcast-20-distributed-tracing-using-skywalking-kong/index.md
@@ -4,9 +4,9 @@ date: 2022-08-11
 author: Andrew Kew. QuadCorps Founder [GitHub](https://github.com/andrewgkew) 
[Linkedin](https://www.linkedin.com/in/andrewgkew) 
[Website](https://quadcorps.co.uk)
 description: Kongcast Episode 20 - Distributed Tracing on Kubernetes
 tags:
-- Agents
-- Engineering
-- Community
+  - Agents
+  - Engineering
+  - Community
 ---
 
 Observability essential when working with distributed systems. Built on 3 
pillars of metrics, logging and 
diff --git 
a/content/blog/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md 
b/content/blog/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md
index a7d931ac989..2a3862b7d2d 100644
--- 
a/content/blog/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md
+++ 
b/content/blog/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md
@@ -4,9 +4,9 @@ date: 2022-12-13
 author: "[Zhenxu Ke](https://github.com/kezhenxu94)"
 description: "Introduce how to quickly set up Apache SkyWalking on AWS EKS and 
RDS/Aurora"
 tags:
-- Cloud Native
-- Storage
-- Engineering
+  - Cloud Native
+  - Storage
+  - Engineering
 ---
 
 ## Introduction
diff --git a/content/blog/2023-01-03-aliyun-copy-page/index.md 
b/content/blog/2023-01-03-aliyun-copy-page/index.md
index 2c08f2f5a3f..c2ca1029e5d 100644
--- a/content/blog/2023-01-03-aliyun-copy-page/index.md
+++ b/content/blog/2023-01-03-aliyun-copy-page/index.md
@@ -4,7 +4,7 @@ date: 2023-01-03
 author: Apache SkyWalking
 description: "Aliyun's trace analysis service copied SkyWalking's UI design 
but declares it as their codes, rather than a fork."
 tags:
-- Community
+  - Community
 ---
 
 [Apache SkyWalking](https://skywalking.apache.org) is an open-source APM for a 
distributed system, Apache Software Foundation top-level project.
diff --git a/content/blog/2023-03-12-skywalking-aws-s3-eks/index.md 
b/content/blog/2023-03-12-skywalking-aws-s3-eks/index.md
index 14f837ffb57..db87b364055 100644
--- a/content/blog/2023-03-12-skywalking-aws-s3-eks/index.md
+++ b/content/blog/2023-03-12-skywalking-aws-s3-eks/index.md
@@ -4,7 +4,7 @@ date: 2023-03-12
 author: Puguang Yang
 description: This article shows how to use SkyWalking to monitor EKS and S3.
 tags:
-- Community
+  - Community
 ---
 
 ![icon.png](./icon.png)
diff --git a/content/blog/2023-03-13-skywalking-aws-dynamodb/index.md 
b/content/blog/2023-03-13-skywalking-aws-dynamodb/index.md
index db774f42818..a54b5e9f695 100644
--- a/content/blog/2023-03-13-skywalking-aws-dynamodb/index.md
+++ b/content/blog/2023-03-13-skywalking-aws-dynamodb/index.md
@@ -4,7 +4,7 @@ date: 2023-03-13
 author: Yueqin Zhang
 description: This article shows how to use SkyWalking to monitor DynamoDB.
 tags:
-- Community
+  - Community
 ---
 
 
diff --git 
a/content/blog/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
 
b/content/blog/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
index 2a0d5e971ae..14a974e8a41 100644
--- 
a/content/blog/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
+++ 
b/content/blog/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
@@ -4,7 +4,7 @@ date: 2023-03-16
 author: "Kai Wan"
 description: "Introduce what is PromQL Service in SkyWalking and how to use it 
to build Grafana dashboards."
 tags:
-- Metrics
+  - Metrics
 ---
 
 ## Background
diff --git 
a/content/blog/2023-06-01-quick-start-with-skywalking-go-agent/index.md 
b/content/blog/2023-06-01-quick-start-with-skywalking-go-agent/index.md
index 43532295d36..bbf498af239 100644
--- a/content/blog/2023-06-01-quick-start-with-skywalking-go-agent/index.md
+++ b/content/blog/2023-06-01-quick-start-with-skywalking-go-agent/index.md
@@ -4,8 +4,8 @@ date: 2023-06-01
 author: "Han Liu"
 description: "Demonstrates how to integrate your application with SkyWalking 
Go and view the results in the SkyWalking UI."
 tags:
-- Agents
-- Tracing
+  - Agents
+  - Tracing
 ---
 
 # Background
diff --git a/content/blog/2023-06-13-celebrate-22k-stars/index.md 
b/content/blog/2023-06-13-celebrate-22k-stars/index.md
index 418cb5792e7..2297e3fd59c 100644
--- a/content/blog/2023-06-13-celebrate-22k-stars/index.md
+++ b/content/blog/2023-06-13-celebrate-22k-stars/index.md
@@ -7,7 +7,7 @@ startTime: 2023-06-13T00:00:00Z
 endTime: 2023-06-30T10:00:00Z
 poster: /blog/2023-06-13-celebrate-22k-stars/skywalking-22k-post.gif
 tags:
-- Community
+  - Community
 ---
 
 # Celebrating 22k Stars!
diff --git 
a/content/blog/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
 
b/content/blog/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
index 5f0f0e1b1be..a2dc737de55 100644
--- 
a/content/blog/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
+++ 
b/content/blog/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
@@ -4,8 +4,8 @@ date: 2023-06-25
 author: "Han Liu"
 description: "Introduce and demonstrate how SkyWalking implements eBPF-based 
process monitoring with few manual engagements. The profiling could be 
automatically activated driven by the preset conditions."
 tags:
-- Profiling
-- Tracing
+  - Profiling
+  - Tracing
 ---
 
 # Background
diff --git a/content/blog/2023-07-31-skywalking-go-0.2.0-release/index.md 
b/content/blog/2023-07-31-skywalking-go-0.2.0-release/index.md
index 81f6aef6102..8bc1d948eaf 100644
--- a/content/blog/2023-07-31-skywalking-go-0.2.0-release/index.md
+++ b/content/blog/2023-07-31-skywalking-go-0.2.0-release/index.md
@@ -4,9 +4,9 @@ date: 2023-07-31
 author: "Han Liu"
 description: "Introduction the new features of SkyWalking Go 0.2.0"
 tags:
-- Agents
-- Metrics
-- Logging
+  - Agents
+  - Metrics
+  - Logging
 ---
 
 # Announcing Apache SkyWalking Go 0.2.0
diff --git a/content/blog/2023-08-13-hashicorp-bsl/index.md 
b/content/blog/2023-08-13-hashicorp-bsl/index.md
index 17b3e3ee30e..39510878cff 100644
--- a/content/blog/2023-08-13-hashicorp-bsl/index.md
+++ b/content/blog/2023-08-13-hashicorp-bsl/index.md
@@ -6,7 +6,7 @@ description: "HashiCorp announced to adopt the Business Source 
License from Mozi
 startTime: 2023-08-13T00:00:00Z
 endTime: 2023-09-30T10:00:00Z
 tags:
-- Community
+  - Community
 ---
 
 On Aug. 10th, 2023, HashiCorp announced to adopt the Business Source License 
(BSL) from Mozilla Public License v2.0 (MPL 2.0), here is their 
[post](https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license).
 
diff --git a/content/blog/2023-10-18-skywalking-toolkit-trace/index.md 
b/content/blog/2023-10-18-skywalking-toolkit-trace/index.md
index 056035ccffa..80d71aa2d17 100644
--- a/content/blog/2023-10-18-skywalking-toolkit-trace/index.md
+++ b/content/blog/2023-10-18-skywalking-toolkit-trace/index.md
@@ -4,7 +4,7 @@ date: 2023-10-18
 author: "Alipebt"
 description: "This article shows the introduction and usage of toolkit trace 
provided by Skywalking Go to users."
 tags:
-- Tracing
+  - Tracing
 ---
 
 ## Background
diff --git a/content/blog/2023-12-04-coffee+software-with-josh-long/index.md 
b/content/blog/2023-12-04-coffee+software-with-josh-long/index.md
index 170975528a3..6b5507279fa 100644
--- a/content/blog/2023-12-04-coffee+software-with-josh-long/index.md
+++ b/content/blog/2023-12-04-coffee+software-with-josh-long/index.md
@@ -3,7 +3,7 @@ title: "[Video] Coffee + Software with Josh Long - Apache 
SkyWalking with Sheng
 date: 2023-12-04
 author: Sheng Wu, Josh Long, Trista Pan
 tags:
-- Community
+  - Community
 ---
 
 🚀 Dive into the World of Cutting-Edge Technology with Apache's Finest! 🌐 Join 
me today as we embark on an exhilarating journey with two of Apache's most 
brilliant minds - Sheng Wu and Trista Pan. We're exploring the realms of Apache 
SkyWalking and Apache ShardingSphere, two groundbreaking initiatives that are 
reshaping the landscape of open-source technology. 🌟
diff --git a/content/blog/2023-12-23-monitoring-nginx-by-skywalking/index.md 
b/content/blog/2023-12-23-monitoring-nginx-by-skywalking/index.md
index 5b98fe528a3..e0a470d30f2 100644
--- a/content/blog/2023-12-23-monitoring-nginx-by-skywalking/index.md
+++ b/content/blog/2023-12-23-monitoring-nginx-by-skywalking/index.md
@@ -4,7 +4,7 @@ author: "Xiang Wei"
 date: 2023-12-23
 description: "SkyWalking 9.7 introduces a new Nginx monitoring dashboard, and 
this article will demonstrate the usage of this monitoring dashboard."
 tags:
-- Agents
+  - Agents
 ---
 
 ## Background
diff --git 
a/content/blog/2024-010-15-introduce-r3-to-recognition-restful-url/index.md 
b/content/blog/2024-010-15-introduce-r3-to-recognition-restful-url/index.md
index 103cb52948e..9ef54bdc78e 100644
--- a/content/blog/2024-010-15-introduce-r3-to-recognition-restful-url/index.md
+++ b/content/blog/2024-010-15-introduce-r3-to-recognition-restful-url/index.md
@@ -4,8 +4,8 @@ date: 2024-10-17
 author: Han Liu
 description: "This article will introduce how to use R3 to identify RESTFul 
URIs and integrate them into SkyWalking."
 tags:
-- Agents
-- Tracing
+  - Agents
+  - Tracing
 ---
 
 ## Background
diff --git 
a/content/blog/2024-03-12-monitoring-clickhouse-through-skywalking/index.md 
b/content/blog/2024-03-12-monitoring-clickhouse-through-skywalking/index.md
index 87ac6a8a906..0f13b742103 100644
--- a/content/blog/2024-03-12-monitoring-clickhouse-through-skywalking/index.md
+++ b/content/blog/2024-03-12-monitoring-clickhouse-through-skywalking/index.md
@@ -4,7 +4,7 @@ date: 2024-03-12
 author: Ziyan Chen
 description: "SkyWalking 10.0 introduces a new ClickHouse server monitoring 
dashboard, and this article will demonstrate the usage of this monitoring 
dashboard."
 tags:
-- Storage
+  - Storage
 ---
 
 ## Background
diff --git 
a/content/blog/2024-03-18-monitor-kubernetes-network-by-ebpf/index.md 
b/content/blog/2024-03-18-monitor-kubernetes-network-by-ebpf/index.md
index 00319c6bc46..a4816922892 100644
--- a/content/blog/2024-03-18-monitor-kubernetes-network-by-ebpf/index.md
+++ b/content/blog/2024-03-18-monitor-kubernetes-network-by-ebpf/index.md
@@ -4,7 +4,7 @@ date: 2024-03-18
 author: Han Liu
 description: This article demonstrates how SkyWalking uses eBPF technology to 
monitor network traffic on Kubernetes.
 tags:
-- Profiling
+  - Profiling
 ---
 
 ## Background
diff --git a/content/blog/2024-04-19-flink-monitoring-by-skywalking/index.md 
b/content/blog/2024-04-19-flink-monitoring-by-skywalking/index.md
index bbdaff7f919..cd6cc755f4d 100644
--- a/content/blog/2024-04-19-flink-monitoring-by-skywalking/index.md
+++ b/content/blog/2024-04-19-flink-monitoring-by-skywalking/index.md
@@ -4,7 +4,7 @@ author: "YiMing Shao"
 date: 2025-04-25
 description: "SkyWalking 10.3 introduces a new Flink monitoring dashboard, and 
this article will demonstrate the usage of this monitoring dashboard."
 tags:
-- Metrics
+  - Metrics
 ---
 
 # Background
diff --git 
a/content/blog/2024-04-19-monitoring-activemq-through-skywalking/index.md 
b/content/blog/2024-04-19-monitoring-activemq-through-skywalking/index.md
index c27c2bccfe6..e536e2fc8cf 100644
--- a/content/blog/2024-04-19-monitoring-activemq-through-skywalking/index.md
+++ b/content/blog/2024-04-19-monitoring-activemq-through-skywalking/index.md
@@ -4,7 +4,7 @@ date: 2024-04-19
 author: Ziyan Chen
 description: "This article will demonstrate the usage of the new ActiveMQ 
monitoring dashboard."
 tags:
-- Agents
+  - Agents
 ---
 
 ![icon](activemq_logo.png)
diff --git a/content/blog/2024-05-13-skywalking-10-release/index.md 
b/content/blog/2024-05-13-skywalking-10-release/index.md
index 2451d9018ba..3d560f2c3ac 100644
--- a/content/blog/2024-05-13-skywalking-10-release/index.md
+++ b/content/blog/2024-05-13-skywalking-10-release/index.md
@@ -4,9 +4,9 @@ date: 2024-05-13
 author: Kai Wan, Sheng Wu. tetrate.io
 description: "Introduce what's new in SkyWalking 10, including Service 
Hierarchy, Kubernetes Network Monitoring by eBPF, BanyanDB, and more."
 tags:
-- Release
-- Cloud Native
-- Profiling
+  - Release
+  - Cloud Native
+  - Profiling
 ---
 
 The Apache SkyWalking team today announced the 10 release. SkyWalking 10 
provides a host of groundbreaking features and enhancements. 
diff --git a/content/blog/2024-06-04-banyandb-0.6-release/index.md 
b/content/blog/2024-06-04-banyandb-0.6-release/index.md
index 7795e2df48e..41924e6e04e 100644
--- a/content/blog/2024-06-04-banyandb-0.6-release/index.md
+++ b/content/blog/2024-06-04-banyandb-0.6-release/index.md
@@ -4,8 +4,8 @@ date: 2024-06-04
 author: Hongtao Gao, Sheng Wu. tetrate.io
 description: "Introducing What's New in BanyanDB v0.6 and a Benchmark Test 
Against Elasticsearch"
 tags:
-- Release
-- Storage
+  - Release
+  - Storage
 ---
 
 # Introduction
diff --git a/content/blog/2024-10-20-skywalking-go-toolkit-metrics-log/index.md 
b/content/blog/2024-10-20-skywalking-go-toolkit-metrics-log/index.md
index 953c2dfb5f1..bfb5534418a 100644
--- a/content/blog/2024-10-20-skywalking-go-toolkit-metrics-log/index.md
+++ b/content/blog/2024-10-20-skywalking-go-toolkit-metrics-log/index.md
@@ -4,7 +4,7 @@ date: 2024-10-20
 author: "ShyunnY"
 description: "This document presents an introduction to and usage of the 
toolkit Log and Metrics in SkyWalking Go."
 tags:
-- Logging
+  - Logging
 ---
 
 ## Intro
diff --git a/content/blog/2024-12-09-skywalking-async-profiler/index.md 
b/content/blog/2024-12-09-skywalking-async-profiler/index.md
index e5f8842576e..7775ade3c56 100644
--- a/content/blog/2024-12-09-skywalking-async-profiler/index.md
+++ b/content/blog/2024-12-09-skywalking-async-profiler/index.md
@@ -4,7 +4,7 @@ date: 2024-12-09
 author: "zhengziyi0117"
 description: "This document presents an introduction to and usage of the 
async-profiler in SkyWalking."
 tags:
-- Profiling
+  - Profiling
 ---
 
 ## Background
diff --git 
a/content/blog/2025-02-24-improving-alert-accuracy-with-dynamic-baselines/index.md
 
b/content/blog/2025-02-24-improving-alert-accuracy-with-dynamic-baselines/index.md
index 4c760c11099..f297e13dff9 100644
--- 
a/content/blog/2025-02-24-improving-alert-accuracy-with-dynamic-baselines/index.md
+++ 
b/content/blog/2025-02-24-improving-alert-accuracy-with-dynamic-baselines/index.md
@@ -4,7 +4,7 @@ date: 2025-02-24
 author: "Han Liu"
 description: "This article explores how to leverage history metrics to 
generate dynamic baselines for a future period, thereby enhancing the accuracy 
of alerts."
 tags:
-- Community
+  - Community
 ---
 
 ## Background
diff --git a/content/blog/2025-03-06-introduction-to-skywalking-ruby/index.md 
b/content/blog/2025-03-06-introduction-to-skywalking-ruby/index.md
index 1ea55e61526..27b20e3a022 100644
--- a/content/blog/2025-03-06-introduction-to-skywalking-ruby/index.md
+++ b/content/blog/2025-03-06-introduction-to-skywalking-ruby/index.md
@@ -5,8 +5,8 @@ author: "Zixin Zhou"
 description: "This article demonstrates how to integrate applications with 
SkyWalking Ruby and provides a 
             brief interpretation of the implementation mechanism of Ruby 
auto-instrumentation plugins."
 tags:
-- Agents
-- Tracing
+  - Agents
+  - Tracing
 ---
 
 ## Background
diff --git a/content/blog/2026-01-01-skywalking-2025-year-in-review/index.md 
b/content/blog/2026-01-01-skywalking-2025-year-in-review/index.md
index 5c5c9422239..3fa648318d5 100644
--- a/content/blog/2026-01-01-skywalking-2025-year-in-review/index.md
+++ b/content/blog/2026-01-01-skywalking-2025-year-in-review/index.md
@@ -5,9 +5,9 @@ author: Sheng Wu
 description: "A review of Apache SkyWalking community work in 2025, with a 
focus on BanyanDB becoming the production-grade native storage for SkyWalking."
 endTime: 2026-01-01T23:00:00Z
 tags:
-- Release
-- Storage
-- Community
+  - Release
+  - Storage
+  - Community
 ---
 
 2025 was a very focused year for the Apache SkyWalking community: **moving 
BanyanDB from “native storage” to a “production-ready default”**, and making 
SkyWalking APM fully benefit from that foundation.
diff --git a/content/blog/2026-03-08-agentic-vibe-coding/index.md 
b/content/blog/2026-03-08-agentic-vibe-coding/index.md
index f48bcbb5c09..0b97351d203 100644
--- a/content/blog/2026-03-08-agentic-vibe-coding/index.md
+++ b/content/blog/2026-03-08-agentic-vibe-coding/index.md
@@ -5,9 +5,9 @@ author: Sheng Wu
 description: "What happens when you apply agentic AI coding to a mature 
open-source project with real users, real compatibility contracts, and real 
consequences? 77K lines changed in 5 weeks — here's what I learned."
 endTime: 2026-03-08T23:00:00Z
 tags:
-- AI
-- Engineering
-- Community
+  - AI
+  - Engineering
+  - Community
 ---
 
 Most "vibe coding" stories start with a greenfield project. This one doesn't.
diff --git 
a/content/blog/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md 
b/content/blog/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md
index 1654afd6e85..f3060da060d 100644
--- 
a/content/blog/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md
+++ 
b/content/blog/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md
@@ -4,9 +4,9 @@ date: 2026-03-13
 author: Sheng Wu
 description: "A case study in how AI changed the economics of architecture in 
a mature  project by making better designs cheaper to prototype, validate, and 
refine."
 tags:
-- Cloud Native
-- Profiling
-- AI
+  - Cloud Native
+  - Profiling
+  - AI
 ---
 
 *SkyWalking GraalVM Distro: A case study in turning runnable PoCs into a 
repeatable migration pipeline.*
diff --git 
a/content/blog/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
 
b/content/blog/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
index 04fe0df89be..767ced059c3 100644
--- 
a/content/blog/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
+++ 
b/content/blog/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
@@ -4,9 +4,9 @@ date: 2026-03-13
 author: Sheng Wu
 description: "A technical deep-dive into SkyWalking GraalVM Distro — how we 
turned a mature, reflection-heavy Java observability backend into a native 
binary with a repeatable migration pipeline."
 tags:
-- Cloud Native
-- Profiling
-- Storage
+  - Cloud Native
+  - Profiling
+  - Storage
 ---
 
 *A technical deep-dive into how we migrated Apache SkyWalking OAP to GraalVM 
Native Image — not as a one-off port, but as a repeatable pipeline that stays 
aligned with upstream.*
diff --git a/content/blog/2026-04-02-envoy-ai-gateway-monitoring/index.md 
b/content/blog/2026-04-02-envoy-ai-gateway-monitoring/index.md
index 5ae15136312..6a6ebfb2fce 100644
--- a/content/blog/2026-04-02-envoy-ai-gateway-monitoring/index.md
+++ b/content/blog/2026-04-02-envoy-ai-gateway-monitoring/index.md
@@ -4,8 +4,8 @@ date: 2026-04-02
 author: "Sheng Wu"
 description: "Set up full-stack observability for your AI/LLM traffic using 
Envoy AI Gateway, SkyWalking OAP 10.4.0, and BanyanDB 0.10.0."
 tags:
-- AI
-- Cloud Native
+  - AI
+  - Cloud Native
 ---
 
 ## The Problem: Flying Blind with LLM Traffic
diff --git a/content/blog/2026-04-05-virtual-genai-monitoring/index.md 
b/content/blog/2026-04-05-virtual-genai-monitoring/index.md
index 2fadb0d833c..c8fca49014a 100644
--- a/content/blog/2026-04-05-virtual-genai-monitoring/index.md
+++ b/content/blog/2026-04-05-virtual-genai-monitoring/index.md
@@ -4,8 +4,8 @@ author: "YiMing Shao"
 date: 2026-04-05
 description: "SkyWalking 10.4 introduces the Virtual GenAI dashboard. This 
article explores how to use this new feature to monitor and optimize LLM 
integrations."
 tags:
-- AI
-- Metrics
+  - AI
+  - Metrics
 ---
 # The Problem: As Applications "Consume" LLMs, Monitoring Leaves a Blind Spot
 
diff --git a/content/blog/2026-04-08-traceql/index.md 
b/content/blog/2026-04-08-traceql/index.md
index c5f04f73c65..dccf34d934f 100644
--- a/content/blog/2026-04-08-traceql/index.md
+++ b/content/blog/2026-04-08-traceql/index.md
@@ -4,8 +4,8 @@ author: "Kai Wan"
 date: 2026-04-08
 description: "SkyWalking 10.4 introduces TraceQL support, implementing Grafana 
Tempo's HTTP query APIs so that Grafana can query and visualize traces stored 
in SkyWalking."
 tags:
-- Tracing
-- Metrics
+  - Tracing
+  - Metrics
 ---
 
 # Query SkyWalking and Zipkin Traces with TraceQL and Visualize in Grafana
diff --git 
a/content/blog/2026-04-30-mini-program-monitoring-with-skywalking/index.md 
b/content/blog/2026-04-30-mini-program-monitoring-with-skywalking/index.md
index 71eb83b8026..49c0da77d82 100644
--- a/content/blog/2026-04-30-mini-program-monitoring-with-skywalking/index.md
+++ b/content/blog/2026-04-30-mini-program-monitoring-with-skywalking/index.md
@@ -4,9 +4,9 @@ author: "Sheng Wu"
 date: 2026-04-30
 description: "SkyAPM/mini-program-monitor and SkyWalking OAP together extend 
SkyWalking's end-user monitoring to WeChat and Alipay Mini Programs. This post 
focuses on the data path, the cross-platform abstraction, and the OAP-side 
integration."
 tags:
-- Metrics
-- Agents
-- Community
+  - Metrics
+  - Agents
+  - Community
 ---
 
 Mini programs are a major part of the mobile experience in China, but the 
open-source observability ecosystem has long focused on web browsers and native 
apps. SkyWalking already covers browser (client-js), iOS, and the server side; 
mini programs and Android were the remaining gaps. With 
[SkyAPM/mini-program-monitor](https://github.com/SkyAPM/mini-program-monitor) 
joining the SkyWalking ecosystem, the mini-program half of that gap is closed — 
one SDK supports both WeChat and Alipay, and  [...]
diff --git 
a/content/blog/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
 
b/content/blog/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
index 3aedd0c68bd..ce96688e321 100644
--- 
a/content/blog/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
+++ 
b/content/blog/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
@@ -4,8 +4,8 @@ date: 2022-12-19
 author: "Sheng Wu"
 description: "SkyWalking 9.3.0 introduced the new capability that help you 
visualize the connection between traces and corresponding metrics quickly."
 tags:
-- Tracing
-- Metrics
+  - Tracing
+  - Metrics
 ---
 
 ![Banner](banner.jpg)
diff --git 
a/content/blog/diagnose-service-mesh-network-performance-with-ebpf/index.md 
b/content/blog/diagnose-service-mesh-network-performance-with-ebpf/index.md
index c2555cf4baf..0bcaf45acd4 100644
--- a/content/blog/diagnose-service-mesh-network-performance-with-ebpf/index.md
+++ b/content/blog/diagnose-service-mesh-network-performance-with-ebpf/index.md
@@ -4,7 +4,7 @@ date: 2022-09-27
 author: "Han Liu, Sheng Wu"
 description: "This article will show how to use Apache SkyWalking with eBPF to 
make network troubleshooting easier in a service mesh environment."
 tags:
-- Profiling
+  - Profiling
 ---
 
 ## Background
diff --git a/content/blog/e2e-design/index.md b/content/blog/e2e-design/index.md
index e4bcb990886..d11a374d8fb 100644
--- a/content/blog/e2e-design/index.md
+++ b/content/blog/e2e-design/index.md
@@ -4,7 +4,7 @@ date: 2020-12-14
 author: "[Zhenxu Ke](https://github.com/kezhenxu94), Tetrate.io; [Huaxi 
Jiang](http://github.com/fgksgf), Committer; [Ke 
Zhang](http://github.com/HumbertZhang), Committer"
 description: "The design of Next Generation End-to-End Testing Framework"
 tags:
-- Engineering
+  - Engineering
 ---
 
 NGE2E is the next generation End-to-End Testing framework that aims to help 
developers to set up, debug, and verify E2E tests with ease. It's built based 
on the lessons learnt from tens of hundreds of test cases in the SkyWalking 
main repo.
diff --git 
a/content/blog/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md 
b/content/blog/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md
index 254ad2d6353..65666e887b5 100644
--- 
a/content/blog/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md
+++ 
b/content/blog/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md
@@ -4,9 +4,9 @@ date: 2023-01-12
 author: "Han Liu, Sheng Wu"
 description: "This article will show how to use Apache SkyWalking with eBPF to 
enhance metrics and traces in HTTP observability."
 tags:
-- Tracing
-- Metrics
-- Profiling
+  - Tracing
+  - Metrics
+  - Profiling
 ---
 
 ![banner](banner.jpg)
diff --git 
a/content/blog/end-user-tracing-in-a-skyWalking-observed-browser/index.md 
b/content/blog/end-user-tracing-in-a-skyWalking-observed-browser/index.md
index 65de8618a36..f797d93e8ae 100644
--- a/content/blog/end-user-tracing-in-a-skyWalking-observed-browser/index.md
+++ b/content/blog/end-user-tracing-in-a-skyWalking-observed-browser/index.md
@@ -4,7 +4,7 @@ date: 2021-03-25
 author: "[Qiuxia Fan](https://github.com/Fine0830). tetrate.io"
 description: This article describes how the skywalking-client-js extends its 
monitoring to include the browser, providing performance metrics and error 
collection to the SkyWalking backend.
 tags:
-- Profiling
+  - Profiling
 ---
 
 ![](aircraft.jpg)
diff --git 
a/content/blog/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md 
b/content/blog/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md
index 6fd8a4db172..14aa40c143e 100644
--- 
a/content/blog/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md
+++ 
b/content/blog/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md
@@ -4,7 +4,7 @@ date: 2022-12-14
 author: "[Jimmy Song (tetrate.io)](https://jimmysong.io/en/)"
 description: "This blog will guide you to use SkyWalking for distributed 
tracing with Istio."
 tags:
-- Cloud Native
+  - Cloud Native
 ---
 
 In cloud native applications, a request often needs to be processed through a 
series of APIs or backend services, some of which are parallel and some serial 
and located on different platforms or nodes. How do we determine the service 
paths and nodes a call goes through to help us troubleshoot the problem? This 
is where distributed tracing comes into play.
diff --git a/content/blog/obs-service-mesh-vm-with-sw-and-als/index.md 
b/content/blog/obs-service-mesh-vm-with-sw-and-als/index.md
index bdce053297e..bb000680ce2 100644
--- a/content/blog/obs-service-mesh-vm-with-sw-and-als/index.md
+++ b/content/blog/obs-service-mesh-vm-with-sw-and-als/index.md
@@ -4,7 +4,7 @@ date: 2021-02-21
 author: "[Zhenxu Ke](http://github.com/kezhenxu94) and Hongtao Gao. tetrate.io"
 description: In this tutorial, you can learn how to use Apache SkyWalking for 
service mesh observability, in Kubernetes and / or in virtual machines.
 tags:
-- Cloud Native
+  - Cloud Native
 ---
 
 ![](stone-arch.jpg)
diff --git a/content/blog/skywalking8-4-release/index.md 
b/content/blog/skywalking8-4-release/index.md
index 4a14ccb9252..f3118945859 100644
--- a/content/blog/skywalking8-4-release/index.md
+++ b/content/blog/skywalking8-4-release/index.md
@@ -4,8 +4,8 @@ date: 2021-02-05
 author: Zhenxu Ke, Sheng Wu. tetrate.io
 description: "Logs, VM Monitoring, and Dynamic Configurations at Agent Side"
 tags:
-- Release
-- Logging
+  - Release
+  - Logging
 ---
 
 ![](heading.png)
diff --git 
a/content/blog/skywalkings-new-storage-feature-based-on-shardingsphere-proxy-mysql-sharding/index.md
 
b/content/blog/skywalkings-new-storage-feature-based-on-shardingsphere-proxy-mysql-sharding/index.md
index 07fcb55775c..26b4ed9282a 100644
--- 
a/content/blog/skywalkings-new-storage-feature-based-on-shardingsphere-proxy-mysql-sharding/index.md
+++ 
b/content/blog/skywalkings-new-storage-feature-based-on-shardingsphere-proxy-mysql-sharding/index.md
@@ -4,7 +4,7 @@ date: 2022-12-06
 author: Kai Wan (tetrate.io)
 description: "Based on MySQL storage, SkyWalking v9.3.0 provides a new storage 
method: MySQL-Sharding. It supports database and table sharding features thanks 
to ShardingSphere-Proxy, which is a mature solution for dealing with relational 
databases’ massive amounts of data."
 tags:
-- Storage
+  - Storage
 ---
 
 As an application performance monitoring tool for distributed systems, Apache 
SkyWalking observes metrics, logs, traces, and events in the service mesh.
diff --git 
a/content/zh/2022-04-14-integrating-skywalking-with-source-code/index.md 
b/content/zh/2022-04-14-integrating-skywalking-with-source-code/index.md
index 222d3e072d0..6a061cfa828 100644
--- a/content/zh/2022-04-14-integrating-skywalking-with-source-code/index.md
+++ b/content/zh/2022-04-14-integrating-skywalking-with-source-code/index.md
@@ -5,7 +5,7 @@ date: 2022-04-14
 description: "在本文中,我们将介绍开源实时编码平台 Source++ 中的一个新概念,
 其旨在让开发人员更直观地监控生产环境中的应用。"
 tags:
-- Observability
+  - Engineering
 ---
 
 <sub>Read this post in original language: 
[English](https://skywalking.apache.org/blog/2022-04-14-integrating-skywalking-with-source-code/)</sub>
diff --git 
a/content/zh/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md 
b/content/zh/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md
index 8e980c186b6..410da8dfa12 100644
--- a/content/zh/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md
+++ b/content/zh/2022-12-13-how-to-run-apache-skywalking-on-aws-eks-rds/index.md
@@ -4,12 +4,9 @@ date: 2022-12-13
 author: "[柯振旭](https://github.com/kezhenxu94)"
 description: "介绍如何在 AWS EKS 和 RDS/Aurora 上快速搭建 Apache SkyWalking。"
 tags:
-- SkyWalking
-- Observability
-- Demo
-- AWS
-- RDS
-- Aurora
+  - Storage
+  - Cloud Native
+  - Engineering
 ---
 
 ## 介绍
diff --git 
a/content/zh/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
 
b/content/zh/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
index e1e47f7c767..250a8d4fa4a 100644
--- 
a/content/zh/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
+++ 
b/content/zh/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/index.md
@@ -4,9 +4,7 @@ date: 2023-03-16
 author: "万凯"
 description: "本文介绍什么是 SkyWalking 中的 PromQL 服务,以及如何使用它来构建 Grafana Dashboard。"
 tags:
-- PromQL
-- Metric
-- Grafana
+  - Metrics
 ---
 
 ## 背景
diff --git 
a/content/zh/2023-06-01-quick-start-with-skywalking-go-agent/index.md 
b/content/zh/2023-06-01-quick-start-with-skywalking-go-agent/index.md
index 710db854d7d..640536ada2b 100644
--- a/content/zh/2023-06-01-quick-start-with-skywalking-go-agent/index.md
+++ b/content/zh/2023-06-01-quick-start-with-skywalking-go-agent/index.md
@@ -4,9 +4,8 @@ date: 2023-06-01
 author: "刘晗"
 description: "本文演示如何将应用程序与 SkyWalking Go 集成,并在 SkyWalking UI 中查看结果。"
 tags:
-- Golang
-- Agent
-- Tracing
+  - Agents
+  - Tracing
 ---
 
 本文演示如何将应用程序与 SkyWalking Go 集成,并在 SkyWalking UI 中查看结果。
diff --git 
a/content/zh/2023-06-05-quick-start-using-skywalking-go-monitoring-dubbo-go/index.md
 
b/content/zh/2023-06-05-quick-start-using-skywalking-go-monitoring-dubbo-go/index.md
index 88ee5547635..3606c5cd3d1 100644
--- 
a/content/zh/2023-06-05-quick-start-using-skywalking-go-monitoring-dubbo-go/index.md
+++ 
b/content/zh/2023-06-05-quick-start-using-skywalking-go-monitoring-dubbo-go/index.md
@@ -4,9 +4,8 @@ date: 2023-06-05
 author: "刘晗"
 description: "本文演示如何将Dubbo Go应用程序与 SkyWalking Go 集成,并在 SkyWalking UI 中查看结果。"
 tags:
-- Golang
-- Agent
-- Tracing
+  - Agents
+  - Tracing
 ---
 
 本文演示如何将 [Dubbo-Go](https://github.com/apache/dubbo-go) 应用程序与 SkyWalking Go 
集成,并在 SkyWalking UI 中查看结果。
diff --git 
a/content/zh/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
 
b/content/zh/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
index 9e4c24002b8..fce13c92cb3 100644
--- 
a/content/zh/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
+++ 
b/content/zh/2023-06-25-intruducing-continuous-profiling-skywalking-with-ebpf/index.md
@@ -4,9 +4,8 @@ date: 2023-06-25
 author: "刘晗"
 description: "介绍并演示 SkyWalking 如何在很少的人工参与下实现基于 ebpf 的进程监控。在预设条件的驱动下,剖析可以自动激活。"
 tags:
-- eBPF
-- Profiling
-- Tracing
+  - Profiling
+  - Tracing
 ---
 
 # 背景
diff --git a/content/zh/2023-08-20-coc-asia-2023/index.md 
b/content/zh/2023-08-20-coc-asia-2023/index.md
index 38b614cb749..1e30d67604c 100644
--- a/content/zh/2023-08-20-coc-asia-2023/index.md
+++ b/content/zh/2023-08-20-coc-asia-2023/index.md
@@ -4,9 +4,8 @@ author: "Hongtao Gao && Han Liu"
 date: 2023-10-03
 description: "会议视频,(1)SkyWalking的Golang自动探针实践 刘晗,(2)BanyanDB一个高扩展性的分布式追踪数据库 
高洪涛"
 tags:
-- Golang
-- Agent
-- Database
+  - Agents
+  - Storage
 ---
 
 CommunityOverCode (原 ApacheCon) 是 Apache 软件基金会(ASF)的官方全球系列大会。自 1998 年以来--在 ASF 
成立之前 -- ApacheCon 已经吸引了各个层次的参与者,在 300 多个 Apache 项目及其不同的社区中探索 
"明天的技术"。CommunityOverCode 通过动手实作、主题演讲、实际案例研究、培训、黑客松活动等方式,展示 Apache 项目的最新发展和新兴创新。
diff --git a/content/zh/2023-09-17-integrating-skywalking-with-arthas/index.md 
b/content/zh/2023-09-17-integrating-skywalking-with-arthas/index.md
index 08508476a29..5b6364d8940 100644
--- a/content/zh/2023-09-17-integrating-skywalking-with-arthas/index.md
+++ b/content/zh/2023-09-17-integrating-skywalking-with-arthas/index.md
@@ -4,8 +4,8 @@ author: "魏翔"
 date: 2023-09-17
 description: "本篇文章演示如何将 Arthas 集成到 SkyWalking 中,并借此场景讨论 SkyWalking 中的常见扩展点。"
 tags:
-- Agent
-- Arthas
+  - Agents
+  - Profiling
 ---
 
 ## 背景介绍
diff --git 
a/content/zh/2023-10-29-collect-and-analyse-nginx-accesslog-by-lal/index.md 
b/content/zh/2023-10-29-collect-and-analyse-nginx-accesslog-by-lal/index.md
index 0fc6900eb7a..1f094f569ae 100644
--- a/content/zh/2023-10-29-collect-and-analyse-nginx-accesslog-by-lal/index.md
+++ b/content/zh/2023-10-29-collect-and-analyse-nginx-accesslog-by-lal/index.md
@@ -4,9 +4,8 @@ author: "魏翔"
 date: 2023-10-29
 description: "本篇文章演示如何将 Nginx access log 收集到 SkyWalking 中,并通过 LAL 进行指标分析"
 tags:
-- LAL
-- Logging
-- Nginx
+  - Logging
+  - Agents
 ---
 
 ## 背景介绍
diff --git a/content/zh/2023-11-09-ospp-summary/index.md 
b/content/zh/2023-11-09-ospp-summary/index.md
index 1936647e1dd..82ce995f9f1 100644
--- a/content/zh/2023-11-09-ospp-summary/index.md
+++ b/content/zh/2023-11-09-ospp-summary/index.md
@@ -4,7 +4,7 @@ author: "Apache SkyWalking"
 date: 2023-11-09
 description: 
"开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。11月9日,官方完成最终审核,并发布结果。"
 tags:
-- OSPP
+  - Community
 ---
 
 Aapche SkyWalking PMC 和 committer团队参加了"开源之夏 
2023"活动,作为导师,共获得了9个官方赞助名额。最终对学生开放如下任务
diff --git a/content/zh/2023-12-23-monitoring-nginx-by-skywalking/index.md 
b/content/zh/2023-12-23-monitoring-nginx-by-skywalking/index.md
index 2423786bc89..063c5d8f44c 100644
--- a/content/zh/2023-12-23-monitoring-nginx-by-skywalking/index.md
+++ b/content/zh/2023-12-23-monitoring-nginx-by-skywalking/index.md
@@ -4,7 +4,7 @@ author: "魏翔"
 date: 2023-12-23
 description: "SkyWalking 9.7 引入了新的 Nginx 监控面板,本文将演示该监控面板的使用。"
 tags:
-- Nginx
+  - Agents
 ---
 
 ## 背景介绍
diff --git a/content/zh/2024-01-04-skywalking-for-scala-effect-runtime/index.md 
b/content/zh/2024-01-04-skywalking-for-scala-effect-runtime/index.md
index 999236f80d2..5f550ac607b 100644
--- a/content/zh/2024-01-04-skywalking-for-scala-effect-runtime/index.md
+++ b/content/zh/2024-01-04-skywalking-for-scala-effect-runtime/index.md
@@ -4,7 +4,7 @@ author: "jxnu-liguobin"
 date: 2024-01-04
 description: "本篇文章演示了如何使用 SkyWalking 收集 ZIO 应用的 Trace,并通过源码分析,讲述怎样为其开发相关插件。"
 tags:
-- Nginx
+  - Agents
 ---
 
 ## 背景介绍
diff --git 
a/content/zh/2024-010-15-introduce-r3-to-recognition-restful-url/index.md 
b/content/zh/2024-010-15-introduce-r3-to-recognition-restful-url/index.md
index bec1df46d78..9f8347c7e98 100644
--- a/content/zh/2024-010-15-introduce-r3-to-recognition-restful-url/index.md
+++ b/content/zh/2024-010-15-introduce-r3-to-recognition-restful-url/index.md
@@ -4,8 +4,8 @@ date: 2024-10-17
 author: 刘晗
 description: "本文将介绍如何使用 R3 识别 RESTFul URI 并将其集成到 SkyWalking 中。"
 tags:
-- RESTFul
-- R3
+  - Tracing
+  - Community
 ---
 
 ## 背景
diff --git a/content/zh/2024-02-29-rocketmq-monitoring-by-skywalking/index.md 
b/content/zh/2024-02-29-rocketmq-monitoring-by-skywalking/index.md
index f41f92302e0..7ea3cf9430c 100644
--- a/content/zh/2024-02-29-rocketmq-monitoring-by-skywalking/index.md
+++ b/content/zh/2024-02-29-rocketmq-monitoring-by-skywalking/index.md
@@ -4,7 +4,7 @@ author: "邵一鸣"
 date: 2024-02-29
 description: "SkyWalking 10.0 引入了新的 RocketMQ 监控面板,本文将演示该监控面板的使用。"
 tags:
-- RocketMQ
+  - Agents
 ---
 
 # 背景介绍
diff --git 
a/content/zh/2024-03-12-monitoring-clickhouse-through-skywalking/index.md 
b/content/zh/2024-03-12-monitoring-clickhouse-through-skywalking/index.md
index f35e3e0ca20..07c492b7ec5 100644
--- a/content/zh/2024-03-12-monitoring-clickhouse-through-skywalking/index.md
+++ b/content/zh/2024-03-12-monitoring-clickhouse-through-skywalking/index.md
@@ -4,7 +4,7 @@ date: 2024-03-12
 author: "陈子妍"
 description: "SkyWalking 10.0 引入了 ClickHouse 监控面板,本文将演示该监控面板的使用。"
 tags:
-- ClickHouse
+  - Storage
 ---
 
 ## 背景介绍
diff --git a/content/zh/2024-04-19-flink-monitoring-by-skywalking/index.md 
b/content/zh/2024-04-19-flink-monitoring-by-skywalking/index.md
index 900dfca70e8..35356702e48 100644
--- a/content/zh/2024-04-19-flink-monitoring-by-skywalking/index.md
+++ b/content/zh/2024-04-19-flink-monitoring-by-skywalking/index.md
@@ -4,7 +4,7 @@ author: "邵一鸣"
 date: 2025-04-25
 description: "SkyWalking 10.3 引入了新的 Flink 监控面板,本文将演示该监控面板的使用。"
 tags:
-- Flink
+  - Engineering
 ---
 
 # 背景介绍
diff --git 
a/content/zh/2024-04-19-monitoring-activemq-through-skywalking/index.md 
b/content/zh/2024-04-19-monitoring-activemq-through-skywalking/index.md
index 807a3dd06c3..34d14ffd953 100644
--- a/content/zh/2024-04-19-monitoring-activemq-through-skywalking/index.md
+++ b/content/zh/2024-04-19-monitoring-activemq-through-skywalking/index.md
@@ -4,7 +4,7 @@ date: 2024-04-19
 author: "陈子妍"
 description: "本文将演示 ActiveMQ 监控面板的使用。"
 tags:
-- ActiveMQ
+  - Agents
 ---
 
 ![icon](activemq_logo.png)
diff --git a/content/zh/2024-05-13-skywalking-10-release/index.md 
b/content/zh/2024-05-13-skywalking-10-release/index.md
index 7280dfa6895..383c35f5f74 100644
--- a/content/zh/2024-05-13-skywalking-10-release/index.md
+++ b/content/zh/2024-05-13-skywalking-10-release/index.md
@@ -4,11 +4,9 @@ description: "介绍 SkyWalking 10 的新特性,包括服务层次结构、基
 authors: 万凯,吴晟
 date: 2024-05-13
 tags:
-- Release Blog
-- Service Hierarchy
-- Kubernetes
-- eBPF
-- BanyanDB
+  - Release
+  - Profiling
+  - Storage
 ---
 
 Apache SkyWalking 团队今天宣布发布 SkyWalking 10。SkyWalking 10 提供了一系列突破性的功能和增强功能。Layer 
和 Service Hierarchy 的引入通过将服务和指标组织成不同的层次,并提供跨层无缝导航,从而简化了监控。利用 eBPF 技术,Kubernetes 
网络监控提供了对网络流量、拓扑和 TCP/HTTP 指标的详细洞察。BanyanDB 作为高性能的原生存储解决方案出现,同时扩展的监控支持包括 Apache 
RocketMQ、ClickHouse 和 Apache ActiveMQ 
Classic。对多标签名称的支持增强了指标分析的灵活性,而增强的导出和查询功能简化了数据分发和处理。
diff --git a/content/zh/2024-06-04-banyandb-0.6-release/index.md 
b/content/zh/2024-06-04-banyandb-0.6-release/index.md
index 1c81dd05990..104676d65e8 100644
--- a/content/zh/2024-06-04-banyandb-0.6-release/index.md
+++ b/content/zh/2024-06-04-banyandb-0.6-release/index.md
@@ -4,9 +4,8 @@ date: 2024-06-12
 author: 高洪涛、吴晟(tetrate.io)
 description: "介绍 BanyanDB v0.6 的新功能以及与 Elasticsearch 的基准测试。"
 tags:
-- Release Blog
-- Storage
-- BanyanDB
+  - Release
+  - Storage
 ---
 
 # 引言
diff --git a/content/zh/2024-12-10-ospp-summary/index.md 
b/content/zh/2024-12-10-ospp-summary/index.md
index 470d06ec170..af90ad1fdf2 100644
--- a/content/zh/2024-12-10-ospp-summary/index.md
+++ b/content/zh/2024-12-10-ospp-summary/index.md
@@ -4,7 +4,7 @@ author: "Apache SkyWalking"
 date: 2024-12-10
 description: 
"开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。12月9日,官方完成最终审核和官方评优,并发布结果。"
 tags:
-- OSPP
+  - Community
 ---
 
 Aapche SkyWalking PMC 和 committer团队参加了"开源之夏 
2024"活动,作为导师,共获得了5个官方赞助名额。最终对学生开放如下任务
diff --git a/content/zh/2025-03-06-introduction-to-skywalking-ruby/index.md 
b/content/zh/2025-03-06-introduction-to-skywalking-ruby/index.md
index 7a341b0f728..a765e894389 100644
--- a/content/zh/2025-03-06-introduction-to-skywalking-ruby/index.md
+++ b/content/zh/2025-03-06-introduction-to-skywalking-ruby/index.md
@@ -4,8 +4,7 @@ date: 2025-03-06
 author: "周梓鑫"
 description: "本文演示如何将应用程序与 SkyWalking Ruby 集成,并对 Ruby 自动探针插件实现机制进行简要解读"
 tags:
-  - Ruby
-  - Agent
+  - Agents
   - Tracing
 ---
 
diff --git a/content/zh/2026-03-08-agentic-vibe-coding/index.md 
b/content/zh/2026-03-08-agentic-vibe-coding/index.md
index b8444df38a9..bfa2cf1678a 100644
--- a/content/zh/2026-03-08-agentic-vibe-coding/index.md
+++ b/content/zh/2026-03-08-agentic-vibe-coding/index.md
@@ -4,13 +4,9 @@ date: 2026-03-08
 author: 吴晟
 description: "当你把 AI 智能体编程应用到一个有真实用户、广泛运用、API 被充分集成的成熟开源项目时,我在 5 周改了 7.7 
万行代码,里面到底用到了哪些方法?这是我的实战总结。"
 tags:
-- AI
-- Agentic Coding
-- Vibe Coding
-- TDD
-- Architecture
-- Engineering Productivity
-- Open Source
+  - AI
+  - Engineering
+  - Community
 endTime: 2026-03-08T23:00:00Z
 ---
 
diff --git 
a/content/zh/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md 
b/content/zh/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md
index cd8ad44c2ac..dff299e6fc3 100644
--- 
a/content/zh/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md
+++ 
b/content/zh/2026-03-13-how-ai-changed-the-economics-of-architecture/index.md
@@ -4,13 +4,9 @@ date: 2026-03-15
 author: 吴晟
 description: "以 SkyWalking GraalVM Distro 为例,聊聊 AI Coding 
如何让更好的架构方案更容易被验证、打磨并真正落地。"
 tags:
-- GraalVM
-- Native Image
-- Performance
-- Cloud Native
-- Serverless
-- AI
-- Claude
+  - AI
+  - Profiling
+  - Cloud Native
 ---
 
 *以 SkyWalking GraalVM Distro 为例,看 AI Coding 如何把一批探索性 PoC 打磨成一条可重复的迁移流水线。*
diff --git 
a/content/zh/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
 
b/content/zh/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
index 8b08a730533..58358b6bd49 100644
--- 
a/content/zh/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
+++ 
b/content/zh/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/index.md
@@ -4,12 +4,9 @@ date: 2026-03-15
 author: 吴晟
 description: "从设计到测试,详解 SkyWalking GraalVM Distro 如何把一个成熟、运行时动态特性很多的 Java 
可观测性后端做成原生二进制,并沉淀出可重复的迁移流程。"
 tags:
-- GraalVM
-- Native Image
-- Performance
-- Cloud Native
-- Serverless
-- BanyanDB
+  - Profiling
+  - Storage
+  - Cloud Native
 ---
 
 *这篇文章会完整介绍我们如何把 Apache SkyWalking OAP 迁移到 GraalVM Native 
Image。目标不是做一次性移植,而是把这件事做成一套能持续跟上上游演进的流程。*
diff --git a/content/zh/2026-04-02-envoy-ai-gateway-monitoring/index.md 
b/content/zh/2026-04-02-envoy-ai-gateway-monitoring/index.md
index 6e20a14fc18..26a97f46918 100644
--- a/content/zh/2026-04-02-envoy-ai-gateway-monitoring/index.md
+++ b/content/zh/2026-04-02-envoy-ai-gateway-monitoring/index.md
@@ -4,9 +4,9 @@ date: 2026-04-02
 author: "吴晟"
 description: "基于 Envoy AI Gateway、SkyWalking OAP 10.4.0 和 BanyanDB 0.10.0,搭建面向 
AI/LLM 流量的全栈可观测方案。"
 tags:
-- GenAI
-- Envoy
-- Observability
+  - AI
+  - Cloud Native
+  - Engineering
 ---
 
 ## 问题:LLM 流量缺乏统一观测
diff --git a/content/zh/2026-04-05-virtual-genai-monitoring/index.md 
b/content/zh/2026-04-05-virtual-genai-monitoring/index.md
index 128847cb13a..0e542e0d68c 100644
--- a/content/zh/2026-04-05-virtual-genai-monitoring/index.md
+++ b/content/zh/2026-04-05-virtual-genai-monitoring/index.md
@@ -4,10 +4,9 @@ author: "邵一鸣"
 date: 2026-04-05
 description: "SkyWalking 10.4 增加了 Virtual GenAI 观测面板,本文将介绍该新特性的使用。"
 tags:
-- GenAI
-- LLM
-- Observability
-- Opentelemetry
+  - AI
+  - Engineering
+  - Tracing
 ---
 
 # 问题:当应用开始“吞噬”大模型,监控却留下了盲区
diff --git a/content/zh/2026-04-08-traceql/index.md 
b/content/zh/2026-04-08-traceql/index.md
index 19b34d08852..43815541b20 100644
--- a/content/zh/2026-04-08-traceql/index.md
+++ b/content/zh/2026-04-08-traceql/index.md
@@ -4,11 +4,8 @@ author: "万凯"
 date: 2026-04-08
 description: "SkyWalking 10.4 引入了 TraceQL 支持,实现了 Grafana Tempo 的 HTTP 查询 API,使 
Grafana 可以直接查询和可视化 SkyWalking 中存储的链路追踪数据。"
 tags:
-- TraceQL
-- Grafana
-- Tempo
-- Tracing
-- Zipkin
+  - Tracing
+  - Metrics
 ---
 
 # 使用 TraceQL 查询 SkyWalking 和 Zipkin 链路追踪数据并在 Grafana 中可视化
diff --git 
a/content/zh/2026-04-30-mini-program-monitoring-with-skywalking/index.md 
b/content/zh/2026-04-30-mini-program-monitoring-with-skywalking/index.md
index e364004e672..cfefde0023c 100644
--- a/content/zh/2026-04-30-mini-program-monitoring-with-skywalking/index.md
+++ b/content/zh/2026-04-30-mini-program-monitoring-with-skywalking/index.md
@@ -4,11 +4,9 @@ author: "吴晟"
 date: 2026-04-30
 description: "SkyAPM/mini-program-monitor 与 SkyWalking OAP 配合,把微信和支付宝小程序纳入 
SkyWalking 的端用户体验监控。本文聚焦数据通路、双平台抽象与 OAP 端集成。"
 tags:
-- Mini Program
-- WeChat
-- Alipay
-- OTLP
-- End User Monitoring
+  - Agents
+  - Community
+  - Tracing
 ---
 
 小程序是国内移动端体验里绕不过去的一块,但开源监控生态长期偏向 Web 浏览器和原生 App。SkyWalking 
自身已经覆盖了浏览器(client-js)、iOS、服务端,缺口主要在小程序和 
Android。[SkyAPM/mini-program-monitor](https://github.com/SkyAPM/mini-program-monitor)
 加入 SkyWalking 生态后,把这块缺口的小程序部分补上了 —— 一份 SDK 同时支持微信和支付宝,OAP 端的 component、MAL 
规则、UI 模板已经合进 main 分支,会随 10.5.0 一起发布。
diff --git 
a/content/zh/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
 
b/content/zh/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
index 2df0ac95719..e03ed077138 100644
--- 
a/content/zh/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
+++ 
b/content/zh/boost-root-cause-analysis-quickly-with-skywalking-new-trace-metrics-association-feature/index.md
@@ -4,8 +4,8 @@ date: 2022-12-19
 author: "吴晟"
 description: "SkyWalking 9.3.0 引入了新功能,可视化 trace 和相应 metric 之间的联系,帮助您快速实现问题诊断。"
 tags:
-- Trace
-- Metric
+  - Tracing
+  - Metrics
 ---
 
 ![Banner](banner.jpg)
diff --git 
a/content/zh/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md 
b/content/zh/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md
index c26128d80d3..aafd3b8dec2 100644
--- 
a/content/zh/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md
+++ 
b/content/zh/ebpf-enhanced-http-observability-l7-metrics-and-tracing/index.md
@@ -4,10 +4,9 @@ date: 2023-01-12
 author: "刘晗,吴晟"
 description: "本文将展示如何使用 Apache SkyWalking 与 eBPF 来增强 HTTP 观察性中的度量和追踪。"
 tags:
-- Trace
-- Metric
-- eBPF
-- HTTP
+  - Tracing
+  - Metrics
+  - Profiling
 ---
 
 ![banner](banner.jpg)
diff --git 
a/content/zh/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md 
b/content/zh/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md
index da30a896817..88ae3744677 100644
--- a/content/zh/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md
+++ b/content/zh/how-to-use-skywalking-for-distributed-tracing-in-istio/index.md
@@ -4,8 +4,7 @@ date: 2022-12-14
 author: "[宋净超 (tetrate.io)](https://jimmysong.io)"
 description: "这篇文章将介绍一些关于分布式追踪的基础知识以及如何在 Istio 中使用分布式追踪。"
 tags:
-- Istio
-- Service Mesh
+  - Cloud Native
 ---
 
 在云原生应用中,一次请求往往需要经过一系列的 API 
或后台服务处理才能完成,这些服务有些是并行的,有些是串行的,而且位于不同的平台或节点。那么如何确定一次调用的经过的服务路径和节点以帮助我们进行问题排查?这时候就需要使用到分布式追踪。
diff --git a/data/blog_topics.yml b/data/blog_topics.yml
new file mode 100644
index 00000000000..257729e4669
--- /dev/null
+++ b/data/blog_topics.yml
@@ -0,0 +1,73 @@
+# Single source of truth for blog topics (a.k.a. "tags").
+#
+# Used by:
+#   - layouts/blog/list.html  + layouts/zh/list.html     — sidebar topic cards
+#   - layouts/partials/blog-topic-styles.html            — generates the
+#                                                          
.blog-label[data-label="X"]
+#                                                          color rules at 
build time
+#
+# To add a 12th topic: append an entry here, then use that exact `name` as a
+# tag in any blog post's frontmatter. No template / SCSS changes required.
+#
+# Field reference:
+#   name      Canonical tag string. Match exactly in post frontmatter `tags:`.
+#   intro     One-line EN description, shown on /blog/ sidebar topic card.
+#   intro_zh  CN counterpart, shown on /zh/ sidebar topic card.
+#   color     bg/fg/border for the colored pill. Bg should be a light tint,
+#             fg the accessible darker text/icon color, border the same hue
+#             slightly deeper than bg.
+topics:
+  - name: Release
+    intro: Version announcements and release-engineering notes.
+    intro_zh: 各组件版本发布说明与发布工程实践。
+    color: { bg: "#e6f6ec", fg: "#1a7f43", border: "#bfe8cd" }
+
+  - name: AI
+    intro: Observing GenAI and LLM apps — token cost, latency, prompts and 
Spring AI.
+    intro_zh: 观察 GenAI 与 LLM 应用 —— 调用、成本、延迟、提示词与 Spring AI。
+    color: { bg: "#fde8f3", fg: "#be2069", border: "#f8cbe2" }
+
+  - name: Tracing
+    intro: Distributed tracing, OpenTelemetry, Zipkin and TraceQL.
+    intro_zh: 分布式追踪、OpenTelemetry、Zipkin 与 TraceQL。
+    color: { bg: "#fdecde", fg: "#c2580d", border: "#f6d4ba" }
+
+  - name: Metrics
+    intro: MAL, PromQL, dashboards and Grafana integrations.
+    intro_zh: MAL、PromQL、仪表盘与 Grafana 集成。
+    color: { bg: "#e2f1fd", fg: "#1d6fb8", border: "#c4e1f7" }
+
+  - name: Logging
+    intro: Trace-correlated logs, LAL pipelines and log analytics.
+    intro_zh: 与 Trace 关联的日志、LAL 处理管线与日志分析。
+    color: { bg: "#f0e7fd", fg: "#7c3aed", border: "#ddccfa" }
+
+  - name: Profiling
+    intro: eBPF, async-profile and continuous profiling deep-dives.
+    intro_zh: eBPF、异步采样与持续 Profiling 深度解析。
+    color: { bg: "#def5e7", fg: "#11814b", border: "#bce8cf" }
+
+  - name: Storage
+    intro: BanyanDB, Elasticsearch, ClickHouse and other storage backends.
+    intro_zh: BanyanDB、Elasticsearch、ClickHouse 等存储后端。
+    color: { bg: "#e0f7fa", fg: "#0e7490", border: "#bdeaf1" }
+
+  - name: Agents
+    intro: Language and framework probes — Java, Go, Ruby, browser EUM, 
mobile, MQ clients.
+    intro_zh: 各语言与框架探针:Java、Go、Ruby、浏览器、移动端与消息队列客户端。
+    color: { bg: "#e8eafd", fg: "#4f46e5", border: "#d3d7fa" }
+
+  - name: Cloud Native
+    intro: Kubernetes, service mesh, sidecars and serverless observability.
+    intro_zh: Kubernetes、服务网格、Sidecar 与 Serverless 可观测性。
+    color: { bg: "#e6f3fe", fg: "#0369a1", border: "#c5e4fb" }
+
+  - name: Engineering
+    intro: Architecture, performance and the internals of OAP and BanyanDB.
+    intro_zh: 架构设计、性能优化与 OAP / BanyanDB 内部实现。
+    color: { bg: "#fef3e2", fg: "#b45309", border: "#fbe0bb" }
+
+  - name: Community
+    intro: Releases, events, OSPP, mentorship and user case studies.
+    intro_zh: 版本发布、活动、OSPP、导师计划与用户案例分享。
+    color: { bg: "#eef1f5", fg: "#5b6573", border: "#e1e6ee" }
diff --git a/layouts/blog/baseof.html b/layouts/blog/baseof.html
index a4a31f703e9..de48a5468a3 100644
--- a/layouts/blog/baseof.html
+++ b/layouts/blog/baseof.html
@@ -3,6 +3,7 @@
   <head>
     {{ partial "head.html" . }}
     <title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} 
| {{ end }}{{ .Site.Title }}{{ end }}</title>
+    {{ partial "blog-topic-styles.html" . }}
   </head>
   <body class="td-{{ .Kind }} td-blog">
     <header>
@@ -13,11 +14,10 @@
       {{- /* single post: keep the readable two-column layout with TOC */ -}}
       <div class="td-main">
         <div class="row container container-center">
-          <main class="col-12 col-md-12 col-xl-10 pl-md-4 pr-md-4" role="main">
+          <main class="col-12 col-md-12 col-xl-9 pl-md-4 pr-md-4" role="main">
             {{ block "main" . }}{{ end }}
           </main>
-          <div class="d-none d-xl-block col-xl-2 td-toc d-print-none">
-            {{ partial "tags.html" . }}
+          <div class="d-none d-xl-block col-xl-3 td-toc d-print-none">
             {{ partial "toc.html" . }}
           </div>
         </div>
diff --git a/layouts/blog/content.html b/layouts/blog/content.html
new file mode 100644
index 00000000000..4afce09c7ec
--- /dev/null
+++ b/layouts/blog/content.html
@@ -0,0 +1,25 @@
+{{- /* Shadows themes/docsy/layouts/blog/content.html.
+       Renders the post's tags inline as colored topic pills (matching the
+       /blog/ listing style) instead of the theme's "Tags | …" link list. */ 
-}}
+<div class="td-content">
+  <h1>{{ .Title }}</h1>
+  {{ with .Params.description }}<div class="lead">{{ . | markdownify 
}}</div>{{ end }}
+  <div class="td-byline mb-3">
+    {{ with .Params.author }}{{ T "post_byline_by" }} <b>{{ . | markdownify 
}}</b> |{{ end }}
+    <time datetime="{{ $.Date.Format "2006-01-02" }}" class="text-muted">{{ 
$.Date.Format $.Site.Params.time_format_blog }}</time>
+  </div>
+  {{ with .Params.tags }}
+  <div class="post-tags-list post-tags-list--inline">
+    {{ range . }}
+    <a class="blog-label" data-label="{{ . }}" href="{{ printf "/tags/%s/" (. 
| urlize) | relLangURL }}">{{ . }}</a>
+    {{ end }}
+  </div>
+  {{ end }}
+  {{ .Content }}
+  {{ if (.Site.Config.Services.Disqus.Shortname) }}
+    <br />
+    {{ partial "disqus-comment.html" . }}
+    <br />
+  {{ end }}
+  {{ partial "pager.html" . }}
+</div>
diff --git a/layouts/blog/list.html b/layouts/blog/list.html
index e76ce385675..18697e978d4 100644
--- a/layouts/blog/list.html
+++ b/layouts/blog/list.html
@@ -4,7 +4,17 @@
 {{- else -}}
 {{ $.Scratch.Set "blog-pages" .Pages }}
 {{- end -}}
-{{ $pag := .Paginate (($.Scratch.Get "blog-pages").GroupByDate (i18n "year")) 
}}
+{{ $pages := ($.Scratch.Get "blog-pages") }}
+{{ $groups := $pages.GroupByDate (i18n "year") }}
+
+{{- /* Tag list derived only from blog posts (Site.Taxonomies.tags would
+       also include docs frontmatter, which is unrelated). */ -}}
+{{ $allTags := slice }}
+{{ range $pages }}{{ range .Params.tags }}{{ $allTags = $allTags | append . 
}}{{ end }}{{ end }}
+{{ $blogTags := sort (uniq $allTags) }}
+
+{{- /* Topics (name + intro + color) are defined in data/blog_topics.yml. */ 
-}}
+{{ $topics := .Site.Data.blog_topics.topics }}
 
 <section class="blog-hero">
   <div class="container">
@@ -15,29 +25,52 @@
 </section>
 
 <div class="container blog-wrap">
-  {{ range $pag.PageGroups }}
-  <h2 class="blog-year">{{ T "post_posts_in" }} {{ .Key }}</h2>
-  <div class="blog-grid">
-    {{ range .Pages }}
-    <article class="blog-card">
-      {{ with .Params.tags }}
-      <div class="blog-labels">
-        {{ range . }}<span class="blog-label" data-label="{{ . }}">{{ . 
}}</span>{{ end }}
+  <div class="blog-layout">
+    <div class="blog-content">
+      {{ range $groups }}
+      <h2 class="blog-year">{{ T "post_posts_in" }} {{ .Key }}</h2>
+      <div class="blog-grid">
+        {{ range .Pages }}
+        <article class="blog-card">
+          {{ with .Params.tags }}
+          <div class="blog-labels">
+            {{ range . }}<a class="blog-label" data-label="{{ . }}" href="{{ 
printf "/tags/%s/" (. | urlize) | relLangURL }}">{{ . }}</a>{{ end }}
+          </div>
+          {{ end }}
+          <h3 class="blog-card-title"><a href="{{ .RelPermalink }}">{{ 
.LinkTitle }}</a></h3>
+          <p class="blog-card-preview">{{ with .Description }}{{ . }}{{ else 
}}{{ .Plain | safeHTML | truncate 160 }}{{ end }}</p>
+          <div class="blog-card-foot">
+            <span class="blog-date">{{ .Date.Format "Jan 2, 2006" }}</span>
+            {{ with .Params.author }}<span class="blog-author">{{ . | 
markdownify }}</span>{{ end }}
+          </div>
+        </article>
+        {{ end }}
       </div>
       {{ end }}
-      <h3 class="blog-card-title"><a href="{{ .RelPermalink }}">{{ .LinkTitle 
}}</a></h3>
-      <p class="blog-card-preview">{{ with .Description }}{{ . }}{{ else }}{{ 
.Plain | safeHTML | truncate 160 }}{{ end }}</p>
-      <div class="blog-card-foot">
-        <span class="blog-date">{{ .Date.Format "Jan 2, 2006" }}</span>
-        {{ with .Params.author }}<span class="blog-author">{{ . | markdownify 
}}</span>{{ end }}
-      </div>
-    </article>
-    {{ end }}
-  </div>
-  {{ end }}
+    </div>
 
-  <div class="blog-pagination">
-    {{ template "_internal/pagination.html" . }}
+    {{- /* Right sidebar: "Browse topics" — one compact card per canonical tag,
+           clicking opens /tags/<term>/. */ -}}
+    <aside class="blog-sidebar">
+      <div class="blog-sidebar-inner">
+        <h2 class="blog-sidebar-head">Browse topics</h2>
+        <div class="album-grid is-sidebar">
+          {{ range $topics }}
+          {{ $t := .name }}
+          {{ $tagged := where $pages ".Params.tags" "intersect" (slice $t) }}
+          {{ if gt (len $tagged) 0 }}
+          <a class="album-card" data-label="{{ $t }}" href="{{ printf 
"/tags/%s/" ($t | urlize) | relLangURL }}">
+            <div class="album-top">
+              <span class="blog-label" data-label="{{ $t }}">{{ $t }}</span>
+              <span class="album-count">{{ len $tagged }}</span>
+            </div>
+            <p class="album-intro">{{ .intro }}</p>
+          </a>
+          {{ end }}
+          {{ end }}
+        </div>
+      </div>
+    </aside>
   </div>
 </div>
 {{ end }}
diff --git a/layouts/partials/blog-topic-styles.html 
b/layouts/partials/blog-topic-styles.html
new file mode 100644
index 00000000000..c67af32282e
--- /dev/null
+++ b/layouts/partials/blog-topic-styles.html
@@ -0,0 +1,8 @@
+{{- /* Emits one .blog-label[data-label="…"] rule per topic in
+       data/blog_topics.yml. Include from any baseof that renders blog labels
+       (blog/baseof.html, zh/baseof.html, tags/baseof.html). */ -}}
+<style>
+{{- range .Site.Data.blog_topics.topics -}}
+.blog-label[data-label="{{ .name }}"]{background:{{ .color.bg }};color:{{ 
.color.fg }};border-color:{{ .color.border }};}
+{{ end -}}
+</style>
diff --git a/layouts/partials/tags-zh.html b/layouts/partials/tags-zh.html
new file mode 100644
index 00000000000..d1fa6a71d81
--- /dev/null
+++ b/layouts/partials/tags-zh.html
@@ -0,0 +1,2 @@
+{{- /* CN counterpart of tags.html — also intentionally empty (tags render
+       inline above the post body via layouts/zh/content.html). */ -}}
diff --git a/layouts/partials/tags.html b/layouts/partials/tags.html
new file mode 100644
index 00000000000..440a84f0427
--- /dev/null
+++ b/layouts/partials/tags.html
@@ -0,0 +1,4 @@
+{{- /* Shadows themes/docsy/layouts/partials/tags.html.
+       Empty on purpose: the post's tags are now rendered inline above the
+       post body (see layouts/blog/content.html), so the right sidebar holds
+       only the TOC and starts flush at the top of the column. */ -}}
diff --git a/layouts/tags/baseof.html b/layouts/tags/baseof.html
new file mode 100644
index 00000000000..0102f412666
--- /dev/null
+++ b/layouts/tags/baseof.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="{{ .Site.Language.Lang }}" class="no-js">
+  <head>
+    {{ partial "head.html" . }}
+    <title>{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}</title>
+    {{ partial "blog-topic-styles.html" . }}
+  </head>
+  <body class="td-{{ .Kind }} td-blog">
+    <header>
+      {{ partial "navbar.html" . }}
+    </header>
+    <div class="container-fluid td-outer">
+      <main class="td-main" role="main">
+        {{ block "main" . }}{{ end }}
+      </main>
+      {{ partial "footer.html" . }}
+    </div>
+    {{ partial "event-popup.html" . }}
+    {{ partial "sidebar-skywalking.html" . }}
+    {{ partial "scripts.html" . }}
+  </body>
+</html>
diff --git a/layouts/blog/list.html b/layouts/tags/term.html
similarity index 51%
copy from layouts/blog/list.html
copy to layouts/tags/term.html
index e76ce385675..a2635741f3c 100644
--- a/layouts/blog/list.html
+++ b/layouts/tags/term.html
@@ -1,28 +1,28 @@
 {{ define "main" }}
-{{- if .Parent.IsHome -}}
-{{ $.Scratch.Set "blog-pages" (where .Site.RegularPages "Section" .Section) }}
-{{- else -}}
-{{ $.Scratch.Set "blog-pages" .Pages }}
-{{- end -}}
-{{ $pag := .Paginate (($.Scratch.Get "blog-pages").GroupByDate (i18n "year")) 
}}
+{{- /* Tag term page: list posts tagged with .Title, blog-section only,
+       paginated. Hugo's .Pages for a term includes anything tagged this
+       way — filter to blog so docs frontmatter tags don't bleed in. */ -}}
+{{ $blogPages := where .Pages "Section" "blog" }}
+{{ $pag := .Paginate $blogPages 12 }}
 
 <section class="blog-hero">
   <div class="container">
-    <span class="eyebrow">BLOG</span>
-    <h1>Engineering &amp; community notes</h1>
-    <p>Release deep-dives, architecture, integrations and field reports from 
the SkyWalking community — newest first.</p>
+    <a class="bf-back" href="{{ "/blog/" | relLangURL }}">← All posts</a>
+    <div class="tag-hero-top">
+      <span class="blog-label tag-hero-chip" data-label="{{ .Title }}">{{ 
.Title }}</span>
+      <span class="tag-hero-count">{{ len $blogPages }} posts</span>
+    </div>
+    <h1>Posts tagged &ldquo;{{ .Title }}&rdquo;</h1>
   </div>
 </section>
 
 <div class="container blog-wrap">
-  {{ range $pag.PageGroups }}
-  <h2 class="blog-year">{{ T "post_posts_in" }} {{ .Key }}</h2>
   <div class="blog-grid">
-    {{ range .Pages }}
+    {{ range $pag.Pages }}
     <article class="blog-card">
       {{ with .Params.tags }}
       <div class="blog-labels">
-        {{ range . }}<span class="blog-label" data-label="{{ . }}">{{ . 
}}</span>{{ end }}
+        {{ range . }}<a class="blog-label" data-label="{{ . }}" href="{{ 
printf "/tags/%s/" (. | urlize) | relLangURL }}">{{ . }}</a>{{ end }}
       </div>
       {{ end }}
       <h3 class="blog-card-title"><a href="{{ .RelPermalink }}">{{ .LinkTitle 
}}</a></h3>
@@ -34,7 +34,6 @@
     </article>
     {{ end }}
   </div>
-  {{ end }}
 
   <div class="blog-pagination">
     {{ template "_internal/pagination.html" . }}
diff --git a/layouts/zh/baseof.html b/layouts/zh/baseof.html
index cbed3d8a9d1..0f4a9b9a87b 100644
--- a/layouts/zh/baseof.html
+++ b/layouts/zh/baseof.html
@@ -3,6 +3,7 @@
   <head>
     {{ partial "head.html" . }}
     <title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} 
| {{ end }}{{ .Site.Title }}{{ end }}</title>
+    {{ partial "blog-topic-styles.html" . }}
   </head>
   <body class="td-{{ .Kind }} td-blog">
     <header>
@@ -13,11 +14,10 @@
       {{- /* single post: keep the readable two-column layout with TOC */ -}}
       <div class="td-main">
         <div class="row container container-center">
-          <main class="col-12 col-md-12 col-xl-10 pl-md-4 pr-md-4" role="main">
+          <main class="col-12 col-md-12 col-xl-9 pl-md-4 pr-md-4" role="main">
             {{ block "main" . }}{{ end }}
           </main>
-          <div class="toc d-none d-xl-block d-md-none col-xl-2 td-toc 
d-print-none">
-            {{ partial "tags-zh.html" . }}
+          <div class="toc d-none d-xl-block d-md-none col-xl-3 td-toc 
d-print-none">
             {{ partial "toc.html" . }}
           </div>
         </div>
diff --git a/layouts/zh/content.html b/layouts/zh/content.html
new file mode 100644
index 00000000000..51b1e906d2a
--- /dev/null
+++ b/layouts/zh/content.html
@@ -0,0 +1,23 @@
+{{- /* CN counterpart of blog/content.html. */ -}}
+<div class="td-content">
+  <h1>{{ .Title }}</h1>
+  {{ with .Params.description }}<div class="lead">{{ . | markdownify 
}}</div>{{ end }}
+  <div class="td-byline mb-3">
+    {{ with .Params.author }}{{ T "post_byline_by" }} <b>{{ . | markdownify 
}}</b> |{{ end }}
+    <time datetime="{{ $.Date.Format "2006-01-02" }}" class="text-muted">{{ 
$.Date.Format $.Site.Params.time_format_blog }}</time>
+  </div>
+  {{ with .Params.tags }}
+  <div class="post-tags-list post-tags-list--inline">
+    {{ range . }}
+    <a class="blog-label" data-label="{{ . }}" href="{{ printf "/tags/%s/" (. 
| urlize) | relLangURL }}">{{ . }}</a>
+    {{ end }}
+  </div>
+  {{ end }}
+  {{ .Content }}
+  {{ if (.Site.Config.Services.Disqus.Shortname) }}
+    <br />
+    {{ partial "disqus-comment.html" . }}
+    <br />
+  {{ end }}
+  {{ partial "pager.html" . }}
+</div>
diff --git a/layouts/zh/list.html b/layouts/zh/list.html
index 424b1e0729e..3c2344391d1 100644
--- a/layouts/zh/list.html
+++ b/layouts/zh/list.html
@@ -4,7 +4,14 @@
 {{- else -}}
 {{ $.Scratch.Set "blog-pages" .Pages }}
 {{- end -}}
-{{ $pag := .Paginate (($.Scratch.Get "blog-pages").GroupByDate (i18n "year")) 
}}
+{{ $pages := ($.Scratch.Get "blog-pages") }}
+{{ $groups := $pages.GroupByDate (i18n "year") }}
+
+{{ $allTags := slice }}
+{{ range $pages }}{{ range .Params.tags }}{{ $allTags = $allTags | append . 
}}{{ end }}{{ end }}
+{{ $blogTags := sort (uniq $allTags) }}
+
+{{ $topics := .Site.Data.blog_topics.topics }}
 
 <section class="blog-hero">
   <div class="container">
@@ -15,29 +22,50 @@
 </section>
 
 <div class="container blog-wrap">
-  {{ range $pag.PageGroups }}
-  <h2 class="blog-year">{{ .Key }} 年</h2>
-  <div class="blog-grid">
-    {{ range .Pages }}
-    <article class="blog-card">
-      {{ with .Params.tags }}
-      <div class="blog-labels">
-        {{ range . }}<span class="blog-label" data-label="{{ . }}">{{ . 
}}</span>{{ end }}
+  <div class="blog-layout">
+    <div class="blog-content">
+      {{ range $groups }}
+      <h2 class="blog-year">{{ .Key }} 年</h2>
+      <div class="blog-grid">
+        {{ range .Pages }}
+        <article class="blog-card">
+          {{ with .Params.tags }}
+          <div class="blog-labels">
+            {{ range . }}<a class="blog-label" data-label="{{ . }}" href="{{ 
printf "/tags/%s/" (. | urlize) | relLangURL }}">{{ . }}</a>{{ end }}
+          </div>
+          {{ end }}
+          <h3 class="blog-card-title"><a href="{{ .RelPermalink }}">{{ 
.LinkTitle }}</a></h3>
+          <p class="blog-card-preview">{{ with .Description }}{{ . }}{{ else 
}}{{ .Plain | safeHTML | truncate 160 }}{{ end }}</p>
+          <div class="blog-card-foot">
+            <span class="blog-date">{{ .Date.Format "2006-01-02" }}</span>
+            {{ with .Params.author }}<span class="blog-author">{{ . | 
markdownify }}</span>{{ end }}
+          </div>
+        </article>
+        {{ end }}
       </div>
       {{ end }}
-      <h3 class="blog-card-title"><a href="{{ .RelPermalink }}">{{ .LinkTitle 
}}</a></h3>
-      <p class="blog-card-preview">{{ with .Description }}{{ . }}{{ else }}{{ 
.Plain | safeHTML | truncate 160 }}{{ end }}</p>
-      <div class="blog-card-foot">
-        <span class="blog-date">{{ .Date.Format "2006-01-02" }}</span>
-        {{ with .Params.author }}<span class="blog-author">{{ . | markdownify 
}}</span>{{ end }}
-      </div>
-    </article>
-    {{ end }}
-  </div>
-  {{ end }}
+    </div>
 
-  <div class="blog-pagination">
-    {{ template "_internal/pagination.html" . }}
+    <aside class="blog-sidebar">
+      <div class="blog-sidebar-inner">
+        <h2 class="blog-sidebar-head">按主题浏览</h2>
+        <div class="album-grid is-sidebar">
+          {{ range $topics }}
+          {{ $t := .name }}
+          {{ $tagged := where $pages ".Params.tags" "intersect" (slice $t) }}
+          {{ if gt (len $tagged) 0 }}
+          <a class="album-card" data-label="{{ $t }}" href="{{ printf 
"/tags/%s/" ($t | urlize) | relLangURL }}">
+            <div class="album-top">
+              <span class="blog-label" data-label="{{ $t }}">{{ $t }}</span>
+              <span class="album-count">{{ len $tagged }}</span>
+            </div>
+            <p class="album-intro">{{ .intro_zh }}</p>
+          </a>
+          {{ end }}
+          {{ end }}
+        </div>
+      </div>
+    </aside>
   </div>
 </div>
 {{ end }}

Reply via email to