This is an automated email from the ASF dual-hosted git repository.
xingfudeshi pushed a commit to branch docusaurus
in repository https://gitbox.apache.org/repos/asf/incubator-seata-website.git
The following commit(s) were added to refs/heads/docusaurus by this push:
new c4490a8b4e9 optimize: fix add ecosystem doc (#1044)
c4490a8b4e9 is described below
commit c4490a8b4e97068b8c1edf175b8e39302ebdb218
Author: jimin <[email protected]>
AuthorDate: Thu Dec 11 10:30:19 2025 +0800
optimize: fix add ecosystem doc (#1044)
---
sidebars.js | 32 +++++++++++++++++++++
sidebarsUnversioned.js | 25 ++++++++++++++++
src/pages/home/feature/index.tsx | 61 ++++++++++++++++++++++++++++------------
src/pages/home/top/index.tsx | 24 ++++++++++++----
src/pages/index.tsx | 2 +-
5 files changed, 119 insertions(+), 25 deletions(-)
diff --git a/sidebars.js b/sidebars.js
index 37b08a5f48e..2746bb28d3e 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -195,6 +195,38 @@ const sidebars = {
'security/serialization',
],
},
+ {
+ type: 'category',
+ label: 'Ecosystem & Repositories', // New section title
+ collapsible: false,
+ items: [
+ {
+ type: 'link',
+ label: 'Seata GoLang Repository',
+ href: 'https://github.com/apache/incubator-seata-go',
+ },
+ {
+ type: 'link',
+ label: 'Seata Samples (Java)',
+ href: 'https://github.com/apache/incubator-seata-samples',
+ },
+ {
+ type: 'link',
+ label: 'Seata GoLang Samples',
+ href: 'https://github.com/apache/incubator-seata-go-samples',
+ },
+ {
+ type: 'link',
+ label: 'Seata K8s (Kubernetes)',
+ href: 'https://github.com/apache/incubator-seata-k8s',
+ },
+ {
+ type: 'link',
+ label: 'Seata CLI (CTL)',
+ href: 'https://github.com/apache/incubator-seata-ctl',
+ },
+ ],
+ },
],
developers: [
{
diff --git a/sidebarsUnversioned.js b/sidebarsUnversioned.js
index da73481d7b5..1902f40b3e3 100644
--- a/sidebarsUnversioned.js
+++ b/sidebarsUnversioned.js
@@ -35,6 +35,31 @@ const sidebarsUnversioned = {
items: ['release-history/seata-server'],
},
],
+ ecosystem: [
+ {
+ type: 'category',
+ label: 'Ecosystem & Repositories',
+ collapsible: false,
+ items: [
+ {
+ type: 'link',
+ label: 'Seata GoLang Repository',
+ href: 'https://github.com/apache/incubator-seata-go',
+ },
+ {
+ type: 'link',
+ label: 'Seata K8s (Kubernetes)',
+ href: 'https://github.com/apache/incubator-seata-k8s',
+ },
+ {
+ type: 'link',
+ label: 'Seata Samples',
+ href: 'https://github.com/apache/incubator-seata-samples',
+ },
+ // ... include all required links
+ ],
+ },
+ ],
};
module.exports = sidebarsUnversioned;
diff --git a/src/pages/home/feature/index.tsx b/src/pages/home/feature/index.tsx
index a0afd3559a1..7671f43dec4 100644
--- a/src/pages/home/feature/index.tsx
+++ b/src/pages/home/feature/index.tsx
@@ -56,10 +56,12 @@ const data = {
id: 'homepage.featureListTitle3',
message: 'TCC 模式',
}),
- content: translate({
- id: 'homepage.featureListContent3',
- message: '支持 TCC 模式并可与 AT 混用,灵活度更高',
- }),
+ content: [
+ translate({
+ id: 'homepage.featureListContent3',
+ message: '支持 TCC 模式并可与 AT 混用,灵活度更高',
+ }),
+ ],
},
{
icon: 'feature-4',
@@ -67,10 +69,12 @@ const data = {
id: 'homepage.featureListTitle4',
message: 'SAGA 模式',
}),
- content: translate({
- id: 'homepage.featureListContent4',
- message: '为长事务提供有效的解决方案,提供编排式和注解式(开发中)',
- }),
+ content: [
+ translate({
+ id: 'homepage.featureListContent4',
+ message: '为长事务提供有效的解决方案,提供编排式和注解式(开发中)',
+ }),
+ ],
},
{
icon: 'feature-5',
@@ -78,20 +82,37 @@ const data = {
id: 'homepage.featureListTitle5',
message: 'XA 模式',
}),
- content: translate({
- id: 'homepage.featureListContent5',
- message:
- '支持已实现 XA 接口的数据库的 XA 模式,目前已支持MySQL、Oracle和MariaDB',
- }),
+ content: [
+ translate({
+ id: 'homepage.featureListContent5',
+ message:
+ '支持已实现 XA 接口的数据库的 XA 模式,目前已支持MySQL、Oracle和MariaDB',
+ }),
+ ],
},
{
icon: 'feature-6',
title: translate({ id: 'homepage.featureListTitle6', message: '高可用' }),
- content: translate({
- id: 'homepage.featureListContent6',
- message:
- '支持存算分离的集群模式,计算节点可水平扩展,存储支持数据库和 Redis。Raft集群模式进入beta验证阶段',
+ content: [
+ translate({
+ id: 'homepage.featureListContent6',
+ message:
+ '支持存算分离的集群模式,计算节点可水平扩展,存储支持数据库和 Redis。Raft集群模式进入beta验证阶段',
+ }),
+ ],
+ },
+ {
+ icon: 'feature-7',
+ title: translate({
+ id: 'homepage.featureListTitle7',
+ message: 'GoLang Implementation & Ecosystem',
}),
+ content: [
+ translate({
+ id: 'homepage.featureListContent7',
+ message: 'Seata has a native GoLang implementation for
high-performance transactions. Discover the entire ecosystem, including the
Seata-Go repository, Kubernetes support, and CLI tool.',
+ }),
+ ],
},
],
title: translate({ id: 'homepage.featureTitle', message: '特色功能' }),
@@ -119,7 +140,11 @@ const Item = (props) => {
<Icon type={feature.icon} />
<div>
<h4>{feature.title}</h4>
- <p>{feature.content}</p>
+ {Array.isArray(feature.content) ? (
+ feature.content.map((item, index) => <p key={index}>{item}</p>)
+ ) : (
+ <p>{feature.content}</p>
+ )}
</div>
</li>
);
diff --git a/src/pages/home/top/index.tsx b/src/pages/home/top/index.tsx
index 5c614d8231a..b311e22d76c 100644
--- a/src/pages/home/top/index.tsx
+++ b/src/pages/home/top/index.tsx
@@ -54,23 +54,29 @@ const Top = () => {
});
React.useEffect(() => {
+ // Only run in browser, not during SSR
+ if (typeof window === 'undefined') {
+ return;
+ }
+
const controller = new AbortController();
const signal = controller.signal;
// set timeout
- setTimeout(() => {
+ const timeoutId = setTimeout(() => {
controller.abort();
}, 5000);
- fetch('//api.github.com/repos/apache/incubator-seata', { signal })
+ fetch('https://api.github.com/repos/apache/incubator-seata', { signal })
.then((res) => res.json())
.then((data) => {
setRepo({
starCount: `${data.stargazers_count}`,
forkCount: `${data.forks_count}`,
});
- }).catch((err => {
+ }).catch((err) => {
// do nothing
- }));
+ });
+
fetch('https://api.github.com/repos/apache/incubator-seata/releases/latest', {
signal })
.then((res) => res.json())
.then((data) => {
@@ -79,9 +85,15 @@ const Top = () => {
url: data.html_url,
date: new Date(data.published_at).toLocaleDateString(),
});
- }).catch((err => {
+ }).catch((err) => {
// do nothing
- }));
+ });
+
+ // Cleanup function
+ return () => {
+ clearTimeout(timeoutId);
+ controller.abort();
+ };
}, []);
return (
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 76d5aca3121..6a977fb257a 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -26,7 +26,7 @@ import { Footer } from '../components';
import './index.scss';
import { translate } from '@docusaurus/Translate';
-export default function Home(): React.Element {
+export default function Home(): JSX.Element {
const el = React.useRef<HTMLDivElement>(null);
// const setEleBg = (ele: HTMLDivElement, isTransparent: boolean) => {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]