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

dengliming pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shenyu-website.git


The following commit(s) were added to refs/heads/main by this push:
     new c8dad9fb4aa chore: remove leftover template code (#1144)
c8dad9fb4aa is described below

commit c8dad9fb4aa4ae8321021da68518b7ce1e8c01cf
Author: vansh <[email protected]>
AuthorDate: Sun Sep 27 16:35:29 2026 +0530

    chore: remove leftover template code (#1144)
    
    Signed-off-by: vansh-nagar <[email protected]>
---
 docusaurus.config.js                               |   9 +-
 i18n/zh/code.json                                  | 253 ------------------
 .../docusaurus-plugin-content-pages/download.mdx   |   4 +-
 i18n/zh/docusaurus-theme-classic/footer.json       |  70 -----
 progress.md                                        |  39 ---
 src/clientModules/fix-error.js                     |  81 ------
 ...ent.module.css => DownloadComponent.module.css} |   2 +-
 ...{DownloadCompoent.tsx => DownloadComponent.tsx} |   6 +-
 src/components/HomepageFeatures.js                 |  64 -----
 src/components/HomepageFeatures.module.css         |  13 -
 src/components/TeamProfileCards/index.tsx          | 215 ----------------
 src/data/blogInfo.js                               | 262 -------------------
 src/data/newsInfo.js                               | 284 ---------------------
 src/pages/blog.module.css                          | 183 -------------
 src/pages/blog.tsx                                 |  94 -------
 src/pages/download.mdx                             |   5 +-
 src/pages/helloReact.js                            |  24 --
 src/pages/index.tsx                                |   2 -
 src/pages/markdown-page.md                         |   7 -
 src/pages/news.module.css                          | 117 ---------
 src/pages/news.tsx                                 |  50 ----
 src/theme/BlogSidebar/index.tsx                    |  27 +-
 22 files changed, 28 insertions(+), 1783 deletions(-)

diff --git a/docusaurus.config.js b/docusaurus.config.js
index 3a847f00000..93b332c817d 100755
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -17,8 +17,8 @@ module.exports = {
       onBrokenMarkdownLinks: "warn",
     },
   },
-  organizationName: "apache", // Usually your GitHub org/user name.
-  projectName: "shenyu", // Usually your repo name.
+  organizationName: "apache",
+  projectName: "shenyu",
   i18n: {
     defaultLocale: "en",
     locales: ["en", "zh"],
@@ -138,7 +138,6 @@ module.exports = {
               banner: "none",
             },
           },
-          // Please change this to your repo.
           editUrl: "https://github.com/apache/shenyu-website/edit/main/";,
         },
         blog: {
@@ -148,12 +147,8 @@ module.exports = {
           onInlineAuthors: "ignore",
           onUntruncatedBlogPosts: "ignore",
           editLocalizedFiles: true,
-          // Please change this to your repo.
           editUrl: "https://github.com/apache/shenyu-website/edit/main/";,
         },
-        pages: {
-          exclude: ["**/blog.tsx", "**/news.tsx"],
-        },
         theme: {
           customCss: require.resolve("./src/css/custom.css"),
         },
diff --git a/i18n/zh/code.json b/i18n/zh/code.json
index 1ae57c0fa7f..31f24ff9573 100755
--- a/i18n/zh/code.json
+++ b/i18n/zh/code.json
@@ -9,57 +9,6 @@
   "Docusaurus with Keytar": {
     "message": "Docusaurus with Keytar"
   },
-  "Powered by Markdown": {
-    "message": "Powered by Markdown"
-  },
-  "Save time and focus on your project's documentation. Simply write docs and 
blog posts with Markdown/MDX and Docusaurus will publish a set of static HTML 
files ready to serve. You can even embed JSX components into your Markdown 
thanks to MDX.": {
-    "message": "Save time and focus on your project's documentation. Simply 
write docs and blog posts with Markdown/MDX and Docusaurus will publish a set 
of static HTML files ready to serve. You can even embed JSX components into 
your Markdown thanks to MDX."
-  },
-  "Built Using React": {
-    "message": "Built Using React"
-  },
-  "Extend or customize your project's layout by reusing React. Docusaurus can 
be extended while reusing the same header and footer.": {
-    "message": "Extend or customize your project's layout by reusing React. 
Docusaurus can be extended while reusing the same header and footer."
-  },
-  "Ready for Translations": {
-    "message": "Ready for Translations"
-  },
-  "Localization comes pre-configured. Use Crowdin to translate your docs into 
over 70 languages.": {
-    "message": "Localization comes pre-configured. Use Crowdin to translate 
your docs into over 70 languages."
-  },
-  "Document Versioning": {
-    "message": "Document Versioning"
-  },
-  "Support users on all versions of your project. Document versioning helps 
you keep documentation in sync with project releases.": {
-    "message": "Support users on all versions of your project. Document 
versioning helps you keep documentation in sync with project releases."
-  },
-  "Content Search": {
-    "message": "Content Search"
-  },
-  "Make it easy for your community to find what they need in your 
documentation. We proudly support Algolia documentation search.": {
-    "message": "Make it easy for your community to find what they need in your 
documentation. We proudly support Algolia documentation search."
-  },
-  "team.profile.websiteLinkLabel": {
-    "message": "website"
-  },
-  "team.profile.Alexey Pyltsyn.body": {
-    "message": "Obsessed open-source enthusiast 👋 Eternal amateur at 
everything 🤷‍♂️ Maintainer of Russian docs on PHP, React, Kubernetes and much 
more 🧐"
-  },
-  "team.profile.Joel Marcey.body": {
-    "message": "Docusaurus founder and now ever grateful Docusaurus 
cheerleader to those who actually write code for it."
-  },
-  "team.profile.Sebastien Lorber.body": {
-    "message": "React lover since 2014. Freelance, helping Facebook ship 
Docusaurus v2. He writes regularly, on his {website} and {devto}."
-  },
-  "team.profile.Yangshun Tay.body": {
-    "message": "Full Front End Stack developer who likes working on the 
Jamstack. Working on Docusaurus made him Facebook's unofficial part-time Open 
Source webmaster, which is an awesome role to be in."
-  },
-  "team.profile.Endilie Yacop Sucipto.body": {
-    "message": "Maintainer @docusaurus · 🔥🔥🔥"
-  },
-  "team.profile.Wei Gao.body": {
-    "message": "🏻‍🌾 Work in progress React developer, maintains Docusaurus, 
writes docs and spams this world with many websites."
-  },
   "theme.NotFound.title": {
     "message": "Page Not Found",
     "description": "The title of the 404 page"
@@ -295,199 +244,6 @@
   "Read More": {
     "message": "阅读更多"
   },
-  "SPI Source Code Analysis": {
-    "message": "SPI设计实现源码分析"
-  },
-  "Recently,when I read the source code of open source project Apache Shenyu 
API gateway,I find and many core components of the gateway are loaded with the 
SPI module. Here I will analyzes the source code of SPI module in Shenyu 
gateway.": {
-    "message": 
"最近研读Apache开源项目Shenyu网关的源码,网关的多个核心组件加载都用到了SPI模块。本文就Shenyu中的SPI设计和源码实现进行分析。"
-  },
-  "MatchStrategy -- analyze the design based on SPI": {
-    "message": "MatchStrategy--基于SPI的代码分析"
-  },
-  "Gateway applications need to support a variety of load balancing 
strategies, including random,Hashing, RoundRobin and so on. In Apache Shenyu 
gateway, it not only realizes such traditional algorithms, but also makes 
smoother traffic processing for the entry of server nodes through detailed 
processing such as traffic warm-up, so as to obtain better overall stability. 
In this article, let's walk through how Apache Shenyu is designed and 
implemented this part of the function.": {
-    "message": "Apache Shenyu 网关的各个Plugin(包括Dubbo, gRPC,Spring-cloud等) 
中,routing参数均设计为可以接受多个条件的组合。 为了实现这样的目的,遵循其SPI的机制进行将参数及行为抽象为如下三部分,这些SPI 
在shenyu-plugin-base模组中实现。"
-  },
-  "PredicateJudge -- analyze the design based on SPI": {
-    "message": "PredicateJudge-- 基于SPI的设计实现分析"
-  },
-  "In most of the plugins ( such as Dubbo, gRPC,Spring-cloud, etc) of Apache 
Shenyu, the routingparameters are designed to support the combination of 
multiple conditions. In order to realize such requirements, the parameters and 
behaviors are abstracted to three parts according to its SPI mechanism, and 
implemented in shenyu-plugin-base module.": {
-    "message": "灵活的插件和规则定义,是Shenyu网关的一大特色。它以插件形式支持多种网络协议和多种流行的微服务框架,如Dubbo, 
gRPC和 Spring-Cloud 等。 为了实现对各种协议及插件的配置规则的解析,网关在规则策略解析方面,采用了优雅的SPI(Service 
Provider Interface)实现,当添加新的插件时,规则解析部分可以沿用现有实现或采用SPI机制快速实现,具有良好的可扩展性。"
-  },
-  "LoadBalance SPI Source Code Analysis": {
-    "message": "LoadBalance SPI 代码分析"
-  },
-  "Apache Shenyu has been identified as a gateway application which supports a 
variety of protocols and microservice frameworks such as Dubbo, gRPC, 
Spring-Cloud, etc. To do this, the product has accomplished an elegant SPI 
(Service Provider Interface) as its foundation, and make the Rule data parsing 
and predicting program very simple , resiliency and security. As to rule data 
parsing processing, the SPI design increases the product's scalability. When 
appending new plugin, in most case [...]
-    "message": "网关应用需要支持多种负载均衡的方案,包括随机选择、Hash、轮询等方式。Apache 
Shenyu网关中不仅实现了传统网关的这些均衡策略,还通过流量预热(warmup)等细节处理,对服务器节点的加入,做了更平滑的流量处理,获得了更好的整体稳定性。让我们来看看Shenyu是是如何设计和实现这部分功能的。"
-  },
-  "RateLimiter SPI code analysis": {
-    "message": "RateLimiter SPI 代码分析"
-  },
-  "Rate limiter is a very important integral of gateway application, to deal 
with high traffic. When the system is attacked abnormally by a large number of 
traffic gathered in a short time; When there are a large number of lower 
priority request need to be slow down or else it will effect your high priority 
transactions; Or sometimes your system can not afford the regular traffic; in 
these scenarios, we need to start rate limiter component to protect our system, 
through rejection, wait,  [...]
-    "message": 
"限流是网关必备的功能,用来应对高并发请求的场景。当系统受到异常攻击,短期内聚集了大量的流量;当有大量低级别的请求,处理这些请求会影响关键业务的处理,需要限制这些请求的访问速度;
 
