diff --git a/.cache/contributors.json b/.cache/contributors.json index d08008c..b59ef99 100644 --- a/.cache/contributors.json +++ b/.cache/contributors.json @@ -1,6 +1,6 @@ { - "updated_at": "2026-06-15T03:43:19.342Z", - "total": 164, + "updated_at": "2026-06-16T08:43:08.724Z", + "total": 168, "contributors": [ { "username": "whybeyoung", @@ -11,9 +11,15 @@ { "username": "lyj715824", "avatar_url": "https://avatars.githubusercontent.com/u/124077501?v=4", - "contributions": 780, + "contributions": 782, "profile_url": "https://github.com/lyj715824" }, + { + "username": "smallKeyboy", + "avatar_url": "https://avatars.githubusercontent.com/u/68474019?v=4", + "contributions": 758, + "profile_url": "https://github.com/smallKeyboy" + }, { "username": "vsxd", "avatar_url": "https://avatars.githubusercontent.com/u/28803103?v=4", @@ -35,7 +41,7 @@ { "username": "dongmucat", "avatar_url": "https://avatars.githubusercontent.com/u/70678707?v=4", - "contributions": 268, + "contributions": 273, "profile_url": "https://github.com/dongmucat" }, { @@ -68,6 +74,12 @@ "contributions": 145, "profile_url": "https://github.com/Alex-Smith-1234" }, + { + "username": "FenjuFu", + "avatar_url": "https://avatars.githubusercontent.com/u/92919259?v=4", + "contributions": 129, + "profile_url": "https://github.com/FenjuFu" + }, { "username": "sharphu", "avatar_url": "https://avatars.githubusercontent.com/u/39578471?v=4", @@ -104,12 +116,6 @@ "contributions": 86, "profile_url": "https://github.com/Jonyzqw" }, - { - "username": "FenjuFu", - "avatar_url": "https://avatars.githubusercontent.com/u/92919259?v=4", - "contributions": 85, - "profile_url": "https://github.com/FenjuFu" - }, { "username": "ymcui", "avatar_url": "https://avatars.githubusercontent.com/u/16095339?v=4", @@ -158,12 +164,24 @@ "contributions": 58, "profile_url": "https://github.com/byliu" }, + { + "username": "Xxbys752521", + "avatar_url": "https://avatars.githubusercontent.com/u/59569075?v=4", + "contributions": 58, + "profile_url": "https://github.com/Xxbys752521" + }, { "username": "airaria", "avatar_url": "https://avatars.githubusercontent.com/u/4355449?v=4", "contributions": 54, "profile_url": "https://github.com/airaria" }, + { + "username": "dongjiang1989", + "avatar_url": "https://avatars.githubusercontent.com/u/5010507?v=4", + "contributions": 50, + "profile_url": "https://github.com/dongjiang1989" + }, { "username": "lantianhemao", "avatar_url": "https://avatars.githubusercontent.com/u/106608685?v=4", @@ -206,12 +224,6 @@ "contributions": 34, "profile_url": "https://github.com/yixinmeng" }, - { - "username": "dongjiang1989", - "avatar_url": "https://avatars.githubusercontent.com/u/5010507?v=4", - "contributions": 32, - "profile_url": "https://github.com/dongjiang1989" - }, { "username": "hant1", "avatar_url": "https://avatars.githubusercontent.com/u/80155819?v=4", @@ -476,6 +488,12 @@ "contributions": 8, "profile_url": "https://github.com/mmmlll0708" }, + { + "username": "wangbing1005", + "avatar_url": "https://avatars.githubusercontent.com/u/73165412?v=4", + "contributions": 8, + "profile_url": "https://github.com/wangbing1005" + }, { "username": "blackflash997997", "avatar_url": "https://avatars.githubusercontent.com/u/52345108?v=4", @@ -494,12 +512,6 @@ "contributions": 7, "profile_url": "https://github.com/scw919" }, - { - "username": "Xxbys752521", - "avatar_url": "https://avatars.githubusercontent.com/u/59569075?v=4", - "contributions": 7, - "profile_url": "https://github.com/Xxbys752521" - }, { "username": "zhuxinghan01", "avatar_url": "https://avatars.githubusercontent.com/u/183343375?v=4", @@ -512,6 +524,12 @@ "contributions": 7, "profile_url": "https://github.com/hlxmg" }, + { + "username": "ftlizii", + "avatar_url": "https://avatars.githubusercontent.com/u/43408508?v=4", + "contributions": 7, + "profile_url": "https://github.com/ftlizii" + }, { "username": "tupig-7", "avatar_url": "https://avatars.githubusercontent.com/u/24478959?v=4", @@ -884,12 +902,6 @@ "contributions": 1, "profile_url": "https://github.com/icesword0760" }, - { - "username": "smallKeyboy", - "avatar_url": "https://avatars.githubusercontent.com/u/68474019?v=4", - "contributions": 1, - "profile_url": "https://github.com/smallKeyboy" - }, { "username": "abelzha", "avatar_url": "https://avatars.githubusercontent.com/u/32270905?v=4", @@ -985,6 +997,18 @@ "avatar_url": "https://avatars.githubusercontent.com/u/259089905?v=4", "contributions": 1, "profile_url": "https://github.com/Fenju-need-help" + }, + { + "username": "Tabris-Ayanami", + "avatar_url": "https://avatars.githubusercontent.com/u/108655822?v=4", + "contributions": 1, + "profile_url": "https://github.com/Tabris-Ayanami" + }, + { + "username": "hu-qi", + "avatar_url": "https://avatars.githubusercontent.com/u/17986122?v=4", + "contributions": 1, + "profile_url": "https://github.com/hu-qi" } ] } \ No newline at end of file diff --git a/.cache/project-stats.json b/.cache/project-stats.json index 6f06afa..7d7aa6d 100644 --- a/.cache/project-stats.json +++ b/.cache/project-stats.json @@ -1,40 +1,40 @@ { - "updated_at": "2026-06-15T14:44:37.328Z", + "updated_at": "2026-06-16T10:48:25.980Z", "repos": { "iflytek/astron-agent": { - "stars": 8561, + "stars": 8563, "forks": 853, - "updated_at": "2026-06-15T14:44:36.620Z" + "updated_at": "2026-06-16T10:42:05.919Z" }, "iflytek/astron-rpa": { - "stars": 5177, - "forks": 576, - "updated_at": "2026-06-15T14:44:36.738Z" + "stars": 5178, + "forks": 577, + "updated_at": "2026-06-16T10:42:06.397Z" }, "iflytek/astronclaw-tutorial": { "stars": 410, - "forks": 41, - "updated_at": "2026-06-15T14:44:36.857Z" + "forks": 43, + "updated_at": "2026-06-16T10:42:06.894Z" }, "harnessclaw/harnessclaw-engine": { "stars": 266, "forks": 91, - "updated_at": "2026-06-15T14:44:36.976Z" + "updated_at": "2026-06-16T10:36:47.258Z" }, "harnessclaw/harnessclaw": { "stars": 316, "forks": 82, - "updated_at": "2026-06-15T14:44:37.092Z" + "updated_at": "2026-06-16T10:36:47.357Z" }, "iflytek/iFly-Skills": { - "stars": 184, - "forks": 23, - "updated_at": "2026-06-15T14:44:37.207Z" + "stars": 186, + "forks": 24, + "updated_at": "2026-06-16T10:36:47.459Z" }, "iflytek/skillhub": { - "stars": 3471, - "forks": 502, - "updated_at": "2026-06-15T14:44:37.328Z" + "stars": 3486, + "forks": 505, + "updated_at": "2026-06-16T10:36:47.566Z" } } } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 7aa00b7..2900651 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ All notable changes to this project will be documented in this file. - **CSS Content Visibility**: `.i18n-zh`/`.i18n-en` CSS class system with `html.lang-en` class toggle for full-page bilingual content on static pages - **Bilingual Static Pages**: Full Chinese/English content for `/security` (安全策略), `/values` (社区价值观), `/cla` (贡献者许可协议) using dual-div layout - **i18n Coverage**: `data-i18n` attributes added to all pages — home, projects, project detail, contribute, events, landscape, blog, blog categories, pagination, post navigation, related posts +- **Project Icons**: Configure valid icon paths for 5 projects — Astron Agent, Astron RPA, AstronClaw Tutorial, HarnessClaw, SkillHub use local `/images/` icons. Projects without icons (iFly Skills, HarnessClaw Engine) fall back to first-letter display with gradient background +- **Adopters Page**: New `/adopters` page showcasing 10 enterprise customer stories from `iflytek/astron-agent` — Donghua Software, China Telecom Suzhou, Yunsuan Digital, Xiaoqu Tech, Shandong Yungu, Guangwu Interconnect, Beijing Yugou, FiberHome, Foxit Zhongshu, Xiangyang Dongsheng. Header matches events style (gradient + blurred circles), two-row marquee with opposite scroll directions (row 1 left, row 2 right), local logo images in `public/images/adopters/`. i18n-aware title (用户案例 / Adopters), bilingual descriptions +- **Project Card Icon Background**: Remove gradient background when project has a configured icon — only show gradient for first-letter fallback - **New Projects**: Add HarnessClaw (Electron desktop app, agent-management) and HarnessClaw Engine (Go LLM engine, agent-engine) — total 7 projects - **Landscape Rewrite**: Complete treemap rewrite matching awesome-astron-workflow.dev/landscape — 6 categories (agentic-workflow, agentic-automation, agent-skills, tutorial, agent-management, agent-engine), 3-column layout (42%/33%/25%), SVG ecosystem arrows, bilingual labels via `.i18n-zh`/`.i18n-en` - **Landscape Download Fix**: "Save HD Image" button uses CDN-based `html-to-image` (`is:inline` script) — fixes bundling issue where page-level ` diff --git a/src/config.yaml b/src/config.yaml index 41e8d4e..8436577 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -1,5 +1,5 @@ site: - name: iFLYTEK Open Source + name: 讯飞开源 site: 'https://opensource.iflytek.com' base: '/' trailingSlash: false @@ -7,14 +7,14 @@ site: # Default SEO metadata metadata: title: - default: iFLYTEK Open Source - template: '%s — iFLYTEK Open Source' + default: 讯飞开源 + template: '%s — 讯飞开源' description: 'iFLYTEK Open Source - Exploring AI, NLP, Speech Recognition and more open source projects from iFLYTEK.' robots: index: true follow: true openGraph: - site_name: iFLYTEK Open Source + site_name: 讯飞开源 images: - url: '~/assets/images/default.png' width: 1200 diff --git a/src/content.config.ts b/src/content.config.ts index 2347457..559cbbb 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -86,7 +86,26 @@ const projectCollection = defineCollection({ }), }); +const adopterCollection = defineCollection({ + loader: glob({ pattern: ['*.yaml', '*.yml'], base: 'src/data/adopters' }), + schema: z.object({ + name: z.string(), + nameEn: z.string().optional(), + logo: z.string(), + subtitle: z.string(), + subtitleEn: z.string().optional(), + tags: z.array(z.string()).optional(), + scenario: z.string(), + scenarioEn: z.string().optional(), + delivery: z.string(), + deliveryEn: z.string().optional(), + outcome: z.string(), + outcomeEn: z.string().optional(), + }), +}); + export const collections = { post: postCollection, project: projectCollection, + adopter: adopterCollection, }; diff --git a/src/data/adopters/chinatelecom.yaml b/src/data/adopters/chinatelecom.yaml new file mode 100644 index 0000000..9d3fae8 --- /dev/null +++ b/src/data/adopters/chinatelecom.yaml @@ -0,0 +1,15 @@ +name: 中国电信苏州分公司 +nameEn: China Telecom Suzhou +logo: /images/adopters/chinatelecom.png +subtitle: 内网业务受理与稽核 +subtitleEn: Intranet acceptance and audit +tags: + - 电信 + - 内网部署 + - 业务稽核 +scenario: 自动业务受理、业务稽核,全部运行在企业内网环境。 +scenarioEn: Automatic service acceptance and business auditing in a fully isolated enterprise network. +delivery: 围绕验证码识别、复杂页面定位和内网依赖注入,形成隔离网络下的实施方案。 +deliveryEn: Built an intranet-ready automation path around captcha recognition, dynamic element targeting, and dependency injection. +outcome: 推动核心流程进入灰度试运行,跑通高安全场景下的业务闭环。 +outcomeEn: Moved core workflows into gray release and proved a secure closed loop for acceptance and auditing. diff --git a/src/data/adopters/donghua.yaml b/src/data/adopters/donghua.yaml new file mode 100644 index 0000000..e75700c --- /dev/null +++ b/src/data/adopters/donghua.yaml @@ -0,0 +1,15 @@ +name: 东华软件 +nameEn: Donghua Software +logo: /images/adopters/donghua.png +subtitle: 金融行业方案验证 +subtitleEn: Financial workflow validation +tags: + - 金融 + - 数据处理 + - Agent + RPA +scenario: 银行征信数据归集、反洗钱报告生成,探索面向金融行业的智能体与自动化能力。 +scenarioEn: Credit data aggregation and anti-money-laundering report generation for banking workflows. +delivery: 补齐认证、容器部署、模型授权和 RPA 架构配置,串起可验证的业务闭环。 +deliveryEn: Completed authentication, container deployment, model authorization, and RPA architecture setup to validate an end-to-end solution. +outcome: 较快完成金融核心场景验证,为后续 OEM 与行业复制打下基础。 +outcomeEn: Accelerated solution verification for financial scenarios and prepared the ground for OEM and industry replication. diff --git a/src/data/adopters/fiberhome.yaml b/src/data/adopters/fiberhome.yaml new file mode 100644 index 0000000..b7bcda9 --- /dev/null +++ b/src/data/adopters/fiberhome.yaml @@ -0,0 +1,15 @@ +name: 烽火通信科技 +nameEn: FiberHome +logo: /images/adopters/fiberhome.png +subtitle: 离线环境自动化与系统联动 +subtitleEn: Offline automation and system orchestration +tags: + - 通信 + - 离线内网 + - Open API +scenario: 离线内网 RPA 自动化、界面录制回放、内网 AI 模型接入、与 Jenkins 等系统联动。 +scenarioEn: Offline RPA automation, recording and playback, private AI model access, and Jenkins integration. +delivery: 打通离线镜像导入、模拟人工输入、动态元素定位、自定义 AI 模型和 Open API 对接。 +deliveryEn: Completed the path for offline images, simulated typing, dynamic element targeting, custom AI access, and Open API integration. +outcome: 验证 Astron 在高安全隔离环境中的部署可行性,并为后续系统扩展留出接口。 +outcomeEn: Verified deployment feasibility in a highly secure environment and left clear extension points for future system integration. diff --git a/src/data/adopters/foxit.yaml b/src/data/adopters/foxit.yaml new file mode 100644 index 0000000..994e2da --- /dev/null +++ b/src/data/adopters/foxit.yaml @@ -0,0 +1,15 @@ +name: 厦门福昕中数 +nameEn: Foxit Zhongshu +logo: /images/adopters/foxit.jpg +subtitle: 数智员工与工作流编排 +subtitleEn: Digital workforce and workflow orchestration +tags: + - 软件产品 + - 工作流 + - 共建反馈 +scenario: 数智员工智能体、插件集成、工作流编排与 RPA 私有化部署。 +scenarioEn: Digital employee agents, plugin integration, workflow orchestration, and private RPA deployment. +delivery: 通过代码节点绕过接口限制,支持现有后端系统联调,并围绕 Skill 与任务拆分持续共建。 +deliveryEn: Used code nodes to work around payload restrictions and kept the existing backend integration moving forward. +outcome: 保障关键接口联调推进,同时沉淀多项可复用的产品反馈和共建成果。 +outcomeEn: Protected delivery progress while generating reusable product feedback and co-building value. diff --git a/src/data/adopters/guangwu.yaml b/src/data/adopters/guangwu.yaml new file mode 100644 index 0000000..1c44002 --- /dev/null +++ b/src/data/adopters/guangwu.yaml @@ -0,0 +1,15 @@ +name: 广物互联 +nameEn: Guangwu Interconnect +logo: /images/adopters/guangwu.jpg +subtitle: 企微集成与规划型 Agent 探索 +subtitleEn: WeCom and planning-oriented agents +tags: + - 企业服务 + - SSO + - 规划能力 +scenario: 企业微信集成、单点登录、具备规划能力的智能体应用探索。 +scenarioEn: WeCom integration, SSO, and planning-capable agent exploration. +delivery: 快速定位多组织登录问题,明确企微扫码登录、SSO 和规划能力的推进路径。 +deliveryEn: Quickly located multi-organization login issues and clarified the implementation path for WeCom and planning features. +outcome: 保证基础环境可用,帮助客户尽快明确后续集成与共建方向。 +outcomeEn: Kept the evaluation environment usable and helped the team align on the next integration steps. diff --git a/src/data/adopters/shandongyungu.yaml b/src/data/adopters/shandongyungu.yaml new file mode 100644 index 0000000..5be64ed --- /dev/null +++ b/src/data/adopters/shandongyungu.yaml @@ -0,0 +1,15 @@ +name: 山东云谷 +nameEn: Shandong Yungu +logo: /images/adopters/shandongyungu.png +subtitle: 财务自动化与 OCR 扩展 +subtitleEn: Finance automation and OCR extension +tags: + - 软件服务 + - 财务自动化 + - OCR 扩展 +scenario: 财务系统自动化、自动化测试、验证码与 OCR 扩展。 +scenarioEn: Finance system automation, automated testing, and captcha/OCR capability extension. +delivery: 排查环境冲突带来的拾取异常,提供第三方 OCR 接入路径和流程配置建议。 +deliveryEn: Resolved environment conflicts affecting element capture and provided a clear path for third-party OCR integration. +outcome: 完成业务环境下的可行性验证,为核心流程后续上线建立基础。 +outcomeEn: Validated technical feasibility in the customer environment and prepared the way for production rollout. diff --git a/src/data/adopters/xiangyang-dongsheng.yaml b/src/data/adopters/xiangyang-dongsheng.yaml new file mode 100644 index 0000000..581cb01 --- /dev/null +++ b/src/data/adopters/xiangyang-dongsheng.yaml @@ -0,0 +1,15 @@ +name: 襄阳东昇 +nameEn: Xiangyang Dongsheng +logo: /images/adopters/xiangyang-dongsheng.png +subtitle: 订单接收与办公自动化 +subtitleEn: Order intake and office automation +tags: + - 制造配套 + - 邮件自动化 + - Excel 自动化 +scenario: 订单自动接收、邮件附件自动下载处理、共享文件夹 Excel 自动化。 +scenarioEn: Automatic order intake, email attachment download, and shared-folder Excel processing. +delivery: 针对邮件组件、Excel 实例调度、路径转义和网页组件问题提供源码级修复与实施指导。 +deliveryEn: Provided source-level fixes and implementation guidance for email components, Excel instance control, and path handling. +outcome: 打通订单接收关键链路,提升无人值守运行稳定性,持续替代重复性办公工作。 +outcomeEn: Opened the key automation path for order intake and improved unattended operational stability. diff --git a/src/data/adopters/xiaoqu.yaml b/src/data/adopters/xiaoqu.yaml new file mode 100644 index 0000000..b66169a --- /dev/null +++ b/src/data/adopters/xiaoqu.yaml @@ -0,0 +1,15 @@ +name: 小趣科技 +nameEn: Xiaoqu Technology +logo: /images/adopters/xiaoqu.png +subtitle: 开发环境与二次开发调试 +subtitleEn: Developer environment and debugging +tags: + - 研发支持 + - 前后端分离 + - 开源版 +scenario: RPA 二次开发调试、前后端分离开发部署。 +scenarioEn: RPA secondary development, source debugging, and frontend-backend separated deployment. +delivery: 明确开源版支持前后端分离开发模式,帮助团队以更灵活的方式调试源码。 +deliveryEn: Confirmed support for separated development mode so the team could iterate and debug faster. +outcome: 消除部署不确定性,加快环境搭建和二次开发启动速度。 +outcomeEn: Removed deployment uncertainty and accelerated environment setup for custom development. diff --git a/src/data/adopters/yugou.yaml b/src/data/adopters/yugou.yaml new file mode 100644 index 0000000..dca23d6 --- /dev/null +++ b/src/data/adopters/yugou.yaml @@ -0,0 +1,15 @@ +name: 北京榆构 +nameEn: Beijing Yugou +logo: /images/adopters/yugou.jpg +subtitle: 企业知识库与数字人导览 +subtitleEn: Knowledge base and digital guide +tags: + - 制造业 + - 知识库 + - 私有化 +scenario: 企业私有知识库、数字人导览、智能体应用与 RPA 联动。 +scenarioEn: Private enterprise knowledge base, digital human guide, and Agent + RPA integration. +delivery: 围绕容器稳定性、Nginx/HTTPS、Casdoor 登录和联合部署链路完成排障。 +deliveryEn: Solved container stability, Nginx/HTTPS, Casdoor login, and joint deployment issues. +outcome: 在内网环境搭建起知识库和智能体底座,推动项目进入真实业务验证阶段。 +outcomeEn: Built a private knowledge and agent foundation and moved the project into real business validation. diff --git a/src/data/adopters/yunsuan.yaml b/src/data/adopters/yunsuan.yaml new file mode 100644 index 0000000..6cbd90e --- /dev/null +++ b/src/data/adopters/yunsuan.yaml @@ -0,0 +1,15 @@ +name: 云算数字科技 +nameEn: Yunsuan Digital Technology +logo: /images/adopters/yunsuan.jpg +subtitle: 智慧园区客服与数据分析 +subtitleEn: Smart campus service and analytics +tags: + - 园区运营 + - 数据清洗 + - 生产上线 +scenario: 智慧园区客服、竞品与热点分析、非结构化订单数据清洗。 +scenarioEn: Smart campus customer support, competitor and trend analysis, and unstructured order text transformation. +delivery: 利用大模型和 Prompt 将复杂文本转成结构化 JSON,并通过工作流写回业务系统。 +deliveryEn: Used LLM plus prompt design to convert raw business text into structured JSON and write it back through workflows. +outcome: 实现市场洞察自动化、客户服务智能化和数据录入闭环。 +outcomeEn: Enabled automated market insight, smarter service operations, and a closed-loop data entry process. diff --git a/src/data/projects/astron-agent.yaml b/src/data/projects/astron-agent.yaml index c24cc0c..96910af 100644 --- a/src/data/projects/astron-agent.yaml +++ b/src/data/projects/astron-agent.yaml @@ -11,4 +11,4 @@ featured: true stars: 8549 forks: 850 license: Apache-2.0 -icon: astron-agent +icon: /images/astron-agent.png diff --git a/src/data/projects/astron-rpa.yaml b/src/data/projects/astron-rpa.yaml index 5016fe6..c016705 100644 --- a/src/data/projects/astron-rpa.yaml +++ b/src/data/projects/astron-rpa.yaml @@ -11,4 +11,4 @@ featured: true stars: 5177 forks: 576 license: Apache-2.0 -icon: astron-rpa +icon: /images/astron-rpa.png diff --git a/src/data/projects/astronclaw-tutorial.yaml b/src/data/projects/astronclaw-tutorial.yaml index f79c2ac..5421098 100644 --- a/src/data/projects/astronclaw-tutorial.yaml +++ b/src/data/projects/astronclaw-tutorial.yaml @@ -11,4 +11,4 @@ featured: false stars: 410 forks: 41 license: Apache-2.0 -icon: astronclaw-tutorial +icon: /images/astronclaw-tutorial.png diff --git a/src/data/projects/harnessclaw-engine.yaml b/src/data/projects/harnessclaw-engine.yaml index af82134..f0fb6df 100644 --- a/src/data/projects/harnessclaw-engine.yaml +++ b/src/data/projects/harnessclaw-engine.yaml @@ -10,4 +10,3 @@ featured: false stars: 266 forks: 91 license: Apache-2.0 -icon: harnessclaw-engine diff --git a/src/data/projects/harnessclaw.yaml b/src/data/projects/harnessclaw.yaml index 68880c4..e8b28e8 100644 --- a/src/data/projects/harnessclaw.yaml +++ b/src/data/projects/harnessclaw.yaml @@ -10,4 +10,4 @@ featured: false stars: 316 forks: 82 license: Apache-2.0 -icon: harnessclaw +icon: /images/harnessclaw.png diff --git a/src/data/projects/ifly-skills.yaml b/src/data/projects/ifly-skills.yaml index 7e2b719..8ad759a 100644 --- a/src/data/projects/ifly-skills.yaml +++ b/src/data/projects/ifly-skills.yaml @@ -10,4 +10,3 @@ featured: false stars: 183 forks: 23 license: Apache-2.0 -icon: ifly-skills diff --git a/src/data/projects/skillhub.yaml b/src/data/projects/skillhub.yaml index ffe27c5..dc47248 100644 --- a/src/data/projects/skillhub.yaml +++ b/src/data/projects/skillhub.yaml @@ -11,4 +11,4 @@ featured: true stars: 3429 forks: 486 license: Apache-2.0 -icon: skillhub +icon: /images/skillhub-logo.svg diff --git a/src/navigation.ts b/src/navigation.ts index fa4d5f0..5d0daf1 100644 --- a/src/navigation.ts +++ b/src/navigation.ts @@ -54,6 +54,11 @@ export const headerData = { textEn: 'Contribute', href: getPermalink('/contribute'), }, + { + text: '用户', + textEn: 'Adopters', + href: getPermalink('/adopters'), + }, ], actions: [ { @@ -75,6 +80,7 @@ export const footerData = { { text: '博客', textEn: 'Blog', href: getBlogPermalink() }, { text: '活动', textEn: 'Events', href: getPermalink('/events') }, { text: '贡献', textEn: 'Contribute', href: getPermalink('/contribute') }, + { text: '用户', textEn: 'Adopters', href: getPermalink('/adopters') }, ], }, { @@ -93,6 +99,7 @@ export const footerData = { { text: 'iFLYTEK Official', href: 'https://www.iflytek.com' }, { text: 'GitHub', href: 'https://github.com/iflytek' }, { text: 'Gitee', href: 'https://gitee.com/organizations/iflytek' }, + { text: 'AtomGit', href: 'https://atomgit.com/ifly_opensource' }, ], }, { diff --git a/src/pages/adopters.astro b/src/pages/adopters.astro new file mode 100644 index 0000000..9807b3a --- /dev/null +++ b/src/pages/adopters.astro @@ -0,0 +1,275 @@ +--- +import Layout from '~/layouts/PageLayout.astro'; +import { getCollection } from 'astro:content'; + +const metadata = { + title: 'Adopters', +}; + +const adopters = await getCollection('adopter'); +const reversedAdopters = [...adopters].reverse(); +--- + + + +
+
+
+
+
+
+
+

+ 用户案例 +

+

+ 探索 Astron 开源生态的用户案例,了解各行业如何利用 AI Agent 平台实现业务创新 +

+
+
+
+ + +
+
+
+ { + adopters.map((adopter) => { + const { name, nameEn, logo, subtitle, subtitleEn, tags, scenario, scenarioEn } = adopter.data; + return ( +
+
+
+ {name} +
+
+

+ {name} +

+

+ {subtitle} +

+
+
+ {tags && tags.length > 0 && ( +
+ {tags.map((tag) => ( + + {tag} + + ))} +
+ )} +

+ {scenario} +

+
+ ); + }) + } + { + adopters.map((adopter) => { + const { name, nameEn, logo, subtitle, subtitleEn, tags, scenario, scenarioEn } = adopter.data; + return ( +
+
+
+ {name} +
+
+

+ {name} +

+

+ {subtitle} +

+
+
+ {tags && tags.length > 0 && ( +
+ {tags.map((tag) => ( + + {tag} + + ))} +
+ )} +

+ {scenario} +

+
+ ); + }) + } +
+
+
+ + +
+
+
+ { + reversedAdopters.map((adopter) => { + const { name, nameEn, logo, subtitle, subtitleEn, tags, scenario, scenarioEn } = adopter.data; + return ( +
+
+
+ {name} +
+
+

+ {name} +

+

+ {subtitle} +

+
+
+ {tags && tags.length > 0 && ( +
+ {tags.map((tag) => ( + + {tag} + + ))} +
+ )} +

+ {scenario} +

+
+ ); + }) + } + { + reversedAdopters.map((adopter) => { + const { name, nameEn, logo, subtitle, subtitleEn, tags, scenario, scenarioEn } = adopter.data; + return ( +
+
+
+ {name} +
+
+

+ {name} +

+

+ {subtitle} +

+
+
+ {tags && tags.length > 0 && ( +
+ {tags.map((tag) => ( + + {tag} + + ))} +
+ )} +

+ {scenario} +

+
+ ); + }) + } +
+
+
+
+ + diff --git a/src/pages/events.astro b/src/pages/events.astro index 708500c..e525462 100644 --- a/src/pages/events.astro +++ b/src/pages/events.astro @@ -173,7 +173,9 @@ const newsPosts = posts class="event-filter-btn rounded-full bg-primary-600 px-5 py-2 text-sm font-medium text-white" data-type="all" > - 全部 ({events.length}) + 全部 ({events.length}) { eventTypes.map((type) => ( diff --git a/src/pages/index.astro b/src/pages/index.astro index 8340bd8..9f90dad 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -37,7 +37,7 @@ const starDisplay = totalStars >= 1000 ? (totalStars / 1000).toFixed(1) + 'K' : ]} > - iFLYTEK + iFLYTEK Open Source @@ -123,7 +123,10 @@ const starDisplay = totalStars >= 1000 ? (totalStars / 1000).toFixed(1) + 'K' : /> - + sum + (p.data.stars || 0), 0);

科大讯飞开源项目生态全景 — {projects.length} 个项目,{totalStars.toLocaleString()} Stars讯飞开源项目生态全景 — {projects.length} 个项目,{totalStars.toLocaleString()} Stars iFLYTEK Open Source Ecosystem — {projects.length} projects, {totalStars.toLocaleString()} Stars sum + (p.data.forks || 0), stars={project.data.stars} forks={project.data.forks} license={project.data.license} + icon={project.data.icon} /> )) diff --git a/src/utils/translations.ts b/src/utils/translations.ts index 0fdeac0..6ea0f2f 100644 --- a/src/utils/translations.ts +++ b/src/utils/translations.ts @@ -221,6 +221,13 @@ export const translations: Record = { 'values.titleZh': { zh: '社区价值观', en: 'Community Values' }, 'cla.titleZh': { zh: '开源许可', en: 'Contributor License Agreement' }, + // Adopters + 'adopters.titleZh': { zh: '用户案例', en: 'Adopters' }, + 'adopters.subtitle': { + zh: '探索 Astron 开源生态的用户案例,了解各行业如何利用 AI Agent 平台实现业务创新', + en: 'Explore Astron open source ecosystem user cases, see how industries leverage AI Agent platform for business innovation', + }, + // Footer 'footer.wechatTitle': { zh: '微信扫码加入社区', en: 'Scan QR to join WeChat group' }, 'footer.wechatDesc': {