From d1f402a0ba5b898d84be8e16d3a3efe73622151e Mon Sep 17 00:00:00 2001 From: xgopilot Date: Thu, 29 Jan 2026 15:12:27 +0000 Subject: [PATCH 1/2] fix: Remove conflicting Astro files from Docusaurus project - Removed astro.config.mjs (conflicts with Docusaurus) - Removed Astro page components from src/pages/ - Removed rss.xml.js that imports Astro dependencies - Verified Docusaurus build succeeds after cleanup These Astro files were causing build errors with Docusaurus. The site now builds successfully with pure Docusaurus setup. Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: Nliver <34496563+Nliver@users.noreply.github.com> --- website/astro.config.mjs | 15 -- website/src/pages/blog/[slug].astro | 25 --- website/src/pages/blog/index.astro | 177 ------------------ website/src/pages/blog/tag/[tag].astro | 150 ---------------- website/src/pages/index.astro | 237 ------------------------- website/src/pages/rss.xml.js | 18 -- 6 files changed, 622 deletions(-) delete mode 100644 website/astro.config.mjs delete mode 100644 website/src/pages/blog/[slug].astro delete mode 100644 website/src/pages/blog/index.astro delete mode 100644 website/src/pages/blog/tag/[tag].astro delete mode 100644 website/src/pages/index.astro delete mode 100644 website/src/pages/rss.xml.js diff --git a/website/astro.config.mjs b/website/astro.config.mjs deleted file mode 100644 index 56526ca..0000000 --- a/website/astro.config.mjs +++ /dev/null @@ -1,15 +0,0 @@ -import { defineConfig } from 'astro/config'; -import mdx from '@astrojs/mdx'; - -// https://astro.build/config -export default defineConfig({ - site: 'https://qiniu.github.io', - base: '/techcamp', - integrations: [mdx()], - markdown: { - shikiConfig: { - theme: 'github-dark', - wrap: true - } - } -}); diff --git a/website/src/pages/blog/[slug].astro b/website/src/pages/blog/[slug].astro deleted file mode 100644 index 7e985eb..0000000 --- a/website/src/pages/blog/[slug].astro +++ /dev/null @@ -1,25 +0,0 @@ ---- -import { getCollection } from 'astro:content'; -import BlogLayout from '../../layouts/BlogLayout.astro'; - -export async function getStaticPaths() { - const posts = await getCollection('blog'); - return posts.map(post => ({ - params: { slug: post.slug }, - props: post, - })); -} - -const post = Astro.props; -const { Content } = await post.render(); ---- - - - - diff --git a/website/src/pages/blog/index.astro b/website/src/pages/blog/index.astro deleted file mode 100644 index 2065931..0000000 --- a/website/src/pages/blog/index.astro +++ /dev/null @@ -1,177 +0,0 @@ ---- -import BaseLayout from '../layouts/BaseLayout.astro'; -import { getCollection } from 'astro:content'; - -// Get all blog posts -const posts = (await getCollection('blog')).sort( - (a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf() -); - -// Get unique tags -const allTags = [...new Set(posts.flatMap(post => post.data.tags || []))]; ---- - - -
-
- - - {allTags.length > 0 && ( -
-

标签分类

-
- {allTags.map(tag => ( - #{tag} - ))} -
-
- )} - - - - {posts.length === 0 && ( -
-

暂无博客文章。

-

我们正在准备精彩的技术内容,敬请期待!

-
- )} -
-
-
- - diff --git a/website/src/pages/blog/tag/[tag].astro b/website/src/pages/blog/tag/[tag].astro deleted file mode 100644 index 7bcec48..0000000 --- a/website/src/pages/blog/tag/[tag].astro +++ /dev/null @@ -1,150 +0,0 @@ ---- -import BaseLayout from '../../../layouts/BaseLayout.astro'; -import { getCollection } from 'astro:content'; - -export async function getStaticPaths() { - const posts = await getCollection('blog'); - const allTags = [...new Set(posts.flatMap(post => post.data.tags || []))]; - - return allTags.map(tag => { - const filteredPosts = posts - .filter(post => post.data.tags?.includes(tag)) - .sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf()); - - return { - params: { tag }, - props: { posts: filteredPosts, tag }, - }; - }); -} - -const { posts, tag } = Astro.props; ---- - - - - - - diff --git a/website/src/pages/index.astro b/website/src/pages/index.astro deleted file mode 100644 index 001e0b9..0000000 --- a/website/src/pages/index.astro +++ /dev/null @@ -1,237 +0,0 @@ ---- -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - -
-
-

🚀 1024 TechCamp

-

携手成长,成就优秀工程师

-

- 1024 实训营,由七牛云发起,致力于打造一个开放、实践、创新的工程师成长平台。 - 以开源精神为基石,以工程实践为路径,以架构思维为指引,在真实项目中锤炼工程师的工匠精神。 -

- -
-
- -
-
-

项目特色

-
-
-

📖 开源公开

-

过程公开,结果开源,倒逼高质量产出,让优秀者容易被看见

-
-
-

🤖 AI Native

-

倡导 Build/Think/Code With AI,让 AI 成为你最强大的伙伴

-
-
-

🎯 技术纵深

-

挑战编程语言、编译器等高技术门槛项目,技术纵深足够

-
-
-

👨‍🏫 资深带教

-

资深专家全程陪跑,代码逐行审阅,架构反复推敲

-
-
-

🔄 全流程参与

-

从定方位到架构设计再到开发实现,体验完整的产品和架构思维

-
-
-

👥 小团队共创

-

3-5 人小组协作,激发潜能,培养团队协作和领导力

-
-
-
-
- - -
- - diff --git a/website/src/pages/rss.xml.js b/website/src/pages/rss.xml.js deleted file mode 100644 index e111a88..0000000 --- a/website/src/pages/rss.xml.js +++ /dev/null @@ -1,18 +0,0 @@ -import rss from '@astrojs/rss'; -import { getCollection } from 'astro:content'; - -export async function GET(context) { - const posts = await getCollection('blog'); - return rss({ - title: '1024 TechCamp Blog', - description: '1024 实训营技术博客 - 工程实践、架构设计、AI 开发等深度技术分享', - site: context.site, - items: posts.map((post) => ({ - title: post.data.title, - pubDate: post.data.pubDate, - description: post.data.description, - link: `/blog/${post.slug}/`, - })), - customData: `zh-CN`, - }); -} From c007e43fde08265dda73200ad4404813f680ca12 Mon Sep 17 00:00:00 2001 From: xgopilot Date: Thu, 29 Jan 2026 15:23:56 +0000 Subject: [PATCH 2/2] feat: standardize blog post slugs to kebab-case format - Changed slug format from '/blog/2025/slug-name' to 'slug-name' - Updated 21 blog posts to use clean kebab-case slugs - Images already correctly placed in website/static/img/blog/ - Build and dev server verified successfully Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: Nliver <34496563+Nliver@users.noreply.github.com> --- .../2025-01-15-engineering-practice-doing-small-things-well.md | 2 +- .../2025-01-17-engineering-practice-coding-is-not-first-step.md | 2 +- website/blog/2025-01-19-why-you-should-join-1024-techcamp.md | 2 +- .../blog/2025-01-21-engineer-core-competitiveness-in-ai-era.md | 2 +- website/blog/2025-01-23-qualities-of-excellent-engineers.md | 2 +- website/blog/2025-01-25-why-end-files-with-newline.md | 2 +- ...2025-01-27-understanding-xgo-compiler-through-type-system.md | 2 +- ...25-01-29-ai-reshaping-software-development-paradigm-shift.md | 2 +- .../2025-01-31-xu-shiwei-on-engineer-development-in-ai-era.md | 2 +- ...-02-02-xu-shiwei-releases-xgo-roadmap-programming-for-all.md | 2 +- .../2025-02-04-github-pr-merge-strategies-which-to-choose.md | 2 +- website/blog/2025-02-06-what-makes-ai-application-complete.md | 2 +- ...025-02-08-understanding-llgo-compiler-through-type-system.md | 2 +- website/blog/2025-02-10-what-code-review-is-not.md | 2 +- website/blog/2025-02-12-where-to-start-architecture-design.md | 2 +- website/blog/2025-02-14-insights-on-architecture-design.md | 2 +- ...25-02-16-spx-algorithm-building-multimodal-search-service.md | 2 +- ...5-02-18-code-is-not-core-decision-layers-in-xlink-project.md | 2 +- .../blog/2025-02-20-llpyg-bridge-for-llgo-python-integration.md | 2 +- website/blog/2025-02-22-xdraw-integrating-ai-into-products.md | 2 +- ...025-02-24-llgo-python-compilation-and-runtime-integration.md | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/website/blog/2025-01-15-engineering-practice-doing-small-things-well.md b/website/blog/2025-01-15-engineering-practice-doing-small-things-well.md index c69f6fd..e7720c4 100644 --- a/website/blog/2025-01-15-engineering-practice-doing-small-things-well.md +++ b/website/blog/2025-01-15-engineering-practice-doing-small-things-well.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/engineering-practice-doing-small-things-well +slug: engineering-practice-doing-small-things-well title: 工程实践分享 | 把小事做好 authors: - techcamp diff --git a/website/blog/2025-01-17-engineering-practice-coding-is-not-first-step.md b/website/blog/2025-01-17-engineering-practice-coding-is-not-first-step.md index 7b29bbb..e76fe67 100644 --- a/website/blog/2025-01-17-engineering-practice-coding-is-not-first-step.md +++ b/website/blog/2025-01-17-engineering-practice-coding-is-not-first-step.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/engineering-practice-coding-is-not-first-step +slug: engineering-practice-coding-is-not-first-step title: 工程实践分享|“写代码”不是第一步! authors: - techcamp diff --git a/website/blog/2025-01-19-why-you-should-join-1024-techcamp.md b/website/blog/2025-01-19-why-you-should-join-1024-techcamp.md index 0dab618..74aeae4 100644 --- a/website/blog/2025-01-19-why-you-should-join-1024-techcamp.md +++ b/website/blog/2025-01-19-why-you-should-join-1024-techcamp.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/why-you-should-join-1024-techcamp +slug: why-you-should-join-1024-techcamp title: 同学,为什么我建议你关注 1024 实训营? authors: - techcamp diff --git a/website/blog/2025-01-21-engineer-core-competitiveness-in-ai-era.md b/website/blog/2025-01-21-engineer-core-competitiveness-in-ai-era.md index bbfe0cc..a78d2b3 100644 --- a/website/blog/2025-01-21-engineer-core-competitiveness-in-ai-era.md +++ b/website/blog/2025-01-21-engineer-core-competitiveness-in-ai-era.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/engineer-core-competitiveness-in-ai-era +slug: engineer-core-competitiveness-in-ai-era title: 当 AI 能写代码,工程师的核心竞争力是什么? authors: - techcamp diff --git a/website/blog/2025-01-23-qualities-of-excellent-engineers.md b/website/blog/2025-01-23-qualities-of-excellent-engineers.md index ed8c970..6df2a25 100644 --- a/website/blog/2025-01-23-qualities-of-excellent-engineers.md +++ b/website/blog/2025-01-23-qualities-of-excellent-engineers.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/qualities-of-excellent-engineers +slug: qualities-of-excellent-engineers title: 我眼中的优秀工程师特质 authors: - techcamp diff --git a/website/blog/2025-01-25-why-end-files-with-newline.md b/website/blog/2025-01-25-why-end-files-with-newline.md index 13c5675..9d58340 100644 --- a/website/blog/2025-01-25-why-end-files-with-newline.md +++ b/website/blog/2025-01-25-why-end-files-with-newline.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/why-end-files-with-newline +slug: why-end-files-with-newline title: 一行之差:为什么你的文件末尾应该留一个空行? authors: - techcamp diff --git a/website/blog/2025-01-27-understanding-xgo-compiler-through-type-system.md b/website/blog/2025-01-27-understanding-xgo-compiler-through-type-system.md index bfce18c..da02cb9 100644 --- a/website/blog/2025-01-27-understanding-xgo-compiler-through-type-system.md +++ b/website/blog/2025-01-27-understanding-xgo-compiler-through-type-system.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/understanding-xgo-compiler-through-type-system +slug: understanding-xgo-compiler-through-type-system title: 从类型系统理解 XGo 编译器的实现 authors: - techcamp diff --git a/website/blog/2025-01-29-ai-reshaping-software-development-paradigm-shift.md b/website/blog/2025-01-29-ai-reshaping-software-development-paradigm-shift.md index 68eb0d9..f4c64cb 100644 --- a/website/blog/2025-01-29-ai-reshaping-software-development-paradigm-shift.md +++ b/website/blog/2025-01-29-ai-reshaping-software-development-paradigm-shift.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/ai-reshaping-software-development-paradigm-shift +slug: ai-reshaping-software-development-paradigm-shift title: AI 重构软件开发:从工具到规则的范式革命 authors: - techcamp diff --git a/website/blog/2025-01-31-xu-shiwei-on-engineer-development-in-ai-era.md b/website/blog/2025-01-31-xu-shiwei-on-engineer-development-in-ai-era.md index b2bfcc6..dcf0fa9 100644 --- a/website/blog/2025-01-31-xu-shiwei-on-engineer-development-in-ai-era.md +++ b/website/blog/2025-01-31-xu-shiwei-on-engineer-development-in-ai-era.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/xu-shiwei-on-engineer-development-in-ai-era +slug: xu-shiwei-on-engineer-development-in-ai-era title: 许式伟聊 AI 时代下的工程师发展观 authors: - techcamp diff --git a/website/blog/2025-02-02-xu-shiwei-releases-xgo-roadmap-programming-for-all.md b/website/blog/2025-02-02-xu-shiwei-releases-xgo-roadmap-programming-for-all.md index f66c240..6472ee2 100644 --- a/website/blog/2025-02-02-xu-shiwei-releases-xgo-roadmap-programming-for-all.md +++ b/website/blog/2025-02-02-xu-shiwei-releases-xgo-roadmap-programming-for-all.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/xu-shiwei-releases-xgo-roadmap-programming-for-all +slug: xu-shiwei-releases-xgo-roadmap-programming-for-all title: 许式伟发布 XGo 全景图:AI 时代的全民编程语言 authors: - techcamp diff --git a/website/blog/2025-02-04-github-pr-merge-strategies-which-to-choose.md b/website/blog/2025-02-04-github-pr-merge-strategies-which-to-choose.md index 2bd5097..c43edc4 100644 --- a/website/blog/2025-02-04-github-pr-merge-strategies-which-to-choose.md +++ b/website/blog/2025-02-04-github-pr-merge-strategies-which-to-choose.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/github-pr-merge-strategies-which-to-choose +slug: github-pr-merge-strategies-which-to-choose title: GitHub PR 合并三选一:主分支该怎么选? authors: - techcamp diff --git a/website/blog/2025-02-06-what-makes-ai-application-complete.md b/website/blog/2025-02-06-what-makes-ai-application-complete.md index 3bd445f..c4461a1 100644 --- a/website/blog/2025-02-06-what-makes-ai-application-complete.md +++ b/website/blog/2025-02-06-what-makes-ai-application-complete.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/what-makes-ai-application-complete +slug: what-makes-ai-application-complete title: 如何才算完成一个AI应用 authors: - techcamp diff --git a/website/blog/2025-02-08-understanding-llgo-compiler-through-type-system.md b/website/blog/2025-02-08-understanding-llgo-compiler-through-type-system.md index 20f8152..0e1ada0 100644 --- a/website/blog/2025-02-08-understanding-llgo-compiler-through-type-system.md +++ b/website/blog/2025-02-08-understanding-llgo-compiler-through-type-system.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/understanding-llgo-compiler-through-type-system +slug: understanding-llgo-compiler-through-type-system title: 从类型系统理解 LLGo 编译器的实现 authors: - techcamp diff --git a/website/blog/2025-02-10-what-code-review-is-not.md b/website/blog/2025-02-10-what-code-review-is-not.md index b6e2567..56b2ccd 100644 --- a/website/blog/2025-02-10-what-code-review-is-not.md +++ b/website/blog/2025-02-10-what-code-review-is-not.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/what-code-review-is-not +slug: what-code-review-is-not title: Code Review 不是什么 authors: - techcamp diff --git a/website/blog/2025-02-12-where-to-start-architecture-design.md b/website/blog/2025-02-12-where-to-start-architecture-design.md index 2316aed..f836f60 100644 --- a/website/blog/2025-02-12-where-to-start-architecture-design.md +++ b/website/blog/2025-02-12-where-to-start-architecture-design.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/where-to-start-architecture-design +slug: where-to-start-architecture-design title: 架构设计该从何入手 authors: - techcamp diff --git a/website/blog/2025-02-14-insights-on-architecture-design.md b/website/blog/2025-02-14-insights-on-architecture-design.md index b4bf1f0..bf232d7 100644 --- a/website/blog/2025-02-14-insights-on-architecture-design.md +++ b/website/blog/2025-02-14-insights-on-architecture-design.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/insights-on-architecture-design +slug: insights-on-architecture-design title: 关于架构设计的几点认知体会 authors: - techcamp diff --git a/website/blog/2025-02-16-spx-algorithm-building-multimodal-search-service.md b/website/blog/2025-02-16-spx-algorithm-building-multimodal-search-service.md index d80a5fb..be22ebe 100644 --- a/website/blog/2025-02-16-spx-algorithm-building-multimodal-search-service.md +++ b/website/blog/2025-02-16-spx-algorithm-building-multimodal-search-service.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/spx-algorithm-building-multimodal-search-service +slug: spx-algorithm-building-multimodal-search-service title: SPX-Algorithm:构建多模态搜索服务的一些心得 authors: - techcamp diff --git a/website/blog/2025-02-18-code-is-not-core-decision-layers-in-xlink-project.md b/website/blog/2025-02-18-code-is-not-core-decision-layers-in-xlink-project.md index e99708e..89451e3 100644 --- a/website/blog/2025-02-18-code-is-not-core-decision-layers-in-xlink-project.md +++ b/website/blog/2025-02-18-code-is-not-core-decision-layers-in-xlink-project.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/code-is-not-core-decision-layers-in-xlink-project +slug: code-is-not-core-decision-layers-in-xlink-project title: 代码不是核心:从 XLink 项目看产品开发的决策层次 authors: - techcamp diff --git a/website/blog/2025-02-20-llpyg-bridge-for-llgo-python-integration.md b/website/blog/2025-02-20-llpyg-bridge-for-llgo-python-integration.md index b89b531..d77780e 100644 --- a/website/blog/2025-02-20-llpyg-bridge-for-llgo-python-integration.md +++ b/website/blog/2025-02-20-llpyg-bridge-for-llgo-python-integration.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/llpyg-bridge-for-llgo-python-integration +slug: llpyg-bridge-for-llgo-python-integration title: 'llpyg: LLGo 快速集成 Python 生态的桥梁' authors: - techcamp diff --git a/website/blog/2025-02-22-xdraw-integrating-ai-into-products.md b/website/blog/2025-02-22-xdraw-integrating-ai-into-products.md index 49737dd..220f29e 100644 --- a/website/blog/2025-02-22-xdraw-integrating-ai-into-products.md +++ b/website/blog/2025-02-22-xdraw-integrating-ai-into-products.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/xdraw-integrating-ai-into-products +slug: xdraw-integrating-ai-into-products title: X绘图-我们是如何让AI更好的融入我们的产品的 authors: - techcamp diff --git a/website/blog/2025-02-24-llgo-python-compilation-and-runtime-integration.md b/website/blog/2025-02-24-llgo-python-compilation-and-runtime-integration.md index 9795042..0e0d2c8 100644 --- a/website/blog/2025-02-24-llgo-python-compilation-and-runtime-integration.md +++ b/website/blog/2025-02-24-llgo-python-compilation-and-runtime-integration.md @@ -1,5 +1,5 @@ --- -slug: /blog/2025/llgo-python-compilation-and-runtime-integration +slug: llgo-python-compilation-and-runtime-integration title: LLGo 中 Python 编译与运行时集成 authors: - techcamp