或者系统内部出现一些异常,不能满负荷的服务整个应用请求等等。这些情况下,都需要启用限流来保护系统。可以拒绝服务、等待或降级处理,将流量限制到系统可接受的量,或者只允许某些域名(或某些业务)的请求优先处理。"
-  },
-  "RegisterCenter": {
-    "message": "注册中心"
-  },
-  "Register Center Source Code Analysis of Http Register": {
-    "message": "注册中心实现原理之Http注册"
-  },
-  "In ShenYu gateway, the registration center is used to register the client 
information to shenyu-admin, admin then synchronizes this information to the 
gateway through data synchronization, and the gateway completes traffic 
filtering through these data. The client information mainly includes interface 
information and URI information.": {
-    "message": 
"在ShenYu网关中,注册中心是用于将客户端信息注册到shenyu-admin,admin再通过数据同步将这些信息同步到网关,网关通过这些数据完成流量筛选。客户端信息主要包括接口信息和URI信息。"
-  },
-  "Start": {
-    "message": "快速开始"
-  },
-  "Apache ShenYu Start Demo": {
-    "message": "Apache ShenYu 启动示例"
-  },
-  "Guide for New Contributors to Start avoid Pitfalls": {
-    "message": "Apache ShenYu 新人开发者启动及开发防踩坑指南"
-  },
-  "As a first-time developer in the `Shenyu` community, I encountered some 
\"Pitfalls\" that were not mentioned in the tutorials I followed to start and 
develop the project. I have documented the detailed steps I took to start 
`shenyu`, `shenyu-dashboard`, `shenyu-website` in this blog, hoping to help 
more new contributors in the community.": {
-    "message": "作为 `Shenyu` 社区初来乍到的开发者,我在按照相关教程进行项目启动及开发的过程中,遇到了一些教程中并未提及到的 
“坑” ,我将我启动`shenyu` , `shenyu-dashboard`, `shenyu-website` 
的详细步骤记录在这篇博客中,希望可以帮到社区中更多的新人开发者。"
-  },
-  "DataSync": {
-    "message": "数据同步"
-  },
-  "Etcd Data Synchronization Source Code Analysis": {
-    "message": "Etcd数据同步源码分析"
-  },
-  "In ShenYu gateway, data synchronization refers to how to synchronize the 
updated data to the gateway after the data is sent in the background management 
system. The Apache ShenYu gateway currently supports data synchronization for 
ZooKeeper, WebSocket, http long poll, Nacos, Etcd and Consul. The main content 
of this article is based on Etcd data synchronization source code analysis.": {
-    "message": "在ShenYu网关中,数据同步是指,当在后台管理系统中,数据发送了更新后,如何将更新的数据同步到网关中。Apache 
ShenYu 网关当前支持ZooKeeper、WebSocket、Http长轮询、Nacos 、Etcd 和 Consul 
进行数据同步。本文的主要内容是基于Etcd的数据同步源码分析。"
-  },
-  "Http Long Polling Data Synchronization Source Code Analysis": {
-    "message": "Http长轮询数据同步源码分析"
-  },
-  "In ShenYu gateway, data synchronization refers to how to synchronize the 
updated data to the gateway after the data is sent in the background management 
system. The Apache ShenYu gateway currently supports data synchronization for 
ZooKeeper, WebSocket, http long poll, Nacos, etcd and Consul. The main content 
of this article is based on http long poll data synchronization source code 
analysis.": {
-    "message": "在ShenYu网关中,数据同步是指,当在后台管理系统中,数据发送了更新后,如何将更新的数据同步到网关中。Apache 
ShenYu 网关当前支持ZooKeeper、WebSocket、Http长轮询、Nacos 、Etcd 和 Consul 
进行数据同步。本文的主要内容是基于Http长轮询的数据同步源码分析。"
-  },
-  "Nacos Data Synchronization Source Code Analysis": {
-    "message": "Nacos数据同步源码分析"
-  },
-  "In ShenYu gateway, data synchronization refers to how to synchronize the 
updated data to the gateway after the data is sent in the background management 
system. The Apache ShenYu gateway currently supports data synchronization for 
ZooKeeper, WebSocket, http long poll, Nacos, etcd and Consul. The main content 
of this article is based on Nacos data synchronization source code analysis.": {
-    "message": "在ShenYu网关中,数据同步是指,当在后台管理系统中,数据发送了更新后,如何将更新的数据同步到网关中。Apache 
ShenYu 网关当前支持ZooKeeper、WebSocket、Http长轮询、Nacos 、Etcd 和 Consul 
进行数据同步。本文的主要内容是基于Nacos的数据同步源码分析。"
-  },
-  "WebSocket Data Synchronization Source Code Analysis": {
-    "message": "WebSocket数据同步源码分析"
-  },
-  "In ShenYu gateway, data synchronization refers to how to synchronize the 
updated data to the gateway after the data is sent in the background management 
system. The Apache ShenYu gateway currently supports data synchronization for 
ZooKeeper, WebSocket, http long poll, Nacos, etcd and Consul. The main content 
of this article is based on WebSocket data synchronization source code 
analysis.": {
-    "message": "在ShenYu网关中,数据同步是指,当在后台管理系统中,数据发送了更新后,如何将更新的数据同步到网关中。Apache 
ShenYu 网关当前支持ZooKeeper、WebSocket、Http长轮询、Nacos 、etcd 和 Consul 
进行数据同步。本文的主要内容是基于WebSocket的数据同步源码分析。"
-  },
-  "ZooKeeper Data Synchronization Source Code Analysis": {
-    "message": "ZooKeeper数据同步源码分析"
-  },
-  "Integration Test": {
-    "message": "集成测试"
-  },
-  "Integration Test Analysis": {
-    "message": "集成剖析测试"
-  },
-  "This article will provide an in-depth analysis of Apache ShenYu's 
integration tests.": {
-    "message": "这篇文章将会对Apache ShenYu的集成测试进行深入剖析。"
-  },
-  "Plugin": {
-    "message": "插件"
-  },
-  "Code Analysis For Context-Path Plugin": {
-    "message": "Context-Path插件源码分析"
-  },
-  "Code Analysis For Dubbo Plugin": {
-    "message": "Dubbo Plugin插件源码分析"
-  },
-  "The ShenYu gateway uses the divide plugin to handle http requests. You can 
see the official documentation Quick start with Http to learn how to use this 
plugin.": {
-    "message": "Apache ShenYu 网关使用 dubbo 插件完成对 dubbo服务的调用。你可以查看官方文档 Dubbo快速开始 
了解如何使用该插件。"
-  },
-  "Code Analysis For Param-Mapping Plugin": {
-    "message": "Param-Mapping插件源码分析"
-  },
-  "The Apache ShenYu gateway uses the dubbo plugin to make calls to the dubbo 
service. You can see the official documentation Dubbo Quick Start to learn how 
to use the plugin.": {
-    "message": "Apache ShenYu 网关使用 dubbo 插件完成对 dubbo服务的调用。你可以查看官方文档 Dubbo快速开始 
了解如何使用该插件。"
-  },
-  "Code Analysis For Divide Plugin": {
-    "message": "Divide插件源码分析"
-  },
-  "Code Analysis For McpServer Plugin": {
-    "message": "McpServer插件源码分析"
-  },
-  "E2e Test": {
-    "message": "E2e测试"
-  },
-  "E2e Test Analysis": {
-    "message": "E2e测试分析"
-  },
-
-  "Apache ShenYu 2.7.0.1 Version Release": {
-    "message": "Apache ShenYu 2.7.0.1 版本发布"
-  },
-  "Apache ShenYu 2.7.0 Version Release": {
-    "message": "Apache ShenYu 2.7.0 版本发布"
-  },
-  "Start small, become a Committer": {
-    "message": "小事做起,终成Committer"
-  },
-  "My Open Source Journey with Apache ShenYu": {
-    "message": "我的 Apache ShenYu 开源之旅"
-  },
-  "Co-authoring the future with ShenYu": {
-    "message": "与 ShenYu 共绘未来"
-  },
-  "Apache ShenYu WASM 1.0.0 Version Release": {
-    "message": "Apache ShenYu WASM 1.0.0 版本发布"
-  },
-  "Apache ShenYu 2.6.0 Version Release": {
-    "message": "Apache ShenYu 2.6.0 版本发布"
-  },
-  "The Student's Journey of Contributing to Apache ShenYu": {
-    "message": "学生参与 Apache ShenYu 贡献之路"
-  },
-  "OSPP 2023 & Apache ShenYu task is coming | Invite you to explore the high 
performance gateway": {
-    "message": "开源之夏 2023 & Apache ShenYu 任务来袭 | 邀您探索高性能网关!"
-  },
-  "Google Summer of Code & Apache ShenYu task is coming | Invite you to 
explore the high performance gateway":{
-    "message": "Google Summer of Code & Apache ShenYu 任务来袭 | 邀您探索高性能网关!"
-  },
-  "Apache ShenYu 2.5.1 Version Release": {
-    "message": "Apache ShenYu 2.5.1版本发布"
-  },
-  "From company gateway framework selection to Apache ShenYu Committer": {
-    "message": "从公司网关选型到Apache ShenYu Committer"
-  },
-  "From Apache ShenYu User to Apache ShenYu Committer": {
-    "message": "从用户到Apache ShenYu Committer"
-  },
-  "From CRUD Boy to Apache ShenYu Committer": {
-    "message": "从CRUD Boy到Apache ShenYu Committer"
-  },
-  "You can also be an Apache ShenYu Committer": {
-    "message": "你也可以成为Apache ShenYu Committer"
-  },
-  "Apache ShenYu 2.4.3 Version Release": {
-    "message": "Apache ShenYu 2.4.3 版本发布"
-  },
-  "The way from University Student to Apache Committer": {
-    "message": "从在校生到Apache Committer之路"
-  },
-  "From users to Committer, different experiences and gains": {
-    "message": "从用户到Committer,别样体验和收获"
-  },
-  "Apache ShenYu newly promoted PPMC": {
-    "message": "Apache ShenYu 新晋PPMC"
-  },
-  "From users to Committer, participation in the Apache ShenYu community is 
not far away": {
-    "message": "从用户到Committer,参与Apache ShenYu社区并不遥远"
-  },
-  "Release the first version of Apache ShenYu 2.4.0 Make API gateway easy": {
-    "message": "发布Apache首个版本-2.4.0 让API网关变得简单"
-  },
-  "How I became an Apache ShenYu Committer one year after graduation": {
-    "message": "毕业一年我是如何成为Apache ShenYu Committer"
-  },
-  "The Open Source Path for Tech Veterans": {
-    "message": "技术老兵的开源之路"
-  },
-  "Soul gateway release milestone version 2.3.0 New support for grpc, tars and 
sofa protocols": {
-    "message": "[Soul 网关发布里程碑的2.3.0版本] 新增支持GRPC,Tars,Sofa协议"
-  },
   "Version List": {
     "message": "版本列表"
   },
@@ -674,14 +430,5 @@
   },
   "Next Version": {
     "message": "下一版本"
-  },
-  "Code Analysis Ext Plugin Loader": {
-    "message": "扩展插件加载逻辑源码分析"
-  },
-  "Apollo Data Synchronization Source Code Analysis": {
-    "message": "Apollo 数据同步源码分析"
-  },
-  "Introduce Shenyu data sync by apollo.": {
-    "message": "Apollo 数据同步介绍,源码分析整体流程."
   }
 }
diff --git a/i18n/zh/docusaurus-plugin-content-pages/download.mdx 
b/i18n/zh/docusaurus-plugin-content-pages/download.mdx
index 1498725c289..4c9b11a8a35 100644
--- a/i18n/zh/docusaurus-plugin-content-pages/download.mdx
+++ b/i18n/zh/docusaurus-plugin-content-pages/download.mdx
@@ -4,7 +4,7 @@ keywords: ["下载"]
 description: 下载
 ---
 
