Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ function encodeCloudinaryPath(value: string) {

const nextConfig: NextConfig = {
/* config options here */
allowedDevOrigins: ['127.0.0.1'],
// Avoid the Pages Router dev-indicator initialization race in Next.js 16.4.
devIndicators: false,
experimental: {},
typescript: {
ignoreBuildErrors: true // 忽略 TypeScript 检查
Expand Down
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,33 +20,33 @@
"@giscus/react": "^3.1.0",
"@next/third-parties": "^16.0.7",
"antd": "^6.6.0",
"cloudinary": "^2.6.1",
"cloudinary": "^2.11.0",
"dayjs": "^1.11.13",
"dompurify": "^3.2.6",
"echarts": "^6.0.0",
"gray-matter": "^4.0.3",
"lodash": "^4.17.21",
"lodash": "^4.18.1",
"lucide-react": "^1.31.0",
"marked": "^18.0.9",
"next": "^16.0.7",
"next-auth": "^4.24.11",
"next-auth": "^4.24.15",
"ogl": "^1.0.11",
"react": "^19.2.1",
"react-countup": "^6.5.3",
"react-dom": "^19.2.1",
"react-icons": "^5.5.0",
"react-icons": "^5.7.0",
"react-quill-new": "^3.4.6",
"sanitize-html": "^2.17.0",
"vditor": "^3.11.3"
"vditor": "^4.0.0"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
"@eslint/eslintrc": "^3.3.7",
"@types/global-agent": "^3.0.0",
"@types/lodash": "^4.17.20",
"@types/node": "^26.2.0",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^10.8.1",
"@types/react-dom": "^19.3.0",
"eslint": "^10.12.0",
"eslint-config-next": "16.3.0",
"global-agent": "^4.1.3",
"prettier": "^3.5.3",
Expand Down
Binary file added public/img/members/91.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions public/img/partners/ZstackLogo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/img/partners/dexmal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 25 additions & 0 deletions public/img/partners/didi.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/partners/vivo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/components/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,7 @@ export default function Header() {
alt="KaiSource symbol"
width={44}
height={44}
loading="eager"
className={styles.brandSymbol}
/>
<span className={styles.brandNames}>
Expand All @@ -728,6 +729,7 @@ export default function Header() {
alt={translateUiText("开源社 Logo")}
width={100}
height={100}
loading="eager"
className={styles.logoImage}
/>
)}
Expand Down
2 changes: 1 addition & 1 deletion src/components/LanguageSwitcher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export default function LanguageSwitcher({
menu={{ items: languageItems }}
placement="bottomRight"
trigger={["hover", "click"]}
overlayClassName={styles.languageDropdown}
classNames={{ root: styles.languageDropdown }}
arrow
>
<button
Expand Down
33 changes: 11 additions & 22 deletions src/components/home/partners/Partners.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useEffect, useRef } from "react";
import Image from "next/image";
import Link from "next/link";
import { partnersRawData } from "@/data/partners";
import { partnerProfiles } from "@/data/partners";
import styles from "./Partners.module.css";
import { useTranslation } from "../../../hooks/useTranslation";

Expand All @@ -10,25 +10,14 @@ export default function PartnersSection() {
const scrollRef1 = useRef<HTMLDivElement>(null);
const scrollRef2 = useRef<HTMLDivElement>(null);

// 只显示有logo的合作伙伴,不区分时间和等级,并根据title去重
const validPartners = partnersRawData
.filter(
(partner) =>
partner.logo &&
partner.logo !== "/logo.png" &&
partner.logo.trim() !== "",
)
.reduce<typeof partnersRawData>((acc, partner) => {
// 检查是否已存在相同title的合作伙伴
const existingIndex = acc.findIndex(
(existing) => existing.title === partner.title,
);
if (existingIndex === -1) {
// 如果不存在,直接添加
acc.push(partner);
}
return acc;
}, []);
// 首页只展示有有效 Logo 的机构合作伙伴,个人赞助不进入轮播图。
const validPartners = partnerProfiles.filter(
(partner) =>
partner.sponsor.type === "organization" &&
partner.logo &&
partner.logo !== "/logo.png" &&
partner.logo.trim() !== "",
);

// 将合作伙伴数组分成两组
const midIndex = Math.ceil(validPartners.length / 2);
Expand Down Expand Up @@ -134,7 +123,7 @@ export default function PartnersSection() {
<div className={styles.partnersTrack}>
{firstRowPartners.map((partner, index) => (
<Link
key={`row1-${partner.organization}-${index}`}
key={`row1-${partner.id}-${index}`}
href="/partners"
className={styles.partnerCard}
>
Expand All @@ -159,7 +148,7 @@ export default function PartnersSection() {
<div className={styles.partnersTrack}>
{secondRowPartners.map((partner, index) => (
<Link
key={`row2-${partner.organization}-${index}`}
key={`row2-${partner.id}-${index}`}
href="/partners"
className={styles.partnerCard}
>
Expand Down
17 changes: 17 additions & 0 deletions src/data/members.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1050,6 +1050,23 @@ export const members: Member[] = [
nickname: "Max",
details: [],
},
{
id: 91,
name: "江波",
gender: "女",
avatar: "/img/members/91.webp",
city: "上海",
email: "nadia.jiangbo@gmail.com",
alternativeEmail: "nadia@kaiyuanshe.org",
github: "https://github.com/jiangbonadia",
website: "https://x.com/jiangbonadia",
linkedin: "https://www.linkedin.com/in/nadiajiang",
position: "市场运营及技术生态负责人",
company: "蚂蚁灵波科技",
bio: "江波,现任蚂蚁灵波市场运营和技术生态负责人。她于 2024 年加入蚂蚁,任集团开源增长及国际化负责人,2025 年 12 月转入蚂蚁灵波,统筹负责灵波市场传播、技术生态、政府关系等。\n加入蚂蚁之前,她是一位连续创业者,曾任 SegmentFault 思否合伙人,负责市场运营和商业化,期间联合发起的开源项目 Answer 入选 Apache 软件基金会孵化器并毕业成为顶级项目。\n她在市场运营、用户增长、开发者生态等领域有超过 10 年工作经验,和 GitHub、Hugging Face、Linux Foundation、Apache Software Foundation 等众多国际社区和开源组织保持着长期连接,是 Apache 软件基金会正式成员。她曾在众多国际开源顶会发表演讲,2025 年以突出的跨社区贡献入选 GitHub Stars(全球仅 80 位)。",
nickname: "Nadia Jiang",
details: [],
},
];

// 工具函数:根据姓名查找成员
Expand Down
Loading
Loading