-import DownloadCompoent from '../../../src/components/DownloadCompoent.tsx';
+import DownloadComponent from '@site/src/components/DownloadComponent';
 
 ## 下载
 
@@ -12,7 +12,7 @@ import DownloadCompoent from 
'../../../src/components/DownloadCompoent.tsx';
 
 由于下载内容分布在镜像服务器上,所以下载后应该进行 GPG 或 SHA-512 校验,以此来保证内容没有被篡改。
 
-<DownloadCompoent />
+<DownloadComponent />
 
 ## 全部版本
 
diff --git a/i18n/zh/docusaurus-theme-classic/footer.json 
b/i18n/zh/docusaurus-theme-classic/footer.json
deleted file mode 100755
index 17066ae7e85..00000000000
--- a/i18n/zh/docusaurus-theme-classic/footer.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-  "link.title.Events": {
-    "message": "活动",
-    "description": "The title of the footer links column with title=Events in 
the footer"
-  },
-  "link.title.ShenYu": {
-    "message": "ShenYu",
-    "description": "The title of the footer links column with title=ShenYu in 
the footer"
-  },
-  "link.title.Community": {
-    "message": "社区",
-    "description": "The title of the footer links column with title=Community 
in the footer"
-  },
-  "link.title.Subscribe mailing list": {
-    "message": "订阅邮件组",
-    "description": "The title of the footer links column with title=Subscribe 
mailing list in the footer"
-  },
-  "link.item.label.ApacheCon": {
-    "message": "ApacheCon",
-    "description": "The label of footer link with label=ApacheCon linking to 
https://www.apachecon.com";
-},
-  "link.item.label.Download": {
-    "message": "下载",
-    "description": "The title of the footer links column with title=Download 
in the footer"
-  },
-  "link.item.label.Document": {
-    "message": "文档",
-    "description": "The label of footer link with label=Document linking to 
/docs/index"
-  },
-  "link.item.label.News": {
-    "message": "新闻",
-    "description": "The label of footer link with label=News linking to /news"
-  },
-  "link.item.label.Blog": {
-    "message": "博客",
-    "description": "The label of footer link with label=Blog linking to /blog"
-  },
-  "link.item.label.Releases": {
-    "message": "版本",
-    "description": "The label of footer link with label=Releases linking to 
https://github.com/apache/incubator-shenyu/releases";
-  },
-  "link.item.label.Community": {
-    "message": "社区",
-    "description": "The label of footer link with label=Community linking to 
/community/subscribe-email"
-  },
-  "link.item.label.GitHub": {
-    "message": "GitHub",
-    "description": "The label of footer link with label=GitHub linking to 
https://github.com/apache/incubator-shenyu";
-  },
-  "link.item.label.Issue Tracker": {
-    "message": "Issue Tracker",
-    "description": "The label of footer link with label=Issue Tracker linking 
to https://github.com/apache/incubator-shenyu/issues";
-  },
-  "link.item.label.How to subscribe": {
-    "message": "如何订阅",
-    "description": "The label of footer link with label=How to subscribe 
linking to /community/subscribe-email"
-  },
-  "link.item.label.Subscribe Mail": {
-    "message": "订阅邮件",
-      "description": "The label of footer link with label=Subscribe Mail 
linking to mailto:[email protected]";
-  },
-  "link.item.label.Mail Archive": {
-    "message": "邮件归档",
-    "description": "The label of footer link with label=Mail Archive linking 
to https://lists.apache.org/[email protected]";
-  },
-  "copyright": {
-    "message": "<div><img style=\"height:50px; margin-right:10px\" 
src=\"/img/logo/support-apache.png\" /> <img style=\"height:50px; 
margin-left:10px\" alt=\"Apache Software Foundation\" 
src=\"/img/logo/asf_logo.svg\" /><p 
style=\"color:#ffffffcf;font-size:14px;text-align:center\">Copyright © 2022 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache ShenYu,  Apache, the Apache feather logo, the Apache ShenYu logo are 
trademarks of The Apache Software Fou [...]
-    "description": "The footer copyright"
-  }
-}
\ No newline at end of file
diff --git a/progress.md b/progress.md
deleted file mode 100644
index 471988a9fc1..00000000000
--- a/progress.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# progress
-
-- Started prioritized current-docs update for 2.7.1.
-- Scope: add missing plugin docs first, then fix critical stale 
version/deployment content in current docs only.
-- Added missing current-version plugin docs for AI transformers, basic/key 
auth, logging ClickHouse, and RPC param transform.
-- Updated critical current-version deployment prerequisites and 
package/image/driver references.
-- Removed internal links from new plugin pages that would add zh-locale 
broken-link warnings before translations exist.
-- Verified with `COREPACK_ENABLE_PROJECT_SPEC=0 yarn build`; build succeeds 
with pre-existing blog/history-doc warnings.
-- Restarted local dev server and verified 
`/docs/plugin-center/ai/ai-request-transformer` is reachable.
-- Updated `/Users/aias/Work/github/shenyu` with `git pull --ff-only`; upstream 
moved from `52f9c1c7d` to `8eb53befa`.
-- Added current-version Scale Management docs based on the updated Admin scale 
implementation and configuration.
-- Renamed the current Namespace Management docs from `namepsace.md` to 
`namespace.md` in English and zh current docs.
-- Repointed current-version Apache ShenYu source links from `master` to 
`v2.7.1`.
-- Synced zh current docs for the same high-priority stale references: JDK 17+, 
2.7.1 dependencies, v2.7.1 source links, 2.7.1 images, and MySQL Connector/J 
8.3.0.
-- Rebuilt with `COREPACK_ENABLE_PROJECT_SPEC=0 yarn build`; build succeeds 
with the same existing blog/history/current-link warnings.
-- Verified local default-locale routes `/docs/user-guide/admin-usage/scale` 
and `/docs/user-guide/admin-usage/namespace` in the browser.
-- Fixed current-version broken links for `ai-proxy`, `tcp-plugin`, 
`mcp-tool-proxy`, `admin-property-config`, and `divide-plugin`.
-- Added zh current localized pages for `ai-proxy` and `mcp-tool-proxy` to 
avoid zh fallback link resolution issues.
-- Normalized current-version local-model anchors in English and zh docs so 
Docusaurus recognizes the API table links.
-- Fixed current zh deployment cluster anchors and updated remaining current 
deployment package/local JDK references to JDK 17+ and Apache ShenYu 2.7.1 
artifacts.
-- Final targeted scan found no current-doc matches for the prioritized stale 
patterns: `master` source links, `namepsace`, `2.5.1-SNAPSHOT`, 
`${current.version}`, `dist/shenyu/2.6.0`, old JDK 1.8 text, 
`quick-start-McpServer`, `contextPath-plugin`, and the fixed relative-link 
patterns.
-- Final `COREPACK_ENABLE_PROJECT_SPEC=0 yarn build` succeeded. Remaining 
warnings are existing blog metadata/truncation/duplicate-route/plural warnings 
plus blog and historical-version broken links/anchors.
-- Verified generated current artifacts exist for English/zh 
`developer/local-model` and zh deployment/plugin/proxy pages.
-- Resolved the blog author, untruncated-post, duplicate `/blog`/`/news` route, 
and zh plural-form build warnings.
-- Configured blog/news content plugins to ignore inline-author and 
untruncated-post warnings, excluded conflicting custom `src/pages/blog.tsx` and 
`src/pages/news.tsx` from page generation, and reduced zh blog plural 
translations to single-form Chinese messages.
-- Verified with `COREPACK_ENABLE_PROJECT_SPEC=0 yarn build`; build exited 0 
and grep found no `Some blog authors`, `without truncation markers`, `Duplicate 
routes found`, or `For locale=zh` warnings. `/blog`, `/news`, `/zh/blog`, and 
`/zh/news` build artifacts still exist.
-- Fixed remaining blog and historical-version broken links/anchors reported by 
Docusaurus.
-- Repointed source-analysis blog excerpt links to stable `/blog/...` and 
`/zh/blog/...` routes so tag/list excerpts no longer resolve them relative to 
tag pages.
-- Normalized historical-version doc links for 2.3 Legacy, 2.4.x proxy/property 
pages, 2.5.0 sign, 2.6.x/2.7.x TCP discovery, 2.7.0.x AI Proxy, and 
2.7.0.2/2.7.0.3 MCP Tool Proxy docs.
-- Replaced historical `developer/local-model` inline HTML anchor IDs with 
Docusaurus heading anchors across English and zh versioned docs.
-- Replaced historical zh deployment cluster non-ASCII anchors (`Etcd开始`, 
`Nacos开始`, `Zookeeper开始`) with stable explicit anchors.
-- Fixed final zh historical route mismatches for 2.4.3 Tars service access and 
2.7.0.1/2.7.0.2/2.7.0.3 AI Proxy contextPath links.
-- Verified with `COREPACK_ENABLE_PROJECT_SPEC=0 yarn build`; build exited 0 
and grep found no `Docusaurus found broken links`, `Docusaurus found broken 
anchors`, `Broken link on source page path`, `Broken anchor on source page 
path`, `couldn't be resolved`, or `Markdown link with URL` entries.
-- Added the missing zh current i18n page for `quick-start-mcpServer` so 
`/zh/docs/quick-start/quick-start-mcpServer` no longer falls back to English 
content.
-- Rebuilt with `COREPACK_ENABLE_PROJECT_SPEC=0 yarn build`; build exited 0 
with no broken link/anchor output, and `curl 
http://localhost:3000/zh/docs/quick-start/quick-start-mcpServer` returns the 
Chinese title `Mcp Server 快速开始`.
-- Fixed current zh sidebar i18n labels for SDK usage, Discovery, Kubernetes 
Controller, API document aggregation, HTTP process, Proxy, Cache, AI, MCP, and 
Benchmark Test.
-- Added `sidebar_label: 基准测试` to the zh benchmark test page to handle 
Docusaurus' single-page category sidebar collapse.
-- Rebuilt and restarted production `docusaurus serve` on port 3000; generated 
current zh sidebar data contains none of the old English labels from the 
screenshots and includes the expected Chinese labels.
-- Added static compatibility pages for the legacy current-docs `namepsace` 
URL; `/docs/user-guide/admin-usage/namepsace` and 
`/zh/docs/user-guide/admin-usage/namepsace` return 200 and client-redirect to 
the corrected `namespace` routes without reappearing in the current docs 
sidebar.
diff --git a/src/clientModules/fix-error.js b/src/clientModules/fix-error.js
deleted file mode 100644
index 7eadc3c99fe..00000000000
--- a/src/clientModules/fix-error.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// This file runs early to suppress known warnings and errors
-// It's automatically loaded by Docusaurus from src/clientModules/
-
-if (typeof window !== 'undefined') {
-    // Suppress ResizeObserver errors
-    const resizeObserverLoopErr = "ResizeObserver loop completed with 
undelivered notifications.";
-    const resizeObserverLoopLimitErr = "ResizeObserver loop limit exceeded";
-
-    window.addEventListener("error", (e) => {
-        if (e.message && (e.message.includes(resizeObserverLoopErr) || 
e.message.includes(resizeObserverLoopLimitErr))) {
-            e.stopImmediatePropagation();
-            e.preventDefault();
-        }
-    });
-
-    // Helper function to check if any argument contains known warnings to 
suppress
-    const shouldSuppressWarning = (args) => {
-        return args.some(arg => {
-            if (typeof arg === 'string') {
-                // LoadableComponent contextTypes warning
-                if (arg.includes('LoadableComponent uses the legacy 
contextTypes API') ||
-                    arg.includes('legacy contextTypes API') ||
-                    (arg.includes('LoadableComponent') && 
arg.includes('contextTypes'))) {
-                    return true;
-                }
-                // React key prop spread warning
-                if (arg.includes('A props object containing a "key" prop is 
being spread into JSX') ||
-                    (arg.includes('key') && arg.includes('prop is being spread 
into JSX')) ||
-                    (arg.includes('React keys must be passed directly to 
JSX'))) {
-                    return true;
-                }
-            }
-            // Also check error objects
-            if (arg && typeof arg === 'object') {
-                try {
-                    const argStr = JSON.stringify(arg);
-                    // LoadableComponent warning
-                    if (argStr.includes('LoadableComponent') && 
argStr.includes('contextTypes')) {
-                        return true;
-                    }
-                    // Key prop warning
-                    if (argStr.includes('key') && argStr.includes('prop is 
being spread')) {
-                        return true;
-                    }
-                } catch (e) {
-                    // Ignore JSON stringify errors
-                }
-            }
-            return false;
-        });
-    };
-
-    // Suppress known warnings - intercept console.error early
-    const originalConsoleError = console.error;
-    console.error = function (...args) {
-        if (shouldSuppressWarning(args)) {
-            return; // Suppress the warning
-        }
-        originalConsoleError.apply(console, args);
-    };
-
-    // Also intercept console.warn in case the warning comes through there
-    const originalConsoleWarn = console.warn;
-    console.warn = function (...args) {
-        if (shouldSuppressWarning(args)) {
-            return; // Suppress the warning
-        }
-        originalConsoleWarn.apply(console, args);
-    };
-
-    // Intercept React's internal warning system if available
-    if (window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {
-        const originalOnCommitFiberRoot = 
window.__REACT_DEVTOOLS_GLOBAL_HOOK__.onCommitFiberRoot;
-        if (originalOnCommitFiberRoot) {
-            window.__REACT_DEVTOOLS_GLOBAL_HOOK__.onCommitFiberRoot = function 
(...args) {
-                // This won't suppress warnings but ensures devtools still work
-                return originalOnCommitFiberRoot.apply(this, args);
-            };
-        }
-    }
-}
diff --git a/src/components/DownloadCompoent.module.css 
b/src/components/DownloadComponent.module.css
similarity index 99%
rename from src/components/DownloadCompoent.module.css
rename to src/components/DownloadComponent.module.css
index 8996dd6ea6f..09e816c8b51 100644
--- a/src/components/DownloadCompoent.module.css
+++ b/src/components/DownloadComponent.module.css
@@ -88,4 +88,4 @@
 
 [data-theme='dark'] .versionTitle{
   color: #fff;
-}
\ No newline at end of file
+}
diff --git a/src/components/DownloadCompoent.tsx 
b/src/components/DownloadComponent.tsx
similarity index 99%
rename from src/components/DownloadCompoent.tsx
rename to src/components/DownloadComponent.tsx
index c7453dcd2dd..9b7e95f0507 100644
--- a/src/components/DownloadCompoent.tsx
+++ b/src/components/DownloadComponent.tsx
@@ -1,7 +1,7 @@
 import React, { useCallback, useEffect } from 'react';
 import { useState } from 'react';
 import Translate, { translate } from '@docusaurus/Translate';
-import styles from './DownloadCompoent.module.css';
+import styles from './DownloadComponent.module.css';
 
 const data = [
     {
@@ -350,7 +350,7 @@ const data = [
     }
 ]
 
-function DownloadCompoent() {
+function DownloadComponent() {
     const defaultShowItemArray = Array(data.length).fill(false);
     const [showItem, setShowItem] = useState(defaultShowItemArray);
 
@@ -426,4 +426,4 @@ function DownloadCompoent() {
     )
 };
 
-export default DownloadCompoent;
+export default DownloadComponent;
diff --git a/src/components/HomepageFeatures.js 
b/src/components/HomepageFeatures.js
deleted file mode 100755
index 16f820b1035..00000000000
--- a/src/components/HomepageFeatures.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import React from 'react';
-import clsx from 'clsx';
-import styles from './HomepageFeatures.module.css';
-
-const FeatureList = [
-  {
-    title: 'Easy to Use',
-    Svg: require('../../static/img/undraw_docusaurus_mountain.svg').default,
-    description: (
-      <>
-        Docusaurus was designed from the ground up to be easily installed and
-        used to get your website up and running quickly.
-      </>
-    ),
-  },
-  {
-    title: 'Focus on What Matters',
-    Svg: require('../../static/img/undraw_docusaurus_tree.svg').default,
-    description: (
-      <>
-        Docusaurus lets you focus on your docs, and we&apos;ll do the chores. 
Go
-        ahead and move your docs into the <code>docs</code> directory.
-      </>
-    ),
-  },
-  {
-    title: 'Powered by React',
-    Svg: require('../../static/img/undraw_docusaurus_react.svg').default,
-    description: (
-      <>
-        Extend or customize your website layout by reusing React. Docusaurus 
can
-        be extended while reusing the same header and footer.
-      </>
-    ),
-  },
-];
-
-function Feature({Svg, title, description}) {
-  return (
-    <div className={clsx('col col--4')}>
-      <div className="text--center">
-        <Svg className={styles.featureSvg} alt={title} />
-      </div>
-      <div className="text--center padding-horiz--md">
-        <h3>{title}</h3>
-        <p>{description}</p>
-      </div>
-    </div>
-  );
-}
-
-export default function HomepageFeatures() {
-  return (
-    <section className={styles.features}>
-      <div className="container">
-        <div className="row">
-          {FeatureList.map((props, idx) => (
-            <Feature key={idx} {...props} />
-          ))}
-        </div>
-      </div>
-    </section>
-  );
-}
diff --git a/src/components/HomepageFeatures.module.css 
b/src/components/HomepageFeatures.module.css
deleted file mode 100755
index 9dcb82c3548..00000000000
--- a/src/components/HomepageFeatures.module.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/* stylelint-disable docusaurus/copyright-header */
-
-.features {
-  display: flex;
-  align-items: center;
-  padding: 2rem 0;
-  width: 100%;
-}
-
-.featureSvg {
-  height: 200px;
-  width: 200px;
-}
diff --git a/src/components/TeamProfileCards/index.tsx 
b/src/components/TeamProfileCards/index.tsx
deleted file mode 100755
index 6c27125bdaa..00000000000
--- a/src/components/TeamProfileCards/index.tsx
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-import React, {ReactNode} from 'react';
-import Translate from '@docusaurus/Translate';
-import Link from '@docusaurus/Link';
-
-function WebsiteLink({to, children}: {to: string; children?: ReactNode}) {
-  return (
-    <Link to={to}>
-      {children || (
-        <Translate id="team.profile.websiteLinkLabel">website</Translate>
-      )}
-    </Link>
-  );
-}
-
-interface ProfileProps {
-  className?: string;
-  name: string;
-  children: ReactNode;
-  githubUrl?: string;
-  twitterUrl?: string;
-}
-
-function TeamProfileCard({
-  className,
-  name,
-  children,
-  githubUrl,
-  twitterUrl,
-}: ProfileProps) {
-  return (
-    <div className={className}>
-      <div className="card card--full-height">
-        <div className="card__header">
-          <div className="avatar avatar--vertical">
-            <img
-              className="avatar__photo avatar__photo--xl"
-              src={githubUrl + '.png'}
-              alt={`${name}'s avatar`}
-            />
-            <div className="avatar__intro">
-              <h3 className="avatar__name">{name}</h3>
-            </div>
-          </div>
-        </div>
-        <div className="card__body">{children}</div>
-        <div className="card__footer">
-          <div className="button-group button-group--block">
-            {githubUrl && (
-              <a className="button button--secondary" href={githubUrl}>
-                GitHub
-              </a>
-            )}
-            {twitterUrl && (
-              <a className="button button--secondary" href={twitterUrl}>
-                Twitter
-              </a>
-            )}
-          </div>
-        </div>
-      </div>
-    </div>
-  );
-}
-
-function TeamProfileCardCol(props: ProfileProps) {
-  return (
-    <TeamProfileCard {...props} className={'col col--6 margin-bottom--lg'} />
-  );
-}
-
-export function ActiveTeamRow() {
-  return (
-    <div className="row">
-      <TeamProfileCardCol
-        name="Alexey Pyltsyn"
-        githubUrl="https://github.com/lex111";>
-        <Translate id="team.profile.Alexey Pyltsyn.body">
-          Obsessed open-source enthusiast 👋 Eternal amateur at everything 🤷‍♂️
-          Maintainer of Russian docs on PHP, React, Kubernetes and much more 🧐
-        </Translate>
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Joel Marcey"
-        githubUrl="https://github.com/JoelMarcey";
-        twitterUrl="https://twitter.com/joelmarcey";>
-        <Translate id="team.profile.Joel Marcey.body">
-          Docusaurus founder and now ever grateful Docusaurus cheerleader to
-          those who actually write code for it.
-        </Translate>
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Sébastien Lorber"
-        githubUrl="https://github.com/slorber";
-        twitterUrl="https://twitter.com/sebastienlorber";>
-        <Translate
-          id="team.profile.Sebastien Lorber.body"
-          values={{
-            website: <WebsiteLink to="https://sebastienlorber.com/"; />,
-            devto: <Link to="https://dev.to/sebastienlorber";>Dev.to</Link>,
-          }}>
-          {
-            'React lover since 2014. Freelance, helping Facebook ship 
Docusaurus v2. He writes regularly, on his {website} and {devto}.'
-          }
-        </Translate>
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Yangshun Tay"
-        githubUrl="https://github.com/yangshun";
-        twitterUrl="https://twitter.com/yangshunz";>
-        <Translate id="team.profile.Yangshun Tay.body">
-          Full Front End Stack developer who likes working on the Jamstack.
-          Working on Docusaurus made him Facebook's unofficial part-time Open
-          Source webmaster, which is an awesome role to be in.
-        </Translate>
-      </TeamProfileCardCol>
-    </div>
-  );
-}
-
-export function HonoraryAlumniTeamRow() {
-  return (
-    <div className="row">
-      <TeamProfileCardCol
-        name="Endilie Yacop Sucipto"
-        githubUrl="https://github.com/endiliey";
-        twitterUrl="https://twitter.com/endiliey";>
-        <Translate id="team.profile.Endilie Yacop Sucipto.body">
-          Maintainer @docusaurus · 🔥🔥🔥
-        </Translate>
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Wei Gao"
-        githubUrl="https://github.com/wgao19";
-        twitterUrl="https://twitter.com/wgao19";>
-        <Translate id="team.profile.Wei Gao.body">
-          🏻‍🌾 Work in progress React developer, maintains Docusaurus, writes
-          docs and spams this world with many websites.
-        </Translate>
-      </TeamProfileCardCol>
-    </div>
-  );
-}
-
-export function StudentFellowsTeamRow() {
-  return (
-    <div className="row">
-      <TeamProfileCardCol
-        name="Anshul Goyal"
-        githubUrl="https://github.com/anshulrgoyal";
-        twitterUrl="https://twitter.com/ar_goyal";>
-        Fullstack developer who loves to code and try new technologies. In his
-        free time, he contributes to open source, writes blog posts on his{' '}
-        <a href="https://anshulgoyal.dev/"; target="_blank">
-          website
-        </a>{' '}
-        and watches Anime.
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Drew Alexander"
-        githubUrl="https://github.com/drewbi";>
-        Developer and Creative, trying to gain the skills to build whatever he
-        can think of.
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Fanny Vieira"
-        githubUrl="https://github.com/fanny";
-        twitterUrl="https://twitter.com/fannyvieiira";>
-        Fanny got started with web development in high school, building a
-        project for the school kitchen. In her free time she loves contributing
-        to Open Source, occasionally writing on{' '}
-        <a href="https://dev.to/fannyvieira"; target="_blank">
-          her blog
-        </a>{' '}
-        about her experiences, cooking, and creating{' '}
-        <a href="https://open.spotify.com/user/anotherfanny"; target="_blank">
-          Spotify playlists
-        </a>
-        .
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Sam Zhou"
-        githubUrl="https://github.com/SamChou19815";
-        twitterUrl="https://twitter.com/SamChou19815";>
-        Sam started programming in 2011 and built his{' '}
-        <a href="https://developersam.com";>website</a> in 2015. He is 
interested
-        in programming languages, dev infra and web development, and has built
-        his own{' '}
-        <a href="https://samlang.developersam.com/";>programming language</a> 
and{' '}
-        <a href="https://github.com/SamChou19815/mini-react";>mini React</a>.
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Tan Teik Jun"
-        githubUrl="https://github.com/teikjun";
-        twitterUrl="https://twitter.com/teik_jun";>
-        Open-source enthusiast who aims to become as awesome as the other 
humans
-        on this page. Working on Docusaurus brought him closer to his goal. 🌱
-      </TeamProfileCardCol>
-      <TeamProfileCardCol
-        name="Nisarag Bhatt"
-        githubUrl="https://github.com/FocalChord";
-        twitterUrl="https://twitter.com/focalchord_";>
-        Fullstack web developer who loves learning new technologies and 
applying
-        them! Loves contributing to open source as well as writing content
-        articles and tutorials.
-      </TeamProfileCardCol>
-    </div>
-  );
-}
diff --git a/src/data/blogInfo.js b/src/data/blogInfo.js
deleted file mode 100644
index 508bb828a66..00000000000
--- a/src/data/blogInfo.js
+++ /dev/null
@@ -1,262 +0,0 @@
-import React from 'react';
-import Translate from "@docusaurus/Translate";
-
-export default [
-    {
-        categray: 'SPI',
-        posts: [
-            {
-                title:<Translate>SPI Source Code Analysis</Translate>,
-                author: "Throwable (Contributor)",
-                autPage:"https://github.com/zjcscut/";,
-                autImg:'/img/blog/throwable.jpeg',
-                src: "SPI-SourceCode-Analysis-SPI",
-                cover: "/img/blog/4-1.png",
-                date: '2022-09-12',
-                abs: <Translate>Recently,when I read the source code of open 
source project Apache Shenyu API gateway,I find and many core components of the 
gateway are loaded with the SPI module. Here I will analyzes the source code of 
SPI module in Shenyu gateway.</Translate>
-            },
-            {
-                title: <Translate>MatchStrategy -- analyze the design based on 
SPI</Translate>,
-                author: "Huihui Yin (Contributor)",
-                autPage:"https://github.com/changanjennifer";,
-                autImg:'/img/blog/jennifer.png',
-                src: "SPI-SourceCode-Analysis-MatchStrategy-SPI",
-                cover: "/img/blog/4-1.png",
-                date: '2021-07-2',
-                abs: <Translate>Gateway applications need to support a variety 
of load balancing strategies, including random,Hashing, RoundRobin and so on. 
In Apache Shenyu gateway, it not only realizes such traditional algorithms, but 
also makes smoother traffic processing for the entry of server nodes through 
detailed processing such as traffic warm-up, so as to obtain better overall 
stability. In this article, let's walk through how Apache Shenyu is designed 
and implemented this part [...]
-            },
-            {
-                title: <Translate>PredicateJudge -- analyze the design based 
on SPI</Translate>,
-                author: "Huihui Yin (Contributor)",
-                autPage:"https://github.com/changanjennifer";,
-                autImg:'/img/blog/jennifer.png',
-                src: "SPI-SourceCode-Analysis-PredicateJudge-SPI",
-                cover: "/img/blog/4-2.png",
-                date: '2021-07-2',
-                abs:<Translate>In most of the plugins ( such as Dubbo, 
gRPC,Spring-cloud, etc) of Apache Shenyu, the routingparameters are designed to 
support the combination of multiple conditions. In order to realize such 
requirements, the parameters and behaviors are abstracted to three parts 
according to its SPI mechanism, and implemented in shenyu-plugin-base 
module.</Translate>
-
-            },
-            {
-                title: <Translate>LoadBalance SPI Source Code 
Analysis</Translate>,
-                author: "Huihui Yin (Contributor)",
-                autPage:"https://github.com/changanjennifer";,
-                autImg:'/img/blog/jennifer.png',
-                src: "SPI-SourceCode-Analysis-LoadBalance-SPI",
-                cover: "/img/blog/4-3.png",
-                date: '2021-07-2',
-                abs:<Translate>Apache Shenyu has been identified as a gateway 
application which supports a variety of protocols and microservice frameworks 
such as Dubbo, gRPC, Spring-Cloud, etc. To do this, the product has 
accomplished an elegant SPI (Service Provider Interface) as its foundation, and 
make the Rule data parsing and predicting program very simple , resiliency and 
security. As to rule data parsing processing, the SPI design increases the 
product's scalability. When append [...]
-            },
-            {
-                title: <Translate>RateLimiter SPI code analysis</Translate>,
-                author: "Huihui Yin (Contributor)",
-                autPage:"https://github.com/changanjennifer";,
-                autImg:'/img/blog/jennifer.png',
-                src: "SPI-SourceCode-Analysis-RateLimiter-SPI",
-                cover: "/img/blog/4-4.png",
-                date: '2021-07-2',
-                abs:<Translate>Rate limiter is a very important integral of 
gateway application, to deal with high traffic. When the system is attacked 
abnormally by a large number of traffic gathered in a short time; When there 
are a large number of lower priority request need to be slow down or else it 
will effect your high priority transactions; Or sometimes your system can not 
afford the regular traffic; in these scenarios, we need to start rate limiter 
component to protect our syste [...]
-            },
-        ]
-    },
-    {
-        categray: <Translate>RegisterCenter</Translate>,
-        posts: [
-            {
-                title: <Translate>Register Center Source Code Analysis of Http 
Register</Translate>,
-                author: "midnight2104 (PMC)",
-                autImg: "/img/blog/midnight2104.png",
-                autPage: "https://github.com/midnight2104";,
-                src: "RegisterCenter-SourceCode-Analysis-Http-Register",
-                cover: "/img/blog/5-1.png",
-                date: '2021-07-2',
-                abs:<Translate>In ShenYu gateway, the registration center is 
used to register the client information to shenyu-admin, admin then 
synchronizes this information to the gateway through data synchronization, and 
the gateway completes traffic filtering through these data. The client 
information mainly includes interface information and URI 
information.</Translate>
-            },
-        ]
-    },
-    {
-        categray: <Translate>Start</Translate>,
-        posts: [
-            {
-                title: <Translate>Apache ShenYu Start Demo</Translate>,
-                author: "Kunshuai Zhu (PMC)",
-                autImg: "/img/blog/zhukunshuai.png",
-                autPage:"https://github.com/JooKS-me";,
-                src: "Start-SourceCode-Analysis-Start-Demo",
-                cover: "/img/blog/6-1.png",
-                date: '2021-07-2',
-                abs:<Translate>Apache ShenYu Start Demo</Translate>
-            },
-            {
-                title: <Translate>Guide for New Contributors to Start avoid 
Pitfalls</Translate>,
-                author: "Yuxuan Zhang (Contributor)",
-                autImg: "/img/blog/zhangyuxuan.png",
-                autPage:"https://github.com/zuobiao-zhou";,
-                src: "Start-SourceCode-Analysis-Start-Demo-for-Contributor",
-                cover: "/img/blog/7-1.png",
-                date: '2023-04-18',
-                abs:<Translate>As a first-time developer in the `Shenyu` 
community, I encountered some "Pitfalls" that were not mentioned in the 
tutorials I followed to start and develop the project. I have documented the 
detailed steps I took to start `shenyu`, `shenyu-dashboard`, `shenyu-website` 
in this blog, hoping to help more new contributors in the community.</Translate>
-            },
-        ]
-    },
-    {
-        categray: <Translate>DataSync</Translate>,
-        posts: [
-            {
-                title: <Translate>Etcd Data Synchronization Source Code 
Analysis</Translate>,
-                author: "4zd (Contributor)",
-                autImg: "/img/blog/4zd.png",
-                autPage: "https://github.com/4zd";,
-                src: "DataSync-SourceCode-Analysis-Etcd-Data-Sync",
-                cover: "/img/blog/1-1.png",
-                date: '2021-07-2',
-                abs:<Translate>In ShenYu gateway, data synchronization refers 
to how to synchronize the updated data to the gateway after the data is sent in 
the background management system. The Apache ShenYu gateway currently supports 
data synchronization for ZooKeeper, WebSocket, http long poll, Nacos, Etcd and 
Consul. The main content of this article is based on Etcd data synchronization 
source code analysis.</Translate>
-            },
-            {
-                title: <Translate>Http Long Polling Data Synchronization 
Source Code Analysis</Translate>,
-                author: "midnight2104 (PMC)",
-                autImg: "/img/blog/midnight2104.png",
-                autPage: "https://github.com/midnight2104";,
-                src: "DataSync-SourceCode-Analysis-Http-Data-Sync",
-                cover: "/img/blog/1-2.png",
-                date: '2022-07-2',
-                abs:<Translate>In ShenYu gateway, data synchronization refers 
to how to synchronize the updated data to the gateway after the data is sent in 
the background management system. The Apache ShenYu gateway currently supports 
data synchronization for ZooKeeper, WebSocket, http long poll, Nacos, etcd and 
Consul. The main content of this article is based on http long poll data 
synchronization source code analysis.</Translate>
-            },
-            {
-                title: <Translate>Nacos Data Synchronization Source Code 
Analysis</Translate>,
-                author: "4zd (Contributor)",
-                autImg: "/img/blog/4zd.png",
-                autPage: "https://github.com/4zd";,
-                src: "DataSync-SourceCode-Analysis-Nacos-Data-Sync",
-                cover: "/img/blog/1-3.png",
-                date: '2022-07-2',
-                abs:<Translate>In ShenYu gateway, data synchronization refers 
to how to synchronize the updated data to the gateway after the data is sent in 
the background management system. The Apache ShenYu gateway currently supports 
data synchronization for ZooKeeper, WebSocket, http long poll, Nacos, etcd and 
Consul. The main content of this article is based on Nacos data synchronization 
source code analysis.</Translate>
-            },
-            {
-                title: <Translate>WebSocket Data Synchronization Source Code 
Analysis</Translate>,
-                author: "midnight2104 (PMC)",
-                autImg: "/img/blog/midnight2104.png",
-                autPage: "https://github.com/midnight2104";,
-                src: "DataSync-SourceCode-Analysis-WebSocket-Data-Sync",
-                cover: "/img/blog/1-4.png",
-                date: '2022-07-2',
-                abs:<Translate>In ShenYu gateway, data synchronization refers 
to how to synchronize the updated data to the gateway after the data is sent in 
the background management system. The Apache ShenYu gateway currently supports 
data synchronization for ZooKeeper, WebSocket, http long poll, Nacos, etcd and 
Consul. The main content of this article is based on WebSocket data 
synchronization source code analysis.</Translate>
-            },
-            {
-                title: <Translate>ZooKeeper Data Synchronization Source Code 
Analysis</Translate>,
-                author: "midnight2104 (PMC)",
-                autImg: "/img/blog/midnight2104.png",
-                autPage: "https://github.com/midnight2104";,
-                src: "DataSync-SourceCode-Analysis-ZooKeeper-Data-Sync",
-                cover: "/img/blog/1-5.png",
-                date: '2022-07-2',
-                abs:<Translate>In ShenYu gateway, data synchronization refers 
to how to synchronize the updated data to the gateway after the data is sent in 
the background management system. The Apache ShenYu gateway currently supports 
data synchronization for ZooKeeper, WebSocket, http long poll, Nacos, etcd and 
Consul. The main content of this article is based on WebSocket data 
synchronization source code analysis.</Translate>
-            },
-            {
-                title: <Translate>Apollo Data Synchronization Source Code 
Analysis</Translate>,
-                author: "hql0312 (Committer)",
-                autImg: "/img/blog/hql0312.png",
-                autPage: "https://github.com/hql0312";,
-                src: "DataSync-SourceCode-Analysis-Apollo-Data-Sync",
-                cover: "/img/logo.svg",
-                date: '2024-02-22',
-                abs:<Translate>Introduce Shenyu data sync by 
apollo.</Translate>
-            },
-        ]
-    },
-    {
-        categray: <Translate>Integration Test</Translate>,
-        posts: [
-            {
-                title: <Translate>Integration Test Analysis</Translate>,
-                author: "Kunshuai Zhu (PMC)",
-                autImg: "/img/blog/zhukunshuai.png",
-                autPage:"https://github.com/JooKS-me";,
-                src: "IntegrationTest-Analysis",
-                cover: "/img/logo.svg",
-                date: '2022-07-2',
-                abs:<Translate>This article will provide an in-depth analysis 
of Apache ShenYu's integration tests.</Translate>
-            },
-        ]
-    },
-    {
-        categray: <Translate>Plugin</Translate>,
-        posts: [
-            {
-                title: <Translate>Code Analysis For Context-Path 
Plugin</Translate>,
-                author: "Kunshuai Zhu (PMC)",
-                autImg: "/img/blog/zhukunshuai.png",
-                autPage:"https://github.com/JooKS-me";,
-                src: "Plugin-SourceCode-Analysis-Context-Path-Plugin",
-                cover: "/img/logo.svg",
-                date: '2021-07-2',
-                abs:<Translate>Code Analysis For Context-Path 
Plugin</Translate>
-            },
-            {
-                title: <Translate>Code Analysis For Dubbo Plugin</Translate>,
-                author: "midnight2104 (PMC)",
-                autImg: "/img/blog/midnight2104.png",
-                autPage: "https://github.com/midnight2104";,
-                src: "Plugin-SourceCode-Analysis-Dubbo-Plugin",
-                cover: "/img/blog/3-2.png",
-                date: '2021-07-2',
-                abs:<Translate>The ShenYu gateway uses the divide plugin to 
handle http requests. You can see the official documentation Quick start with 
Http to learn how to use this plugin.</Translate>
-            },
-            {
-                title: <Translate>Code Analysis For Param-Mapping 
Plugin</Translate>,
-                author: "Kunshuai Zhu (PMC)",
-                autImg: "/img/blog/zhukunshuai.png",
-                autPage:"https://github.com/JooKS-me";,
-                src: "Plugin-SourceCode-Analysis-Param-Mapping-Plugin",
-                cover: "/img/blog/3-3.jpg",
-                date: '2021-07-2',
-                abs:<Translate>The Apache ShenYu gateway uses the dubbo plugin 
to make calls to the dubbo service. You can see the official documentation 
Dubbo Quick Start to learn how to use the plugin.</Translate>
-            },
-            {
-                title: <Translate>Code Analysis For Divide Plugin</Translate>,
-                author: "midnight2104 (PMC)",
-                autImg: "/img/blog/midnight2104.png",
-                autPage: "https://github.com/midnight2104";,
-                src: "Plugin-SourceCode-Analysis-Divide-Plugin",
-                cover: "/img/blog/3-4.png",
-                date: '2021-07-2',
-                abs:<Translate>Code Analysis For Divide Plugin</Translate>
-            },
-            {
-                title: <Translate>Code Analysis Ext Plugin Loader</Translate>,
-                author: "hql0312 (contributor)",
-                autImg: "/img/blog/hql0312.png",
-                autPage: "https://github.com/hql0312";,
-                src: "Loader-SourceCode-Analysis-ExtLoader",
-                cover: "/img/logo.svg",
-                date: '2024-02-04',
-                abs:<Translate>Code Analysis Ext Plugin Loader</Translate>
-            },
-            {
-                title: <Translate>Code Analysis For McpServer 
Plugin</Translate>,
-                author: "yusiheng (contributor)",
-                autImg: "/img/blog/yusiheng.png",
-                autPage: "https://github.com/478320";,
-                src: "Plugin-SourceCode-Analysis-Mcp-Server-Plugin",
-                cover: "/img/logo.svg",
-                date: '2025-09-22',
-                abs:<Translate>Code Analysis For McpServer Plugin</Translate>
-            },
-        ]
-    },
-    {
-        categray: <Translate>E2e Test</Translate>,
-        posts: [
-            {
-                title: <Translate>E2e Test Analysis</Translate>,
-                author: "Haiqi Qin (Committer)",
-                autImg: "https://avatars.githubusercontent.com/u/80969210?v=4";,
-                autPage:"https://github.com/HaiqiQin";,
-                src: "E2eTest-Analysis",
-                cover: "/img/logo.svg",
-                date: '2023-08-20',
-                abs:<Translate>This article will conduct an in-depth analysis 
of Apache ShenYu e2e module.</Translate>
-            },
-        ]
-    },
-
-]
\ No newline at end of file
diff --git a/src/data/newsInfo.js b/src/data/newsInfo.js
deleted file mode 100644
index 67f63a9ccc6..00000000000
--- a/src/data/newsInfo.js
+++ /dev/null
@@ -1,284 +0,0 @@
-import React from 'react';
-import Translate from "@docusaurus/Translate";
-
-export default [
-    {
-        title: <Translate>From Deep User to Apache ShenYu 
Committer</Translate>,
-        author: "Wei Wei",
-        description: <Translate>From Deep User to Apache ShenYu 
Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2026-01-21",
-        cover: "/img/news/4.png",
-        src:'Apache-ShenYu-Committer-2026-01-21',
-    },
-    {
-        title: <Translate>Yu Siheng [2025 Open Source Summer] Summary | From 
Open Source Newbie to Campus Ambassador</Translate>,
-        description: <Translate>From Open Source Newbie to Campus 
Ambassador</Translate>,
-        categories: "OSPP 2025",
-        tags: ["Apache ShenYu", "OSPP 2025"],
-        date: '2026-01-07',
-        cover: "/img/news/ospp/ospp-2025.png",
-        src:'Apache-ShenYu-OSPP2025-Summary-2026-01-07',
-    },
-    {
-        title: <Translate>Become a Committer</Translate>,
-        author: "shown",
-        description: <Translate>Become a Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2026-01-06",
-        cover: "/img/news/shown.jpeg",
-        src:'Apache-ShenYu-Committer-2026-01-06',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.7.0.3 Version Release</Translate>,
-        description: <Translate>Apache ShenYu 2.7.0.3 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2025-11-24',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-release-version-2.7.0.3',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.7.0.2 Version Release</Translate>,
-        description: <Translate>Apache ShenYu 2.7.0.2 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2025-08-25',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-release-version-2.7.0.2',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.7.0.1 Version Release</Translate>,
-        description: <Translate>Apache ShenYu 2.7.0.1 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2025-05-03',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-release-version-2.7.0.1',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.7.0 Version Release</Translate>,
-        description: <Translate>Apache ShenYu 2.7.0 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2025-01-15',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-release-version-2.7.0',
-    },
-    {
-        title: <Translate>Start small, become a Committer</Translate>,
-        author: "achao",
-        description: <Translate>Start small, become a Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2024-08-14",
-        cover: "/img/news/achao.jpg",
-        src:'Apache-ShenYu-Committer-2024-08-14',
-    },
-    {
-        title: <Translate>My Open Source Journey with Apache 
ShenYu</Translate>,
-        author: "Hongyu Liu",
-        description: <Translate>My Open Source Journey with Apache 
ShenYu</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2024-08-08",
-        cover: "/img/news/4.png",
-        src:'Apache-ShenYu-Committer-2024-08-08',
-    },
-    {
-        title: <Translate>Co-authoring the future with ShenYu</Translate>,
-        author: "kerwin612",
-        description: <Translate>Co-authoring the future with 
ShenYu</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2024-04-08",
-        cover: "/img/news/0.png",
-        src:'Apache-ShenYu-Committer-2024-04-08',
-    },
-    {
-        title: <Translate>Apache ShenYu WASM 1.0.0 Version Release</Translate>,
-        description: <Translate>Apache ShenYu WASM 1.0.0 Version 
Release</Translate>,
-        categories: "Apache ShenYu WASM",
-        tags: ["Apache ShenYu", "WASM"],
-        date: '2024-01-06',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-WASM-release-version-1.0.0',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.6.0 Version Release</Translate>,
-        description: <Translate>Apache ShenYu 2.6.0 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2023-08-15',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-release-version-2.6.0',
-    },
-    {
-        title: <Translate>The Student's Journey of Contributing to Apache 
ShenYu</Translate>,
-        author: "Haiqi Qin",
-        description: <Translate>The Student's Journey of Contributing to 
Apache ShenYu</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2023-06-14',
-        cover: "/img/news/QinHaiqi.png",
-        src:'Apache-ShenYu-Committer-2023-06-14',
-    },
-    {
-        title: <Translate>OSPP 2023 & Apache ShenYu task is coming | Invite 
you to explore the high performance gateway</Translate>,
-        description: <Translate>Apache ShenYu OSPP 2023</Translate>,
-        categories: "OSPP 2023",
-        tags: ["Apache ShenYu OSPP 2023"],
-        date: '2023-05-19',
-        cover: "/img/news/ospp/ospp-2023.jpg",
-        src:'Apache-ShenYu-OSPP2023-2023-05-19',
-    },
-    {
-        title: <Translate>Google Summer of Code & Apache ShenYu task is coming 
| Invite you to explore the high performance gateway</Translate>,
-        description: <Translate>Apache ShenYu GSOC 2023</Translate>,
-        categories: "GSOC 2023",
-        tags: ["Apache ShenYu GSOC 2023"],
-        date: '2023-04-18',
-        cover: "/img/news/gsoc/gsoc-2023.jpg",
-        src:'Apache-ShenYu-GSOC2023-2023-04-18',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.5.1 Version Release</Translate>,
-        description: <Translate>Apache ShenYu 2.5.1 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2023-02-06',
-        cover: "/img/architecture/shenyu-architecture-3d.png",
-        src:'Apache-ShenYu-release-version-2.5.1',
-    },
-    {
-        title: <Translate>From company gateway framework selection to Apache 
ShenYu Committer</Translate>,
-        author: "Shuo Li",
-        description: <Translate>From company gateway framework selection to 
Apache ShenYu Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2022-08-08',
-        cover: "/img/news/lishuo.png",
-        src:'Apache-ShenYu-Committer-2022-08-08',
-    },{
-        title: <Translate>From Apache ShenYu User to Apache ShenYu 
Committer</Translate>,
-        author: "Fengen He",
-        description: <Translate>From Apache ShenYu User to Apache ShenYu 
Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2022-08-04',
-        cover: "/img/news/hefengen.jpg",
-        src:'Apache-ShenYu-Committer-2022-08-04',
-    },
-    {
-        title: <Translate>From CRUD Boy to Apache ShenYu Committer</Translate>,
-        author: "Renzhu Yan",
-        description: <Translate>From CRUD Boy to Apache ShenYu 
Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2022-07-04',
-        cover: "/img/news/renzhuyan.jpg",
-        src:'Apache-ShenYu-Committer-2022-07-04',
-    },
-    {
-        title: <Translate>You can also be an Apache ShenYu 
Committer</Translate>,
-        author: "Zicheng Zhang",
-        description: <Translate>You can also be an Apache ShenYu 
Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2022-04-20',
-        cover: "/img/news/0.png",
-        src:'Apache-ShenYu-Committer-2022-04-20',
-    },
-    {
-        title: <Translate>Apache ShenYu 2.4.3 Version Release</Translate>,
-        // author: "Liu Liang",
-        description: <Translate>Apache ShenYu 2.4.3 Version 
Release</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2022-04-18',
-        cover: "/img/news/helm-ci-pipeline.png",
-        src:'Apache-ShenYu-release-version-2.4.3',
-    },
-    {
-        title: <Translate>The way from University Student to Apache 
Committer</Translate>,
-        author: "Kunshuai Zhu",
-        description: <Translate>The way from University Student to Apache 
Committer</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2021-12-08",
-        cover: "/img/news/zhunkunshuai.png",
-        src:"Apache-ShenYu-Committer-2021-12-08",
-    },
-    {
-        title: <Translate>From users to Committer, different experiences and 
gains</Translate>,
-        author: "qicz",
-        description: <Translate>From users to Committer, different experiences 
and gains</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2021-11-11',
-        cover: "/img/news/4.png",
-        src:'Apache-ShenYu-Committer-2021-11-11',
-    },
-    {
-        title: <Translate>Apache ShenYu newly promoted PPMC</Translate>,
-        author: "Liu Liang",
-        description: <Translate>Apache ShenYu newly promoted PPMC</Translate>,
-        categories: "Apache ShenYu PPMC",
-        tags: ["Apache ShenYu"],
-        date: "2021-11-05",
-        cover: "/img/news/5.png",
-        src:'Apache-ShenYu-PPMC-2021-11-05',
-    },
-    {
-        title: <Translate>From users to Committer, participation in the Apache 
ShenYu community is not far away</Translate>,
-        author: "Tang Zhen",
-        description: <Translate>From users to Committer, participation in the 
Apache ShenYu community is not far away</Translate> ,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2021-09-08',
-        cover: "/img/news/tangzhen.jpg",
-        src:'Apache-ShenYu-Committer-2021-09-08'
-    },
-    {
-        title: <Translate>Release the first version of Apache ShenYu 2.4.0 
Make API gateway easy</Translate>,
-        author: "xiaoyu",
-        description: <Translate>Release the first version of Apache ShenYu 
2.4.0 Make API gateway easy</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: '2021-08-01',
-        cover: "/img/architecture/shenyu-framework.png",
-        src:'Apache-ShenYu-release-milestone-version-2.4.0',
-    },
-    {
-        title: <Translate>How I became an Apache ShenYu Committer one year 
after graduation</Translate>,
-        author: "Liu Liang",
-        description: <Translate>From users to Committer, participation in the 
Apache ShenYu community is not far away</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: '2021-09-08',
-        cover: "/img/news/0.png",
-        src:'Apache-ShenYu-Committer-2021-07-27',
-    },
-    {
-        title: <Translate>The Open Source Path for Tech Veterans</Translate>,
-        author: "Haibo Duan",
-        description: <Translate>The Open Source Path for Tech 
Veterans</Translate>,
-        categories: "Apache ShenYu Committers",
-        tags: ["Apache ShenYu"],
-        date: "2021-02-28",
-        cover: "/img/news/duanhaibo.jpg",
-        src:'Apache-ShenYu-Committer-2022-02-28',
-    },
-    {
-        title: <Translate>Soul gateway release milestone version 2.3.0 New 
support for grpc, tars and sofa protocols</Translate>,
-        author: "xiaoyu",
-        description: <Translate>Soul gateway release milestone version 2.3.0 
New support for grpc, tars and sofa protocols</Translate>,
-        categories: "Apache ShenYu",
-        tags: ["Apache ShenYu"],
-        date: "2020-07-05",
-        cover: "/img/news/flow.png",
-        src:'Soul-gateway-release-milestone-version-2.3.0',
-    }
-]
diff --git a/src/pages/blog.module.css b/src/pages/blog.module.css
deleted file mode 100644
index 77cf9256c40..00000000000
--- a/src/pages/blog.module.css
+++ /dev/null
@@ -1,183 +0,0 @@
-.container{
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-}
-
-.content{
-    display: flex;
-    --ifm-col-width:78%;
-    flex: 0 0 var(--ifm-col-width);
-    max-width: var(--ifm-col-width);
-    align-items: center;
-    flex-direction: column;
-    padding-left: 12.333%;
-    text-align: justify;
-}
-
-.categray{
-   display: flex;
-   justify-content: flex-start;
-   flex-wrap: wrap;
-   width: 100%;
-}
-
-.darkAnchor{
-    height: 60px;
-    margin-top: -60px;
-}
-
-.title{
-    width: 100%;
-    font-size: 22px;
-    font-weight: bold;
-    color: #2c3e50;
-    margin: 30px 0 30px 20px;
-    border-bottom: 1px solid #eaecef;
-}
-
-
-.card{
-    flex:1;
-    margin: 0 20px 0 20px;
-    box-sizing: border-box;
-    width: calc( 100% - 160px );
-    min-width: calc( 100% - 160px );
-    max-width: calc( 100% - 160px );
-}
-
-.cardImage{
-    border-radius:10px;
-}
-
-.postTitle{
-    font-size: 1.125rem;
-    font-weight: bold;
-    margin-top: 5px;
-    color: var(--ifm-color-primary);
-}
-
-.postTitle:hover{
-    cursor: pointer;
-    text-decoration: none;
-}
-
-.postAbs{
-    font-size: 14px;
-    color: #2c3e50;
-}
-
-.authorInfo{
-    display: flex;
-    align-items: center;
-    margin: 8px 0;
-}
-
-.authorImg{
-    border-radius: 50%;
-    margin-right: 10px;
-}
-
-.authorName{
-    font-size: 14px;
-    font-weight: bold;
-    color: #2c3e50;
-}
-
-.authorName:hover{
-    text-decoration: none;
-    color: #2c3e50;
-}
-
-.authorDate{
-    font-size: 2px;
-}
-
-.read{
-    color: var(--ifm-color-primary);
-    font-size: 14px;
-    margin-top: 8px;
-    margin-bottom: 30px;
-}
-
-.read:hover{
-    cursor:pointer;
-}
-
-.catalogue{
-    --ifm-col-width:16.66667%;
-    flex: 0 0 var(--ifm-col-width);
-    max-width: var(--ifm-col-width);
-    margin-left: 3%;
-}
-
-.catalogueBox{
-    max-height: calc(100vh - var(--ifm-navbar-height) - 2rem);
-    overflow-y: auto;
-    position: -webkit-sticky;
-    position: sticky;
-    top: calc(var(--ifm-navbar-height) + 1rem);
-    border-left: 1px solid var(--ifm-toc-border-color);
-}
-
-.catalogueBoxUl{
-    margin: 0 0 var(--ifm-list-margin);
-    list-style: none;
-}
-
-.catalogueBoxLi{
-    margin: var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal);
-    font-size: .8rem;
-    color:var(--ifm-toc-link-color);
-}
-
-.catalogueBoxA{
-    color:var(--ifm-toc-link-color);
-}
-
-
-.catalogueBoxA:hover{
-    text-decoration: none;
-}
-
-.link:hover{
-    text-decoration: none;
-}
-
-[data-theme='dark'] .title{
-    border-bottom: 1px solid #272a36;
-}
-
-@media screen and (max-width: 996px) {
-    .catalogue {
-      display: none;
-    }
-
-    .content{
-        display: flex;
-        --ifm-col-width:100%;
-        flex: 0 0 var(--ifm-col-width);
-        max-width: var(--ifm-col-width);
-        align-items: center;
-        flex-direction: column;
-        text-align: justify;
-    }
-
-    .title{
-        width: 100%;
-        font-size: 22px;
-        font-weight: bold;
-        color: #2c3e50;
-        margin: 30px 6rem 30px 20px;
-        border-bottom: 1px solid #eaecef;
-    }
-
-    .card{
-        flex:1;
-        margin: 0 20px 0 20px;
-        box-sizing: border-box;
-        width: calc( 100% - 6rem );
-        min-width: calc( 100% - 6rem );
-        max-width: calc( 100% - 6rem );
-    }
-}
diff --git a/src/pages/blog.tsx b/src/pages/blog.tsx
deleted file mode 100644
index 49773c3ff87..00000000000
--- a/src/pages/blog.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-
-import React, { useEffect, useRef, useState } from 'react';
-import Layout from '@theme/Layout';
-import styles from './blog.module.css';
-import blogInfo from '../data/blogInfo';
-import Translate from "@docusaurus/Translate";
-import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
-
-
-function Blog() {
-    const [activeAnchor, setActiveAnchor] = useState(0);
-    const [url, setUrl] = useState(true)
-    let list = useRef([React.createRef(), React.createRef(), 
React.createRef(), React.createRef(), React.createRef(), React.createRef()])
-    let contentList = useRef([React.createRef(), React.createRef(), 
React.createRef(), React.createRef(), React.createRef(), React.createRef()])
-
-    useEffect(() => {
-        let baseUrl = window.location.href
-        if (baseUrl[baseUrl.length - 1] == '/') {
-            setUrl(false)
-        } else {
-            setUrl(true)
-        }
-        let useAnchor = () => {
-            for (let i = 0; i < contentList.current.length; i++) {
-                let dist = 
contentList.current[i].current.getBoundingClientRect().y
-                if (dist >= 90 && dist <= 300) {
-                    setActiveAnchor(i)
-                }
-            }
-        }
-        window.addEventListener('scroll', useAnchor);
-        return () => window.removeEventListener('scroll', useAnchor);
-    }, []);
-
-    return (
-        <Layout title="Blog">
-            <div className={styles.container}>
-                <div className={styles.content}>
-                    {
-                        blogInfo.map((item, key) => {
-                            return (
-                                <div className={styles.categray} key={key}>
-                                    <div className={styles.darkAnchor} 
id={item.categray}></div>
-                                    <div ref={contentList.current[key]} 
className={styles.title}>{item.categray} </div>
-                                    {item.posts.map((post, key) => {
-                                        return (
-                                            <div className={styles.card} 
key={key}>
-                                                <div 
className={styles.postTitle}>
-                                                    {
-                                                        url ? <Link 
className={styles.link} to={'blog/' + post.src}>{post.title}</Link> : <Link 
className={styles.link} to={post.src} >{post.title}</Link>
-                                                    }
-                                                </div>
-                                                <div  
className={styles.authorInfo}>
-                                                    <a 
className={styles.authorA} href={post.autPage}><img 
className={styles.authorImg} width={38} src={post.autImg}></img></a>
-                                                    <div>
-                                                        <a 
className={styles.authorName} href={post.autPage}><div > {post.author} </div> 
</a>
-                                                        <div 
className={styles.authorDate}> {post.date} </div>
-                                                    </div>
-                                                </div>
-                                                <div 
className={styles.postAbs}>{post.abs}</div>
-                                                <div className={styles.read}>
-                                                    {
-                                                        url ? <Link 
className={styles.link} to={'blog/' + post.src}><Translate>Read 
More</Translate></Link> : <Link className={styles.link} to={post.src} 
><Translate>Read More</Translate></Link>
-                                                    }
-                                                </div>
-                                            </div>
-                                        )
-                                    })}
-                                </div>
-                            )
-                        })
-                    }
-                </div>
-                <div className={styles.catalogue}>
-                    <div className={styles.catalogueBox}>
-                        <ul className={styles.catalogueBoxUl} >
-                            {
-                                blogInfo.map((item, index) => {
-                                    const route = '#' + item.categray
-                                    const id = 'Cata' + item.categray
-                                    return (
-                                        <li key={index} 
className={styles.catalogueBoxLi} id={id} ><a ref={list.current[index]} 
href={route} id='catalogueBoxA' className={styles.catalogueBoxA} style={{ 
color: activeAnchor == index ? 'var(--ifm-color-primary)' : 
'var(--ifm-toc-link-color)' }} onClick={() => 
setActiveAnchor(index)}>{item.categray}</a></li>
-                                    )
-                                })
-                            }
-                        </ul>
-                    </div>
-                </div>
-            </div>
-        </Layout>
-    );
-}
-
-export default Blog;
\ No newline at end of file
diff --git a/src/pages/download.mdx b/src/pages/download.mdx
index a20661c4d5b..3d7580ae661 100644
--- a/src/pages/download.mdx
+++ b/src/pages/download.mdx
@@ -4,7 +4,7 @@ keywords: ["Download"]
 description: Download
 ---
 
-import DownloadCompoent from '../components/DownloadCompoent.tsx';
+import DownloadComponent from '@site/src/components/DownloadComponent';
 
 ## Download
 
@@ -12,7 +12,7 @@ import DownloadCompoent from 
'../components/DownloadCompoent.tsx';
 
 The downloads are distributed via mirror sites and should be checked for 
tampering using GPG or SHA-512.
 
-<DownloadCompoent />
+<DownloadComponent />
 
 ## All Releases
 
@@ -66,4 +66,3 @@ pgp apache-shenyu-********.asc
 `Apache ShenYu` provides a packaged and downloaded `PDF` of the docs for users 
and developers to use.
 
 * [English](https://shenyu.apache.org/pdf/apache_shenyu_docs_en.pdf)
-
diff --git a/src/pages/helloReact.js b/src/pages/helloReact.js
deleted file mode 100755
index 0d69e31fd1c..00000000000
--- a/src/pages/helloReact.js
+++ /dev/null
@@ -1,24 +0,0 @@
-
-import React from 'react';
-import Layout from '@theme/Layout';
-
-function Hello() {
-  return (
-    <Layout title="Hello">
-      <div
-        style={{
-          display: 'flex',
-          justifyContent: 'center',
-          alignItems: 'center',
-          height: '50vh',
-          fontSize: '20px',
-        }}>
-        <p>
-          编辑 <code>pages/hello.js</code> 并保存以刷新。
-        </p>
-      </div>
-    </Layout>
-  );
-}
-
-export default Hello;
\ No newline at end of file
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index dfc3f370289..013f7daf368 100755
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -38,8 +38,6 @@ function Home() {
                 <img
                   src="/img/logo.svg"
                   className={styles.heroProjectLogo}
-                  data-light-logo="/img/logo.svg"
-                  data-dark-logo="/img/logo-light.svg"
                 ></img>
               </h1>
               <h3 className={styles.heroProjectTagline}>
diff --git a/src/pages/markdown-page.md b/src/pages/markdown-page.md
deleted file mode 100755
index 9756c5b6685..00000000000
--- a/src/pages/markdown-page.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Markdown page example
----
-
-# Markdown page example
-
-You don't need React to write simple standalone pages.
diff --git a/src/pages/news.module.css b/src/pages/news.module.css
deleted file mode 100644
index b88e72581c2..00000000000
--- a/src/pages/news.module.css
+++ /dev/null
@@ -1,117 +0,0 @@
-.top{
-    height: 140px;
-    line-height: 140px;
-    text-align: center;
-    font-size: 1.75rem;
-    color: var(--ifm-color-primary);
-    font-weight: bold;
-}
-
-.content{
-    background-color: #F2F4F7;
-}
-
-.newsList{
-    padding-top: 30px;
-    padding-bottom: 30px;
-    display: flex;
-    justify-content: center;
-    flex-wrap: wrap;
-}
-
-.cardItem{
-    margin: 5px;
-    display: flex;
-    height: auto;
-    min-height: 12.5rem;
-    width: 50%;
-    background-color: #FFFFFF;
-    border-radius: 10px;
-}
-
-.cardInfo{
-    margin: 20px 30px 20px 30px;
-    width: 70%;
-    height: auto;
-    display: flex;
-    flex-direction: column;
-}
-
-.cardDate{
-    font-size: 0.625rem;
-    margin-bottom: 15px;
-}
-
-.cardTitle{
-    font-size: 1.125rem;
-    font-weight: bold;
-}
-
-.cardDesc{
-    font-size: 14px;
-    font-weight: bold;
-    color: #475467;
-}
-
-.cardImage{
-    margin: 20px 0px 20px 30px;
-    width: 13rem;
-}
-
-.readMore:hover{
-    cursor:pointer;
-}
-
-.link:hover{
-    text-decoration: none;
-}
-
-.readMore{
-    align-self: flex-end;
-    display: flex;
-    justify-content: end;
-    font-size: 0.75rem;
-    color: var(--ifm-color-primary);
-    margin-top: 30px;
-    background-color: #FFFFFF;
-    border: #FFFFFF;
-}
-
-[data-theme='dark'] .content{
-    background-color: #1C1E21;
-}
-
-[data-theme='dark'] .cardItem{
-    background-color: #272a36;
-}
-
-[data-theme='dark'] .readMore{
-    background-color: #272a36;
-}
-
-
-@media screen and (max-width: 996px) {
-    .cardItem{
-        margin: 5px;
-        display: flex;
-        height: auto;
-        min-height: 200px;
-        width: 90%;
-        background-color: #FFFFFF;
-        border-radius: 10px;
-    }
-
-    .cardImage{
-        margin: 10px 0px 20px 10px;
-        width: 13rem;
-    }
-}
-
-@media screen and (max-width: 500px) {
-    .cardImage{
-        display: none;
-    }
-    .cardInfo{
-        width: 100%;
-    }
-}
\ No newline at end of file
diff --git a/src/pages/news.tsx b/src/pages/news.tsx
deleted file mode 100644
index 2e361c372f4..00000000000
--- a/src/pages/news.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-
-import React, { useEffect, useState } from 'react';
-import Layout from '@theme/Layout';
-import styles from './news.module.css';
-import newsInfo from '../data/newsInfo';
-import Translate from "@docusaurus/Translate";
-import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
-
-
-function News() {
-  const [url, setUrl] = useState(true)
-
-  useEffect(() => {
-    let baseUrl = window.location.href
-    if (baseUrl[baseUrl.length - 1] == '/') {
-      setUrl(false)
-    } else {
-      setUrl(true)
-    }
-  }, []);
-
-  return (
-    <Layout title="News">
-      <div className={styles.top}><Translate>Recent Posts</Translate></div>
-      <div className={styles.content}>
-        <div className={styles.newsList}>
-          {newsInfo.map((newsItem, i) => {
-            return (
-              <div key={i} className={styles.cardItem} >
-                <img className={styles.cardImage} src={newsItem.cover} 
alt={'Apache Shenyu'} ></img>
-                <div className={styles.cardInfo}>
-                  <div className={styles.cardDate}>{newsItem.date}</div>
-                  <div className={styles.cardTitle}>{newsItem.title}</div>
-                  <div className={styles.cardDesc}>{newsItem.description}</div>
-                  <div className={styles.readMore}>
-                    {
-                      url ? <Link className={styles.link} to={'news/' + 
newsItem.src}> >> <Translate>Read More</Translate></Link> : <Link 
className={styles.link} to={newsItem.src}> >> <Translate>Read 
More</Translate></Link>
-                    }
-                  </div>
-                </div>
-              </div>
-            )
-          })}
-        </div>
-      </div>
-    </Layout>
-  );
-}
-
-export default News;
\ No newline at end of file
diff --git a/src/theme/BlogSidebar/index.tsx b/src/theme/BlogSidebar/index.tsx
index 93d91823699..eb8041b3772 100644
--- a/src/theme/BlogSidebar/index.tsx
+++ b/src/theme/BlogSidebar/index.tsx
@@ -1,8 +1,18 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
  *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 import React from 'react';
@@ -35,7 +45,6 @@ export default function BlogSidebar({ sidebar }: Props): 
JSX.Element | null {
     categoryMap = { "": sidebar.items }
   }
 
-  // console.log(categoryMap)
   return (
     <nav
       className={clsx(styles.sidebar, 'thin-scrollbar')}
@@ -48,9 +57,9 @@ export default function BlogSidebar({ sidebar }: Props): 
JSX.Element | null {
         {sidebar.title}
       </div>
       <ul className={styles.sidebarItemList}>
-        {Object.keys(categoryMap).map((category,index) => {
-          return <>
-            {category.length > 0 && <h4  key={index} 
className={styles.categoryHeader}>{category}</h4>}
+        {Object.keys(categoryMap).map((category) => {
+          return <React.Fragment key={category}>
+            {category.length > 0 && <h4 
className={styles.categoryHeader}>{category}</h4>}
             {categoryMap[category].map((item) => {
               return (
                 <li key={item.permalink} className={styles.sidebarItem}>
@@ -64,7 +73,7 @@ export default function BlogSidebar({ sidebar }: Props): 
JSX.Element | null {
                 </li>
               );
             })}
-          </>
+          </React.Fragment>
         })}
       </ul>
     </nav>

Reply via email to