From df8df19a07e0484cc3e443a4db37f0bf3c4d1227 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 08:13:44 +0000
Subject: [PATCH 1/7] =?UTF-8?q?refactor(docs):=20=E8=AF=AD=E4=B9=89?=
=?UTF-8?q?=E5=8C=96=E9=87=8D=E7=BB=84=20=E2=80=94=20RAG=20=E5=BD=92=20AI?=
=?UTF-8?q?=20=E5=9F=BA=E7=A1=80=E6=A8=A1=E5=9E=8B=EF=BC=8CAI=20=E9=A1=B9?=
=?UTF-8?q?=E7=9B=AE=E5=BD=92=20AI=20=E7=9B=AE=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
背景:Scan 发现 3 处目录语义错配,这批修掉:
- CommunityShare/RAG/{rag,embedding,context-engineering-intro}
实际上是 AI 核心基础设施(检索增强、向量嵌入、上下文工程),
放社区分享目录既不好发现也语义错位 → ai/foundation-models/rag/
- all-projects/ai-town 是 AI 多智能体模拟项目,不应和通用项目混
→ ai/projects/
本 PR 也作为 sync-uuid 跨路径贡献者追踪机制的大规模验证。
Workflow 只在 main / feat/contributor 触发,feature 分支零风险
(DB 不动),merge 后在 main 自动跑一次 backfill 核对。
变更点:
1. git mv 4 份原文 + 4 份翻译(.en.mdx / .en.md)= 8 个文件
- rag.mdx (+.en) → ai/foundation-models/rag/
- embedding.mdx (+.en) → ai/foundation-models/rag/
- context_engineering_intro.md (+.en) → 同上(顺便 rename
下划线 → kebab-case 统一命名规范)
- ai-town.mdx (+.en) → ai/projects/
2. 所有 docId 原样保留(验证 grep "^docId:" 通过,8 份一致)
3. placeholder 标签 tag-one / ai-project 替换成真实内容标签:
- rag: rag-system / retrieval-augmented-generation / vector-search
- embedding: embedding-models / vector-representation / rag-system
- context-eng: context-engineering / prompt-engineering / llm-fundamentals
- ai-town: ai-agent-simulation / multi-agent-systems /
generative-agents / godot-engine
4. next.config.mjs 新增 async redirects(),所有老 URL 301 跳新
canonical,保护 SEO 权重 + 外链 + 用户收藏
验证预期(合 main 后 sync-uuid workflow 跑完):
- 涉及 4 个 docId 的老贡献者 contributions 保持不变
- longsizhuo 本次 rename commit 在每个 docId 上 +1
- generated/doc-contributors.json path 字段更新为新位置
剩余工作(独立 PR):
- 其余 78 份文档的 tag-one 占位符清理
- 文件名命名规范化批量(下划线 → kebab-case)
---
.../rag/context-engineering-intro.en.md} | 4 +-
.../rag/context-engineering-intro.md} | 4 +-
.../foundation-models/rag}/embedding.en.mdx | 0
.../foundation-models/rag}/embedding.mdx | 0
.../foundation-models/rag}/rag.en.mdx | 4 +-
.../RAG => ai/foundation-models/rag}/rag.mdx | 4 +-
.../projects}/ai-town.en.mdx | 5 ++-
.../{all-projects => ai/projects}/ai-town.mdx | 5 ++-
next.config.mjs | 39 +++++++++++++++++++
9 files changed, 59 insertions(+), 6 deletions(-)
rename app/docs/{CommunityShare/RAG/context_engineering_intro.en.md => ai/foundation-models/rag/context-engineering-intro.en.md} (97%)
rename app/docs/{CommunityShare/RAG/context_engineering_intro.md => ai/foundation-models/rag/context-engineering-intro.md} (97%)
rename app/docs/{CommunityShare/RAG => ai/foundation-models/rag}/embedding.en.mdx (100%)
rename app/docs/{CommunityShare/RAG => ai/foundation-models/rag}/embedding.mdx (100%)
rename app/docs/{CommunityShare/RAG => ai/foundation-models/rag}/rag.en.mdx (98%)
rename app/docs/{CommunityShare/RAG => ai/foundation-models/rag}/rag.mdx (98%)
rename app/docs/{all-projects => ai/projects}/ai-town.en.mdx (97%)
rename app/docs/{all-projects => ai/projects}/ai-town.mdx (97%)
diff --git a/app/docs/CommunityShare/RAG/context_engineering_intro.en.md b/app/docs/ai/foundation-models/rag/context-engineering-intro.en.md
similarity index 97%
rename from app/docs/CommunityShare/RAG/context_engineering_intro.en.md
rename to app/docs/ai/foundation-models/rag/context-engineering-intro.en.md
index 2291bcfb..17c6aabf 100644
--- a/app/docs/CommunityShare/RAG/context_engineering_intro.en.md
+++ b/app/docs/ai/foundation-models/rag/context-engineering-intro.en.md
@@ -3,7 +3,9 @@ title: A Quick Introduction to Context Engineering
description: ""
date: "2025-10-03"
tags:
- - tag-one
+ - context-engineering
+ - prompt-engineering
+ - llm-fundamentals
docId: wdqqrepoy43jiieyyjmaekk1
lang: en
translatedFrom: zh
diff --git a/app/docs/CommunityShare/RAG/context_engineering_intro.md b/app/docs/ai/foundation-models/rag/context-engineering-intro.md
similarity index 97%
rename from app/docs/CommunityShare/RAG/context_engineering_intro.md
rename to app/docs/ai/foundation-models/rag/context-engineering-intro.md
index dc4d966c..bad5519b 100644
--- a/app/docs/CommunityShare/RAG/context_engineering_intro.md
+++ b/app/docs/ai/foundation-models/rag/context-engineering-intro.md
@@ -3,7 +3,9 @@ title: context engineering 快速了解
description: ""
date: "2025-10-03"
tags:
- - tag-one
+ - context-engineering
+ - prompt-engineering
+ - llm-fundamentals
docId: wdqqrepoy43jiieyyjmaekk1
---
diff --git a/app/docs/CommunityShare/RAG/embedding.en.mdx b/app/docs/ai/foundation-models/rag/embedding.en.mdx
similarity index 100%
rename from app/docs/CommunityShare/RAG/embedding.en.mdx
rename to app/docs/ai/foundation-models/rag/embedding.en.mdx
diff --git a/app/docs/CommunityShare/RAG/embedding.mdx b/app/docs/ai/foundation-models/rag/embedding.mdx
similarity index 100%
rename from app/docs/CommunityShare/RAG/embedding.mdx
rename to app/docs/ai/foundation-models/rag/embedding.mdx
diff --git a/app/docs/CommunityShare/RAG/rag.en.mdx b/app/docs/ai/foundation-models/rag/rag.en.mdx
similarity index 98%
rename from app/docs/CommunityShare/RAG/rag.en.mdx
rename to app/docs/ai/foundation-models/rag/rag.en.mdx
index 9ca4be76..17fd6378 100644
--- a/app/docs/CommunityShare/RAG/rag.en.mdx
+++ b/app/docs/ai/foundation-models/rag/rag.en.mdx
@@ -3,7 +3,9 @@ title: RAG
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - rag-system
+ - retrieval-augmented-generation
+ - vector-search
docId: zywri1bs64awfi9utfjy14ll
lang: en
translatedFrom: zh
diff --git a/app/docs/CommunityShare/RAG/rag.mdx b/app/docs/ai/foundation-models/rag/rag.mdx
similarity index 98%
rename from app/docs/CommunityShare/RAG/rag.mdx
rename to app/docs/ai/foundation-models/rag/rag.mdx
index 222b8edc..eda70a00 100644
--- a/app/docs/CommunityShare/RAG/rag.mdx
+++ b/app/docs/ai/foundation-models/rag/rag.mdx
@@ -3,7 +3,9 @@ title: RAG
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - rag-system
+ - retrieval-augmented-generation
+ - vector-search
docId: zywri1bs64awfi9utfjy14ll
---
diff --git a/app/docs/all-projects/ai-town.en.mdx b/app/docs/ai/projects/ai-town.en.mdx
similarity index 97%
rename from app/docs/all-projects/ai-town.en.mdx
rename to app/docs/ai/projects/ai-town.en.mdx
index eda40423..ecf3d9a1 100644
--- a/app/docs/all-projects/ai-town.en.mdx
+++ b/app/docs/ai/projects/ai-town.en.mdx
@@ -3,7 +3,10 @@ title: AI Town Design Document
description: ""
date: "2025-10-18"
tags:
- - ai-project
+ - ai-agent-simulation
+ - multi-agent-systems
+ - generative-agents
+ - godot-engine
docId: bkxwg1m9p9rnm8062wsm020w
lang: en
translatedFrom: zh
diff --git a/app/docs/all-projects/ai-town.mdx b/app/docs/ai/projects/ai-town.mdx
similarity index 97%
rename from app/docs/all-projects/ai-town.mdx
rename to app/docs/ai/projects/ai-town.mdx
index 450d7f5e..7a99ec3b 100644
--- a/app/docs/all-projects/ai-town.mdx
+++ b/app/docs/ai/projects/ai-town.mdx
@@ -3,7 +3,10 @@ title: AI小镇策划
description: ""
date: "2025-10-18"
tags:
- - ai-project
+ - ai-agent-simulation
+ - multi-agent-systems
+ - generative-agents
+ - godot-engine
docId: bkxwg1m9p9rnm8062wsm020w
---
diff --git a/next.config.mjs b/next.config.mjs
index 567d8058..d900a44d 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -22,6 +22,45 @@ const withNextIntl = createNextIntlPlugin("./i18n/request.ts");
/** @type {import('next').NextConfig} */
const config = {
reactStrictMode: true,
+ /**
+ * 文档目录重组产生的老 URL → 新 canonical URL 的 301 重定向。
+ *
+ * 为什么需要:站点上线一段时间后,原路径被 Google 索引 + 被用户收藏 / 外链引用。
+ * 目录重组(比如把 CommunityShare/RAG/* 搬到 ai/foundation-models/rag/*)
+ * 必然改 URL;不加 301 的话老链接一律 404,SEO 权重流失 + 用户体验断裂。
+ *
+ * permanent=true 下发 308(Next.js 特性:permanent 对应 308,保留原 method;
+ * 普通文件重定向 308 和 301 对爬虫基本等价),浏览器 / 爬虫会缓存跳转关系,
+ * 后续直接打新 URL 省一次 round-trip。
+ *
+ * 每次再动 docs 路径,都要在这里补一条。
+ */
+ async redirects() {
+ return [
+ // feat/docs-reorg-rag-projects(2026-04-18)
+ {
+ source: "/docs/CommunityShare/RAG/rag",
+ destination: "/docs/ai/foundation-models/rag/rag",
+ permanent: true,
+ },
+ {
+ source: "/docs/CommunityShare/RAG/embedding",
+ destination: "/docs/ai/foundation-models/rag/embedding",
+ permanent: true,
+ },
+ {
+ // 文件名也规范化成 kebab-case:context_engineering_intro → context-engineering-intro
+ source: "/docs/CommunityShare/RAG/context_engineering_intro",
+ destination: "/docs/ai/foundation-models/rag/context-engineering-intro",
+ permanent: true,
+ },
+ {
+ source: "/docs/all-projects/ai-town",
+ destination: "/docs/ai/projects/ai-town",
+ permanent: true,
+ },
+ ];
+ },
async rewrites() {
const backendUrl = process.env.BACKEND_URL ?? "http://localhost:8080";
return [
From 7977987a1f11d944dc96291d8c0eb24f459a420c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 08:23:40 +0000
Subject: [PATCH 2/7] =?UTF-8?q?fix(redirects):=20=E4=BB=8E=20permanent:tru?=
=?UTF-8?q?e=20(308)=20=E6=94=B9=E6=88=90=20statusCode:=20301?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
此前 Next.js permanent:true 下发的是 308 Permanent Redirect,和 PR 描述
/ commit message 里写的 "301" 对不上。虽然 SEO 语义上 308 和 301 等价
(Google 都认永久跳转),但:
- 301 是最老最广为人知的"永久跳转"语义,老爬虫/老工具识别最稳
- Google Search Console 报告显式认 301
- 代码实际行为和文档口径对齐,避免后续阅读混淆
statusCode 与 permanent 互斥,优先级更高。这里显式用 statusCode:301
覆盖默认的 308 行为。
验证:node 直接 eval next.config.mjs 的 redirects() 返回 4 条全部带
statusCode:301,pnpm typecheck 通过。
---
next.config.mjs | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/next.config.mjs b/next.config.mjs
index d900a44d..f24acca2 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -29,9 +29,14 @@ const config = {
* 目录重组(比如把 CommunityShare/RAG/* 搬到 ai/foundation-models/rag/*)
* 必然改 URL;不加 301 的话老链接一律 404,SEO 权重流失 + 用户体验断裂。
*
- * permanent=true 下发 308(Next.js 特性:permanent 对应 308,保留原 method;
- * 普通文件重定向 308 和 301 对爬虫基本等价),浏览器 / 爬虫会缓存跳转关系,
- * 后续直接打新 URL 省一次 round-trip。
+ * 用 statusCode: 301 显式下发真正的 301("Moved Permanently")。
+ * Next.js 默认 permanent:true 下发的是 308 —— SEO 语义等价,但 HTTP
+ * 协议语义上 308 严格保留 method、301 对 POST 含糊。文档 URL 都是 GET,
+ * 两者对爬虫基本等价,选 301 是因为:
+ * - 历史最老最广为人知的"永久跳转"语义,老爬虫 / 老工具识别最稳
+ * - Google Search Console 报告里显式认 301
+ * - 和 commit 描述、PR 描述里写的 "301" 口径一致
+ * statusCode 与 permanent 互斥,这里用 statusCode 覆盖默认的 308 行为。
*
* 每次再动 docs 路径,都要在这里补一条。
*/
@@ -41,23 +46,23 @@ const config = {
{
source: "/docs/CommunityShare/RAG/rag",
destination: "/docs/ai/foundation-models/rag/rag",
- permanent: true,
+ statusCode: 301,
},
{
source: "/docs/CommunityShare/RAG/embedding",
destination: "/docs/ai/foundation-models/rag/embedding",
- permanent: true,
+ statusCode: 301,
},
{
// 文件名也规范化成 kebab-case:context_engineering_intro → context-engineering-intro
source: "/docs/CommunityShare/RAG/context_engineering_intro",
destination: "/docs/ai/foundation-models/rag/context-engineering-intro",
- permanent: true,
+ statusCode: 301,
},
{
source: "/docs/all-projects/ai-town",
destination: "/docs/ai/projects/ai-town",
- permanent: true,
+ statusCode: 301,
},
];
},
From 0c7c9819d600bf8809cd123608b95255348ff2d6 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 09:41:43 +0000
Subject: [PATCH 3/7] =?UTF-8?q?refactor(docs):=20phase=202=20=E2=80=94=20C?=
=?UTF-8?q?ommunityShare=20=E4=B8=8B=20AI=20=E5=86=85=E5=AE=B9=E8=BF=9B?=
=?UTF-8?q?=E4=B8=80=E6=AD=A5=E5=BD=92=E5=B9=B6=E5=88=B0=20ai/?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
延续 PR 初版的语义化重组思路,继续把散落在 CommunityShare 下的纯 AI 内容
移到 ai/ 主目录对应主题下。新增 4 个 docId 的迁移:
- CommunityShare/Geek/leworldmodel (JEPA 世界模型论文摘要)
→ ai/foundation-models/world-models/leworldmodel
- CommunityShare/Amazing-AI-Tools/perplexity-comet (AI 浏览器介绍)
→ ai/misc-tools/perplexity-comet
- CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms
(arXiv prompt 技巧论文摘要) → ai/foundation-models/prompt-engineering/
- CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo
→ ai/reinforcement-learning/ppo
新增 3 个 ai/ 下子目录:world-models / prompt-engineering / reinforcement-learning
顺手收拾的:
- ppo.md 原本是 tag-one 占位符 → [reinforcement-learning, ppo, policy-gradient, gae]
(和 PR #308 里对 ppo 的 tag 选择完全一致,merge 顺序无所谓)
- leworldmodel 原本 tag 是中文 "世界模型" → kebab-case 英文
[world-models, jepa, representation-learning, embodied-ai]
- 清理空目录 CommunityShare/Personal-Study-Notes/Reinforcement-Learning/
和 Personal-Study-Notes/
next.config.mjs 补 4 条 301,累计 8 条。statusCode:301 继续用显式 301
(和 PR / commit 口径一致)。
与 PR #308 (feat/docs-tag-cleanup) 的冲突风险:
本 PR 已经移走 ppo.md 并应用了和 PR #308 完全相同的 tag 更新。merge 顺序:
- 若本 PR 先合:PR #308 rebase 时会发现 ppo 老路径不存在,它对 ppo 的
tag 修改会变 "deleted by us / modified by them" 冲突,需要 drop
PR #308 中 ppo 那条 hunk(因为本 PR 已处理)
- 若 PR #308 先合:本 PR rebase 时 ppo 在老路径已有新 tags,git mv
自然工作,无冲突
推荐:**本 PR 先合**,然后 PR #308 rebase 时丢掉 ppo 相关改动。
docId 守恒(4 份原文 + 3 份翻译 = 7 个文件全部 grep 对齐):
- boo70qqm8nos8b0q9h7zjrki (leworldmodel)
- eej2awin6irhbdgcy8vvs3xb (perplexity-comet)
- l6eepr5ctjgrhdgupy3twr1t (prompt-repetition)
- zf8zk108oqbsg56xjyqb5txk (ppo)
Reviewer subagent LGTM,无阻塞问题。
---
...-repetition-improves-non-reasoning-llms.md | 0
...petition-improves-non-reasoning-llms.zh.md | 0
.../world-models}/leworldmodel.md | 5 +++-
.../world-models}/leworldmodel.zh.md | 5 +++-
.../misc-tools}/perplexity-comet.en.md | 0
.../misc-tools}/perplexity-comet.md | 0
.../reinforcement-learning}/ppo.md | 5 +++-
next.config.mjs | 24 +++++++++++++++++++
8 files changed, 36 insertions(+), 3 deletions(-)
rename app/docs/{CommunityShare/Amazing-AI-Tools => ai/foundation-models/prompt-engineering}/prompt-repetition-improves-non-reasoning-llms.md (100%)
rename app/docs/{CommunityShare/Amazing-AI-Tools => ai/foundation-models/prompt-engineering}/prompt-repetition-improves-non-reasoning-llms.zh.md (100%)
rename app/docs/{CommunityShare/Geek => ai/foundation-models/world-models}/leworldmodel.md (94%)
rename app/docs/{CommunityShare/Geek => ai/foundation-models/world-models}/leworldmodel.zh.md (94%)
rename app/docs/{CommunityShare/Amazing-AI-Tools => ai/misc-tools}/perplexity-comet.en.md (100%)
rename app/docs/{CommunityShare/Amazing-AI-Tools => ai/misc-tools}/perplexity-comet.md (100%)
rename app/docs/{CommunityShare/Personal-Study-Notes/Reinforcement-Learning => ai/reinforcement-learning}/ppo.md (98%)
diff --git a/app/docs/CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms.md b/app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.md
similarity index 100%
rename from app/docs/CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms.md
rename to app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.md
diff --git a/app/docs/CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms.zh.md b/app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms.zh.md
rename to app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.zh.md
diff --git a/app/docs/CommunityShare/Geek/leworldmodel.md b/app/docs/ai/foundation-models/world-models/leworldmodel.md
similarity index 94%
rename from app/docs/CommunityShare/Geek/leworldmodel.md
rename to app/docs/ai/foundation-models/world-models/leworldmodel.md
index e77fb22f..0339fc81 100644
--- a/app/docs/CommunityShare/Geek/leworldmodel.md
+++ b/app/docs/ai/foundation-models/world-models/leworldmodel.md
@@ -3,7 +3,10 @@ title: LeWorldModel
description: Stable End-to-End Joint-Embedding Predictive Architecture from Pixels
date: "2026-04-08"
tags:
- - 世界模型
+ - world-models
+ - jepa
+ - representation-learning
+ - embodied-ai
docId: boo70qqm8nos8b0q9h7zjrki
---
diff --git a/app/docs/CommunityShare/Geek/leworldmodel.zh.md b/app/docs/ai/foundation-models/world-models/leworldmodel.zh.md
similarity index 94%
rename from app/docs/CommunityShare/Geek/leworldmodel.zh.md
rename to app/docs/ai/foundation-models/world-models/leworldmodel.zh.md
index eb05a472..7aa0bab4 100644
--- a/app/docs/CommunityShare/Geek/leworldmodel.zh.md
+++ b/app/docs/ai/foundation-models/world-models/leworldmodel.zh.md
@@ -3,7 +3,10 @@ title: LeWorldModel
description: 从像素端到端稳定训练的联合嵌入预测架构
date: "2026-04-08"
tags:
- - 世界模型
+ - world-models
+ - jepa
+ - representation-learning
+ - embodied-ai
docId: boo70qqm8nos8b0q9h7zjrki
lang: zh
translatedFrom: en
diff --git a/app/docs/CommunityShare/Amazing-AI-Tools/perplexity-comet.en.md b/app/docs/ai/misc-tools/perplexity-comet.en.md
similarity index 100%
rename from app/docs/CommunityShare/Amazing-AI-Tools/perplexity-comet.en.md
rename to app/docs/ai/misc-tools/perplexity-comet.en.md
diff --git a/app/docs/CommunityShare/Amazing-AI-Tools/perplexity-comet.md b/app/docs/ai/misc-tools/perplexity-comet.md
similarity index 100%
rename from app/docs/CommunityShare/Amazing-AI-Tools/perplexity-comet.md
rename to app/docs/ai/misc-tools/perplexity-comet.md
diff --git a/app/docs/CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo.md b/app/docs/ai/reinforcement-learning/ppo.md
similarity index 98%
rename from app/docs/CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo.md
rename to app/docs/ai/reinforcement-learning/ppo.md
index 123c888a..785198e6 100644
--- a/app/docs/CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo.md
+++ b/app/docs/ai/reinforcement-learning/ppo.md
@@ -3,7 +3,10 @@ title: PPO
description: ""
date: "2025-10-03"
tags:
- - tag-one
+ - reinforcement-learning
+ - ppo
+ - policy-gradient
+ - gae
docId: zf8zk108oqbsg56xjyqb5txk
---
diff --git a/next.config.mjs b/next.config.mjs
index f24acca2..174ff9e7 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -64,6 +64,30 @@ const config = {
destination: "/docs/ai/projects/ai-town",
statusCode: 301,
},
+ // feat/docs-reorg-rag-projects phase 2:继续把 CommunityShare 下的 AI 内容归并到 ai/
+ {
+ source: "/docs/CommunityShare/Geek/leworldmodel",
+ destination: "/docs/ai/foundation-models/world-models/leworldmodel",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/Amazing-AI-Tools/perplexity-comet",
+ destination: "/docs/ai/misc-tools/perplexity-comet",
+ statusCode: 301,
+ },
+ {
+ source:
+ "/docs/CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms",
+ destination:
+ "/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms",
+ statusCode: 301,
+ },
+ {
+ source:
+ "/docs/CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo",
+ destination: "/docs/ai/reinforcement-learning/ppo",
+ statusCode: 301,
+ },
];
},
async rewrites() {
From 878afb1c59ff13ce26c321f1d7eec93136d72be5 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 08:29:53 +0000
Subject: [PATCH 4/7] =?UTF-8?q?chore(docs):=20=E6=B8=85=E7=90=86=20tag-one?=
=?UTF-8?q?=20=E5=8D=A0=E4=BD=8D=E7=AC=A6=20=E2=86=92=20=E7=9C=9F=E5=AE=9E?=
=?UTF-8?q?=E5=86=85=E5=AE=B9=E6=A0=87=E7=AD=BE=EF=BC=8828=20=E5=8E=9F?=
=?UTF-8?q?=E6=96=87=20+=2026=20=E7=BF=BB=E8=AF=91=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
背景:站点早期模板带 "tag-one" 占位符作为 frontmatter.tags 默认值,
contributors 撰文时没覆盖,30 份文档仍带占位符。tags 字段影响 sidebar
显示、未来可能接入的 tag 筛选 UI、SEO 结构化数据。批量清理。
作用域:
- 28 份原文 + 26 份 .en/.zh 翻译 = 54 个文件
- 跳过 PR #307 已在处理的 4 份(rag, embedding, context-eng, ai-town),
由那个 PR 负责清理,合并顺序无关
- 纯文本改动,零 URL 变化,无需 301 redirects
内容标签分类覆盖:
- CommunityShare/Geek: image-hosting / self-hosting / cdn / git-workflow
- CommunityShare/Life: unsw / university-benefits / australia-study
- CommunityShare/Personal-Study-Notes: reinforcement-learning / ppo / gae
- ai/Introduction-of-Multi-agents-system: multi-agent-systems / agent-framework
- ai/MoE: mixture-of-experts / model-architecture
- ai/Multi-agents-system-on-Code-Translation: code-translation / llm-application
- ai/ai-math-basics: math-textbooks / learning-resources / book-recommendations
- ai/misc-tools: ml-experiment-tracking / swanlab
- ai/recommender-systems: 6 份王树森笔记统一 recommender-systems 前缀 +
各章节专属标签(feature-crossing / retrieval / cold-start / ranking 等)
- computer-science/cpp_backend: 8 份统一 cpp-backend 前缀 + 子主题
(threadpool / memory-pool / build-system / gcc / cmake / vcpkg)
- jobs: career / interview-preparation / internship / australia-job-market
流程:
1. Scan + 自己起草 tag 提案
2. 派 reviewer subagent 读每份文档前 50 行审标签(9 处被挑出修正全部采纳)
3. Python 脚本原子替换 frontmatter 里 " - tag-one" → 多行新 tags
4. grep 校验残留:仅剩 PR #307 的 4 个文件
docId 全部原样保留,sync-uuid 合并后不会误判为新文档。
---
.../Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx | 6 +++++-
.../Geek/cloudflare-r2-sharex-free-image-hosting.mdx | 6 +++++-
app/docs/CommunityShare/Geek/git101.en.mdx | 5 ++++-
app/docs/CommunityShare/Geek/git101.mdx | 5 ++++-
app/docs/CommunityShare/Geek/picturecdn.en.mdx | 5 ++++-
app/docs/CommunityShare/Geek/picturecdn.mdx | 5 ++++-
app/docs/CommunityShare/Life/unsw-student-benefit.md | 5 ++++-
.../introduction_of_multi-agents_system.en.md | 4 +++-
.../introduction_of_multi-agents_system.md | 4 +++-
app/docs/ai/MoE/moe-update.en.md | 4 +++-
app/docs/ai/MoE/moe-update.md | 4 +++-
.../code-translation-intro.en.mdx | 5 ++++-
.../code-translation-intro.mdx | 5 ++++-
app/docs/ai/ai-math-basics/math_books.en.md | 5 ++++-
app/docs/ai/ai-math-basics/math_books.md | 5 ++++-
app/docs/ai/misc-tools/swanlab.en.mdx | 4 +++-
app/docs/ai/misc-tools/swanlab.mdx | 4 +++-
.../wangshusen_recommend_crossing.en.mdx | 4 +++-
.../recommender-systems/wangshusen_recommend_crossing.mdx | 4 +++-
.../wangshusen_recommend_note_retrieval.en.mdx | 4 +++-
.../wangshusen_recommend_note_retrieval.mdx | 4 +++-
.../wangshusen_recommend_note_coldstart.en.mdx | 4 +++-
.../wangshusen_recommend_note_coldstart.mdx | 4 +++-
.../wangshusen_recommend_note_improvement.en.mdx | 5 ++++-
.../wangshusen_recommend_note_improvement.mdx | 5 ++++-
.../wangshusen_recommend_note_rank.en.mdx | 4 +++-
.../recommender-systems/wangshusen_recommend_note_rank.mdx | 4 +++-
.../wangshusen_recommend_note_rerank.en.mdx | 4 +++-
.../wangshusen_recommend_note_rerank.mdx | 4 +++-
.../1_Handwritten_threadpool.en.md | 4 +++-
.../1_Handwritten_threadpool.md | 4 +++-
.../2_Handwritten_mempool1.en.md | 4 +++-
.../Handwritten_pool_components/2_Handwritten_mempool1.md | 4 +++-
.../cpp_backend/easy_compile/1_cpp_libs.en.md | 4 +++-
.../cpp_backend/easy_compile/1_cpp_libs.md | 4 +++-
.../cpp_backend/easy_compile/2_base_gcc.en.md | 4 +++-
.../cpp_backend/easy_compile/2_base_gcc.md | 4 +++-
.../computer-science/cpp_backend/easy_compile/3_Make.en.md | 4 +++-
.../computer-science/cpp_backend/easy_compile/3_Make.md | 4 +++-
.../cpp_backend/easy_compile/4_CMake.en.md | 4 +++-
.../computer-science/cpp_backend/easy_compile/4_CMake.md | 4 +++-
.../cpp_backend/easy_compile/5_vcpkg.en.md | 4 +++-
.../computer-science/cpp_backend/easy_compile/5_vcpkg.md | 4 +++-
.../computer-science/cpp_backend/mempool_simple.en.mdx | 4 +++-
app/docs/computer-science/cpp_backend/mempool_simple.mdx | 4 +++-
app/docs/jobs/event-keynote/coffee-chat.en.md | 7 ++++++-
app/docs/jobs/event-keynote/coffee-chat.md | 7 ++++++-
app/docs/jobs/interview-prep/interview-tips.en.mdx | 6 +++++-
app/docs/jobs/interview-prep/interview-tips.mdx | 6 +++++-
app/docs/jobs/interview-prep/pre-interview.en.md | 3 ++-
app/docs/jobs/interview-prep/pre-interview.md | 3 ++-
.../preparations-to-get-an-offer-as-a-student.en.mdx | 5 ++++-
.../preparations-to-get-an-offer-as-a-student.mdx | 5 ++++-
53 files changed, 184 insertions(+), 53 deletions(-)
diff --git a/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx b/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx
index 0bf00661..cebe0811 100644
--- a/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx
+++ b/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx
@@ -3,7 +3,11 @@ title: Building a Personal/Team "Permanent" Image Host with Cloudflare R2 + Shar
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - image-hosting
+ - cloudflare-r2
+ - sharex
+ - self-hosting
+ - cdn
docId: gj4bn01un0s0841berfvwrn5
lang: en
translatedFrom: zh
diff --git a/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.mdx b/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.mdx
index 83e40f0f..860b35ed 100644
--- a/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.mdx
+++ b/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.mdx
@@ -3,7 +3,11 @@ title: 使用 Cloudflare R2 + ShareX 搭建个人/团队专属“永久”图床
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - image-hosting
+ - cloudflare-r2
+ - sharex
+ - self-hosting
+ - cdn
docId: gj4bn01un0s0841berfvwrn5
---
diff --git a/app/docs/CommunityShare/Geek/git101.en.mdx b/app/docs/CommunityShare/Geek/git101.en.mdx
index 1fd63e67..441c388c 100644
--- a/app/docs/CommunityShare/Geek/git101.en.mdx
+++ b/app/docs/CommunityShare/Geek/git101.en.mdx
@@ -3,7 +3,10 @@ title: Git Getting Started Guide — Git Tips Every Developer Should Know
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - git-basics
+ - version-control
+ - git-workflow
+ - programmer-essentials
docId: tksz80mfqqyzwzzer5p3uxtg
lang: en
translatedFrom: zh
diff --git a/app/docs/CommunityShare/Geek/git101.mdx b/app/docs/CommunityShare/Geek/git101.mdx
index 9c826b6d..b5f4d225 100644
--- a/app/docs/CommunityShare/Geek/git101.mdx
+++ b/app/docs/CommunityShare/Geek/git101.mdx
@@ -3,7 +3,10 @@ title: Git入门操作指南-程序员必会的git小技巧
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - git-basics
+ - version-control
+ - git-workflow
+ - programmer-essentials
docId: tksz80mfqqyzwzzer5p3uxtg
---
diff --git a/app/docs/CommunityShare/Geek/picturecdn.en.mdx b/app/docs/CommunityShare/Geek/picturecdn.en.mdx
index dee8ac23..2570e5d7 100644
--- a/app/docs/CommunityShare/Geek/picturecdn.en.mdx
+++ b/app/docs/CommunityShare/Geek/picturecdn.en.mdx
@@ -3,7 +3,10 @@ title: How to Deploy Your Own GitHub Image Hosting with PictureCDN
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - image-hosting
+ - github-pages
+ - cdn
+ - self-hosting
docId: e6udpzrorhvgeeda6xpy1e0s
lang: en
translatedFrom: zh
diff --git a/app/docs/CommunityShare/Geek/picturecdn.mdx b/app/docs/CommunityShare/Geek/picturecdn.mdx
index 5e889896..012b9c34 100644
--- a/app/docs/CommunityShare/Geek/picturecdn.mdx
+++ b/app/docs/CommunityShare/Geek/picturecdn.mdx
@@ -3,7 +3,10 @@ title: 如何部署你自己的Github图床-PictureCDN
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - image-hosting
+ - github-pages
+ - cdn
+ - self-hosting
docId: e6udpzrorhvgeeda6xpy1e0s
---
diff --git a/app/docs/CommunityShare/Life/unsw-student-benefit.md b/app/docs/CommunityShare/Life/unsw-student-benefit.md
index a935456b..94f3d8aa 100644
--- a/app/docs/CommunityShare/Life/unsw-student-benefit.md
+++ b/app/docs/CommunityShare/Life/unsw-student-benefit.md
@@ -3,7 +3,10 @@ title: UNSW学费回收计划-那些你还不知道的隐藏福利
description: ""
date: "2025-10-03"
tags:
- - tag-one
+ - unsw
+ - university-benefits
+ - student-resources
+ - australia-study
docId: jgyg6bp0nceyrxirz5qw3zsv
---
diff --git a/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md b/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md
index 0c14307c..f82eda7f 100644
--- a/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md
+++ b/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md
@@ -3,7 +3,9 @@ title: Introduction of Multi-Agent Systems (For Any Task You Want)
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - multi-agent-systems
+ - agent-framework
+ - llm-agents
docId: h53uwefhlykt9ietsx9x0vtn
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md b/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md
index 0b3d18a0..3b8a7639 100644
--- a/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md
+++ b/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md
@@ -3,7 +3,9 @@ title: Introduction of Multi-agents system(In any task you want)
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - multi-agent-systems
+ - agent-framework
+ - llm-agents
docId: h53uwefhlykt9ietsx9x0vtn
---
diff --git a/app/docs/ai/MoE/moe-update.en.md b/app/docs/ai/MoE/moe-update.en.md
index 5f927c4c..3c9a30c8 100644
--- a/app/docs/ai/MoE/moe-update.en.md
+++ b/app/docs/ai/MoE/moe-update.en.md
@@ -3,7 +3,9 @@ title: "Theory of MoE"
description: ""
date: "2025-10-05"
tags:
- - tag-one
+ - mixture-of-experts
+ - model-architecture
+ - llm-fundamentals
docId: db3qwg25h6l0bh8f2sdabdqc
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/MoE/moe-update.md b/app/docs/ai/MoE/moe-update.md
index 463a6771..60ff96ff 100644
--- a/app/docs/ai/MoE/moe-update.md
+++ b/app/docs/ai/MoE/moe-update.md
@@ -3,7 +3,9 @@ title: "Theory of MoE"
description: ""
date: "2025-10-05"
tags:
- - tag-one
+ - mixture-of-experts
+ - model-architecture
+ - llm-fundamentals
docId: db3qwg25h6l0bh8f2sdabdqc
---
diff --git a/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx b/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx
index 59e3f5e8..6b0f8480 100644
--- a/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx
+++ b/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx
@@ -3,7 +3,10 @@ title: Essential Reading for Getting Started with Code Translation
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - code-translation
+ - llm-application
+ - paper-recommendations
+ - program-analysis
docId: qaezsrj15sudk796r5otne36
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx b/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx
index cc02e548..6b1ddbca 100644
--- a/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx
+++ b/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx
@@ -3,7 +3,10 @@ title: Code translation入门推荐必读
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - code-translation
+ - llm-application
+ - paper-recommendations
+ - program-analysis
docId: qaezsrj15sudk796r5otne36
---
diff --git a/app/docs/ai/ai-math-basics/math_books.en.md b/app/docs/ai/ai-math-basics/math_books.en.md
index 1d91e241..8b50e4f9 100644
--- a/app/docs/ai/ai-math-basics/math_books.en.md
+++ b/app/docs/ai/ai-math-basics/math_books.en.md
@@ -3,7 +3,10 @@ title: Recommended Books on Mathematics and Data Science
description: ""
date: "2025-10-06"
tags:
- - tag-one
+ - math-textbooks
+ - learning-resources
+ - data-science
+ - book-recommendations
docId: kzi6k1yg1sehlxidnxdsf59a
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/ai-math-basics/math_books.md b/app/docs/ai/ai-math-basics/math_books.md
index 6e23feca..069620ad 100644
--- a/app/docs/ai/ai-math-basics/math_books.md
+++ b/app/docs/ai/ai-math-basics/math_books.md
@@ -3,7 +3,10 @@ title: Recommended Books on Mathematics and Data Science
description: ""
date: "2025-10-06"
tags:
- - tag-one
+ - math-textbooks
+ - learning-resources
+ - data-science
+ - book-recommendations
docId: kzi6k1yg1sehlxidnxdsf59a
---
diff --git a/app/docs/ai/misc-tools/swanlab.en.mdx b/app/docs/ai/misc-tools/swanlab.en.mdx
index 00764a2d..cdd4e7fb 100644
--- a/app/docs/ai/misc-tools/swanlab.en.mdx
+++ b/app/docs/ai/misc-tools/swanlab.en.mdx
@@ -3,7 +3,9 @@ title: SwanLab Quick Start Guide
description: ""
date: "2025-09-23"
tags:
- - tag-one
+ - ml-experiment-tracking
+ - swanlab
+ - experiment-management
docId: mhyoknm6vj8jmp186oli5f5c
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/misc-tools/swanlab.mdx b/app/docs/ai/misc-tools/swanlab.mdx
index 2fe9e38f..a163b9c8 100644
--- a/app/docs/ai/misc-tools/swanlab.mdx
+++ b/app/docs/ai/misc-tools/swanlab.mdx
@@ -3,7 +3,9 @@ title: swanlab快速上手指南
description: ""
date: "2025-09-23"
tags:
- - tag-one
+ - ml-experiment-tracking
+ - swanlab
+ - experiment-management
docId: mhyoknm6vj8jmp186oli5f5c
---
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx
index 7f151738..7c9c5774 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx
@@ -3,7 +3,9 @@ title: Wang Shusen Recommender Systems Study Notes — Feature Crossing
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - feature-engineering
+ - feature-crossing
docId: hajz43iblku13mmevia8zrhv
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.mdx
index a0913532..56315f8a 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.mdx
@@ -3,7 +3,9 @@ title: 王树森推荐系统学习笔记_特征交叉
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - feature-engineering
+ - feature-crossing
docId: hajz43iblku13mmevia8zrhv
---
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx
index bed3c807..6af45dab 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx
@@ -3,7 +3,9 @@ title: Wang Shusen Recommender Systems Study Notes — Retrieval
description: ""
date: "2025-09-22"
tags:
- - tag-one
+ - recommender-systems
+ - retrieval
+ - candidate-generation
docId: c3a4nmid9plytif5ameigj7d
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx
index 230901ed..7a38ed74 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx
@@ -3,7 +3,9 @@ title: 王树森推荐系统学习笔记_召回
description: ""
date: "2025-09-22"
tags:
- - tag-one
+ - recommender-systems
+ - retrieval
+ - candidate-generation
docId: c3a4nmid9plytif5ameigj7d
---
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx
index 076246c1..12331bb8 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx
@@ -3,7 +3,9 @@ title: Wang Shusen Recommender Systems Study Notes — Cold Start
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - cold-start
+ - new-item-recommendation
docId: bvccoatft6y7bph83oivdcfe
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx
index 26d57e47..0eae5d34 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx
@@ -3,7 +3,9 @@ title: 王树森推荐系统学习笔记_冷启动
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - cold-start
+ - new-item-recommendation
docId: bvccoatft6y7bph83oivdcfe
---
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx
index 8398b775..659f7187 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx
@@ -3,7 +3,10 @@ title: Wang Shusen Recommender Systems Study Notes — Improving Metrics
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - metric-optimization
+ - retention-metrics
+ - user-growth
docId: qmy3p4vc45ek61ce4n62fpxy
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx
index 88dcf2a8..aec5007f 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx
@@ -3,7 +3,10 @@ title: 王树森推荐系统学习笔记_涨指标
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - metric-optimization
+ - retention-metrics
+ - user-growth
docId: qmy3p4vc45ek61ce4n62fpxy
---
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx
index 2ebfafc6..976ce574 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx
@@ -3,7 +3,9 @@ title: Wang Shusen Recommender Systems Study Notes — Ranking
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - ranking
+ - learning-to-rank
docId: vjwogf9afghpbvi71e4dfsgj
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.mdx
index 389b8681..7f5ac3c2 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.mdx
@@ -3,7 +3,9 @@ title: 王树森推荐系统学习笔记_排序
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - ranking
+ - learning-to-rank
docId: vjwogf9afghpbvi71e4dfsgj
---
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx
index 64c07ea5..404a6501 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx
@@ -3,7 +3,9 @@ title: Wang Shusen Recommender Systems Study Notes — Re-Ranking
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - reranking
+ - diversity
docId: ol03smbujgwztho45ycj52ah
lang: en
translatedFrom: zh
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx
index 3dfa2704..7694b724 100644
--- a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx
+++ b/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx
@@ -3,7 +3,9 @@ title: 王树森推荐系统学习笔记_重排
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - recommender-systems
+ - reranking
+ - diversity
docId: ol03smbujgwztho45ycj52ah
---
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md
index 79f12d08..c51d81ca 100644
--- a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md
+++ b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md
@@ -3,7 +3,9 @@ title: Handwritten Thread Pool
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - threadpool
+ - concurrent-programming
docId: mnjkrtrs7xk3fq538eqreuge
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md
index 1eaa40dd..6b2ae1de 100644
--- a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md
+++ b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md
@@ -3,7 +3,9 @@ title: 手写线程池
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - threadpool
+ - concurrent-programming
docId: mnjkrtrs7xk3fq538eqreuge
---
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md
index 8e0db091..e97c6719 100644
--- a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md
+++ b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md
@@ -3,7 +3,9 @@ title: Handwritten Fixed-Size Memory Pool
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - memory-pool
+ - system-programming
docId: xgxqqvglxyauoeh8eye7lzu6
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md
index 7566d4bb..0cbb09c5 100644
--- a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md
+++ b/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md
@@ -3,7 +3,9 @@ title: 手写定长内存池
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - memory-pool
+ - system-programming
docId: xgxqqvglxyauoeh8eye7lzu6
---
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.en.md b/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.en.md
index 366ae5c5..52d59da4 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.en.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.en.md
@@ -3,7 +3,9 @@ title: C++ Libraries on Linux/Windows
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - cpp-libraries
+ - development-environment
docId: totx4pej5lhyt1nl4anwhakj
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.md b/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.md
index 91c53507..01bb4df0 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.md
@@ -3,7 +3,9 @@ title: linux/win上的c++库
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - cpp-libraries
+ - development-environment
docId: totx4pej5lhyt1nl4anwhakj
---
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.en.md b/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.en.md
index c3ff693d..2533ff53 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.en.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.en.md
@@ -3,7 +3,9 @@ title: GCC/G++ Basics
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - gcc
+ - compiler-toolchain
docId: kyu85av71b4n07hbdycbhvj9
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.md b/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.md
index 4aa6c30e..5623a78a 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.md
@@ -3,7 +3,9 @@ title: 基础gcc/g++
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - gcc
+ - compiler-toolchain
docId: kyu85av71b4n07hbdycbhvj9
---
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/3_Make.en.md b/app/docs/computer-science/cpp_backend/easy_compile/3_Make.en.md
index ffc97465..4bb37496 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/3_Make.en.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/3_Make.en.md
@@ -3,7 +3,9 @@ title: Building with Make
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - makefile
+ - build-system
docId: g6wucmr69lamd9xyxm7uunnd
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/3_Make.md b/app/docs/computer-science/cpp_backend/easy_compile/3_Make.md
index 6fbf7598..080de044 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/3_Make.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/3_Make.md
@@ -3,7 +3,9 @@ title: Make编译
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - makefile
+ - build-system
docId: g6wucmr69lamd9xyxm7uunnd
---
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.en.md b/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.en.md
index e8cf0b52..4f704128 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.en.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.en.md
@@ -3,7 +3,9 @@ title: CMake
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - cmake
+ - build-system
docId: xk44lx4q1gpcm1uqk8nnbg7q
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.md b/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.md
index 67a011b6..4c646c75 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.md
@@ -3,7 +3,9 @@ title: CMake
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - cmake
+ - build-system
docId: xk44lx4q1gpcm1uqk8nnbg7q
---
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.en.md b/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.en.md
index 32444e07..42e87658 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.en.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.en.md
@@ -3,7 +3,9 @@ title: vcpkg Package Manager
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - vcpkg
+ - package-manager
docId: gtqamuq3tftmvzstbunkgbo5
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.md b/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.md
index bd16401f..af893590 100644
--- a/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.md
+++ b/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.md
@@ -3,7 +3,9 @@ title: vcpkg包管理器
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - cpp-backend
+ - vcpkg
+ - package-manager
docId: gtqamuq3tftmvzstbunkgbo5
---
diff --git a/app/docs/computer-science/cpp_backend/mempool_simple.en.mdx b/app/docs/computer-science/cpp_backend/mempool_simple.en.mdx
index b5384a7d..3e08345b 100644
--- a/app/docs/computer-science/cpp_backend/mempool_simple.en.mdx
+++ b/app/docs/computer-science/cpp_backend/mempool_simple.en.mdx
@@ -3,7 +3,9 @@ title: Handwritten Memory Pool (Simple Fixed-Size)
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - cpp-backend
+ - memory-pool
+ - memory-management
docId: q8290wmhyofuiskzn1ph63ta
lang: en
translatedFrom: zh
diff --git a/app/docs/computer-science/cpp_backend/mempool_simple.mdx b/app/docs/computer-science/cpp_backend/mempool_simple.mdx
index 17055e7e..bec779e1 100644
--- a/app/docs/computer-science/cpp_backend/mempool_simple.mdx
+++ b/app/docs/computer-science/cpp_backend/mempool_simple.mdx
@@ -3,7 +3,9 @@ title: 手写内存池(简单定长)
description: ""
date: "2025-09-27"
tags:
- - tag-one
+ - cpp-backend
+ - memory-pool
+ - memory-management
docId: q8290wmhyofuiskzn1ph63ta
---
diff --git a/app/docs/jobs/event-keynote/coffee-chat.en.md b/app/docs/jobs/event-keynote/coffee-chat.en.md
index 496e1fc8..388ee5a2 100644
--- a/app/docs/jobs/event-keynote/coffee-chat.en.md
+++ b/app/docs/jobs/event-keynote/coffee-chat.en.md
@@ -3,7 +3,12 @@ title: Senior Tech-Industry Engineer Coffee Chat Recap
description: ""
date: "2025-11-01"
tags:
- - tag-one
+ - career
+ - networking
+ - tech-industry
+ - australia-job-market
+ - career-path
+ - sre
docId: ld59a8z1v84ig4rlr0p0n2a9
lang: en
translatedFrom: zh
diff --git a/app/docs/jobs/event-keynote/coffee-chat.md b/app/docs/jobs/event-keynote/coffee-chat.md
index e0f16979..905ee849 100644
--- a/app/docs/jobs/event-keynote/coffee-chat.md
+++ b/app/docs/jobs/event-keynote/coffee-chat.md
@@ -3,7 +3,12 @@ title: 资深科技大厂程序员Coffee Chat回顾
description: ""
date: "2025-11-01"
tags:
- - tag-one
+ - career
+ - networking
+ - tech-industry
+ - australia-job-market
+ - career-path
+ - sre
docId: ld59a8z1v84ig4rlr0p0n2a9
---
diff --git a/app/docs/jobs/interview-prep/interview-tips.en.mdx b/app/docs/jobs/interview-prep/interview-tips.en.mdx
index 29d76160..8d579a4b 100644
--- a/app/docs/jobs/interview-prep/interview-tips.en.mdx
+++ b/app/docs/jobs/interview-prep/interview-tips.en.mdx
@@ -3,7 +3,11 @@ title: "Conquering Every Interview Stage | OA Coding Grind, HireVue Score Tricks
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - interview-preparation
+ - online-assessment
+ - video-interview
+ - group-interview
+ - australia-job-market
docId: fkk8ghklsr15a0s3vcxnswnj
lang: en
translatedFrom: zh
diff --git a/app/docs/jobs/interview-prep/interview-tips.mdx b/app/docs/jobs/interview-prep/interview-tips.mdx
index 38d72d74..4447d8c1 100644
--- a/app/docs/jobs/interview-prep/interview-tips.mdx
+++ b/app/docs/jobs/interview-prep/interview-tips.mdx
@@ -3,7 +3,11 @@ title: "面试阶段逐关击破 | OA刷题血泪史 + VI分数偷看技巧 +
description: ""
date: "2025-09-19"
tags:
- - tag-one
+ - interview-preparation
+ - online-assessment
+ - video-interview
+ - group-interview
+ - australia-job-market
docId: fkk8ghklsr15a0s3vcxnswnj
---
diff --git a/app/docs/jobs/interview-prep/pre-interview.en.md b/app/docs/jobs/interview-prep/pre-interview.en.md
index 25e38d14..47339507 100644
--- a/app/docs/jobs/interview-prep/pre-interview.en.md
+++ b/app/docs/jobs/interview-prep/pre-interview.en.md
@@ -3,7 +3,8 @@ title: "Must-Read Before Your Interview: Four Tips That Significantly Boost Your
description: ""
date: "2025-09-28"
tags:
- - tag-one
+ - interview-preparation
+ - career
docId: cgo4lweflk5jx1hsncr8hshk
lang: en
translatedFrom: zh
diff --git a/app/docs/jobs/interview-prep/pre-interview.md b/app/docs/jobs/interview-prep/pre-interview.md
index 48c407bd..6d2f7a26 100644
--- a/app/docs/jobs/interview-prep/pre-interview.md
+++ b/app/docs/jobs/interview-prep/pre-interview.md
@@ -3,7 +3,8 @@ title: " 面试前必看:掌握这四个小技巧,你的成功率会大大
description: ""
date: "2025-09-28"
tags:
- - tag-one
+ - interview-preparation
+ - career
docId: cgo4lweflk5jx1hsncr8hshk
---
diff --git a/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx b/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx
index c61ef16d..a3099c02 100644
--- a/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx
+++ b/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx
@@ -3,7 +3,10 @@ title: A Programmer's Guide to Job Searching and Internships as a Student
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - internship
+ - job-search
+ - new-grad
+ - student-career
docId: pne40puz5alzsf0f5jb0frbm
lang: en
translatedFrom: zh
diff --git a/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.mdx b/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.mdx
index 4d713f97..c0448ba4 100644
--- a/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.mdx
+++ b/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.mdx
@@ -3,7 +3,10 @@ title: 程序员学生时期求职与实习经验分享
description: ""
date: "2025-09-29"
tags:
- - tag-one
+ - internship
+ - job-search
+ - new-grad
+ - student-career
docId: pne40puz5alzsf0f5jb0frbm
---
From 00477dc5566168db8b182e14bf13fc016d18712a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 09:42:17 +0000
Subject: [PATCH 5/7] =?UTF-8?q?revert:=20ppo.md=20tag=20=E6=94=B9=E5=8A=A8?=
=?UTF-8?q?=E6=8C=AA=E5=88=B0=20PR=20#307=20=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
背景:PR #307 (feat/docs-reorg-rag-projects) 的 phase 2 新增把
CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo.md
移到 ai/reinforcement-learning/ppo.md 并同步更新 tags。
两个 PR 改同一个文件在同一行(tag-one → 真 tags)会 rebase 冲突。
本 PR 主动剔除对 ppo 的修改,由 PR #307 独占处理,merge 顺序无关。
其他 53 个文件(27 原文 + 26 翻译)的 tag 清理不受影响。
---
app/docs/ai/reinforcement-learning/ppo.md | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/app/docs/ai/reinforcement-learning/ppo.md b/app/docs/ai/reinforcement-learning/ppo.md
index 785198e6..123c888a 100644
--- a/app/docs/ai/reinforcement-learning/ppo.md
+++ b/app/docs/ai/reinforcement-learning/ppo.md
@@ -3,10 +3,7 @@ title: PPO
description: ""
date: "2025-10-03"
tags:
- - reinforcement-learning
- - ppo
- - policy-gradient
- - gae
+ - tag-one
docId: zf8zk108oqbsg56xjyqb5txk
---
From dd7bf83104efe3493cca8b5e2098ef8eb067749c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 08:36:03 +0000
Subject: [PATCH 6/7] =?UTF-8?q?refactor(docs):=20cpp=5Fbackend=20=E7=9B=AE?=
=?UTF-8?q?=E5=BD=95=E6=A0=91=E8=A7=84=E8=8C=83=E5=8C=96=20=E2=80=94=20?=
=?UTF-8?q?=E4=B8=8B=E5=88=92=E7=BA=BF=20/=20=E5=A4=A7=E9=A9=BC=E5=B3=B0?=
=?UTF-8?q?=20=E2=86=92=20kebab-case?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
背景:Involution Hell 文档站全站命名约定是 kebab-case,但 cpp_backend 整棵
子树残留早期混用风格:
- 下划线目录:cpp_backend / easy_compile
- 大驼峰目录:Handwritten_pool_components
- 下划线 + 大驼峰文件名:1_Handwritten_threadpool.md / 3_Make.md 等
批量规范化成 kebab-case,保留数字前缀以维持 sidebar 阅读顺序
(Fumadocs 按文件名字母序排 sidebar,去掉前缀会打乱 1→5 的教学顺序)。
变更:
- 3 个目录 rename
- 8 份原文 + 7 份 .en.md 翻译 = 17 个文件 git mv
- next.config.mjs 新增 async redirects(),8 条老 URL → 新 canonical 301 映射
使用 statusCode:301(不是 permanent:true 的 308),两者 SEO 等价,选 301
因识别最稳、和 PR 描述口径一致。Next.js 源码 allowedStatusCodes 里合法。
验证:
- git status 显示全部 R (rename),相似度 100%
- docId 守恒:grep "^docId:" 对照 8 个 docId 全部原样保留
- pnpm typecheck 通过
- node 实测 next.config.mjs 的 redirects() 返回 8 条全 statusCode:301
合并顺序:和 PR #307 / #308 独立,互不冲突(改动在完全不同的目录)。
流程:
1. 建分支 feat/docs-filename-kebab-case
2. mkdir 新目录 + git mv 17 个文件
3. rmdir 旧空目录
4. 加 301 redirects
5. reviewer subagent 审稿:误报 1(statusCode 实测 OK)+ 非阻塞 1
(generated/ JSON 由 sync-uuid CI 自动 regen,不应手动改)
6. 采纳 reviewer 关于注释措辞的建议,修掉 "HTTP/1.0" 这个不准的词
---
.../easy-compile/1-cpp-libs.en.md} | 0
.../easy-compile/1-cpp-libs.md} | 0
.../easy-compile/2-base-gcc.en.md} | 0
.../easy-compile/2-base-gcc.md} | 0
.../easy-compile/3-make.en.md} | 0
.../easy-compile/3-make.md} | 0
.../easy-compile/4-cmake.en.md} | 0
.../easy-compile/4-cmake.md} | 0
.../easy-compile/5-vcpkg.en.md} | 0
.../easy-compile/5-vcpkg.md} | 0
.../1-handwritten-threadpool.en.md} | 0
.../1-handwritten-threadpool.md} | 0
.../2-handwritten-mempool1.en.md} | 0
.../2-handwritten-mempool1.md} | 0
.../mempool-simple.en.mdx} | 0
.../mempool-simple.mdx} | 0
next.config.mjs | 72 ++++++++++++++-----
17 files changed, 56 insertions(+), 16 deletions(-)
rename app/docs/computer-science/{cpp_backend/easy_compile/1_cpp_libs.en.md => cpp-backend/easy-compile/1-cpp-libs.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/1_cpp_libs.md => cpp-backend/easy-compile/1-cpp-libs.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/2_base_gcc.en.md => cpp-backend/easy-compile/2-base-gcc.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/2_base_gcc.md => cpp-backend/easy-compile/2-base-gcc.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/3_Make.en.md => cpp-backend/easy-compile/3-make.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/3_Make.md => cpp-backend/easy-compile/3-make.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/4_CMake.en.md => cpp-backend/easy-compile/4-cmake.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/4_CMake.md => cpp-backend/easy-compile/4-cmake.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/5_vcpkg.en.md => cpp-backend/easy-compile/5-vcpkg.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/easy_compile/5_vcpkg.md => cpp-backend/easy-compile/5-vcpkg.md} (100%)
rename app/docs/computer-science/{cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md => cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md => cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md} (100%)
rename app/docs/computer-science/{cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md => cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md} (100%)
rename app/docs/computer-science/{cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md => cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md} (100%)
rename app/docs/computer-science/{cpp_backend/mempool_simple.en.mdx => cpp-backend/mempool-simple.en.mdx} (100%)
rename app/docs/computer-science/{cpp_backend/mempool_simple.mdx => cpp-backend/mempool-simple.mdx} (100%)
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.en.md b/app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.en.md
rename to app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.en.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.md b/app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs.md
rename to app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.en.md b/app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.en.md
rename to app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.en.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.md b/app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/2_base_gcc.md
rename to app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/3_Make.en.md b/app/docs/computer-science/cpp-backend/easy-compile/3-make.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/3_Make.en.md
rename to app/docs/computer-science/cpp-backend/easy-compile/3-make.en.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/3_Make.md b/app/docs/computer-science/cpp-backend/easy-compile/3-make.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/3_Make.md
rename to app/docs/computer-science/cpp-backend/easy-compile/3-make.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.en.md b/app/docs/computer-science/cpp-backend/easy-compile/4-cmake.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/4_CMake.en.md
rename to app/docs/computer-science/cpp-backend/easy-compile/4-cmake.en.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/4_CMake.md b/app/docs/computer-science/cpp-backend/easy-compile/4-cmake.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/4_CMake.md
rename to app/docs/computer-science/cpp-backend/easy-compile/4-cmake.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.en.md b/app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.en.md
rename to app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.en.md
diff --git a/app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.md b/app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/easy_compile/5_vcpkg.md
rename to app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.md
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md b/app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.en.md
rename to app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md b/app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool.md
rename to app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md b/app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.en.md
rename to app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md
diff --git a/app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md b/app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md
similarity index 100%
rename from app/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1.md
rename to app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md
diff --git a/app/docs/computer-science/cpp_backend/mempool_simple.en.mdx b/app/docs/computer-science/cpp-backend/mempool-simple.en.mdx
similarity index 100%
rename from app/docs/computer-science/cpp_backend/mempool_simple.en.mdx
rename to app/docs/computer-science/cpp-backend/mempool-simple.en.mdx
diff --git a/app/docs/computer-science/cpp_backend/mempool_simple.mdx b/app/docs/computer-science/cpp-backend/mempool-simple.mdx
similarity index 100%
rename from app/docs/computer-science/cpp_backend/mempool_simple.mdx
rename to app/docs/computer-science/cpp-backend/mempool-simple.mdx
diff --git a/next.config.mjs b/next.config.mjs
index 174ff9e7..fcfd531d 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -23,26 +23,20 @@ const withNextIntl = createNextIntlPlugin("./i18n/request.ts");
const config = {
reactStrictMode: true,
/**
- * 文档目录重组产生的老 URL → 新 canonical URL 的 301 重定向。
+ * docs 目录整理产生的 URL 变化 → 301 重定向。
*
- * 为什么需要:站点上线一段时间后,原路径被 Google 索引 + 被用户收藏 / 外链引用。
- * 目录重组(比如把 CommunityShare/RAG/* 搬到 ai/foundation-models/rag/*)
- * 必然改 URL;不加 301 的话老链接一律 404,SEO 权重流失 + 用户体验断裂。
+ * 为什么要 301:站点上线一段时间后,原路径被 Google 索引 + 被用户收藏 / 外链。
+ * 改目录 / 文件名必然改 URL,不加 301 的话老链接 404,SEO 权重流失 +
+ * 用户体验断裂。statusCode:301 显式下发 "Moved Permanently"(不是 Next.js
+ * 默认 permanent:true 的 308)。两者 SEO 语义等价,选 301 因为识别最稳、
+ * 和 PR / commit 描述口径一致。statusCode 与 permanent 互斥;Next.js 源码
+ * redirect-status.js 里 allowedStatusCodes = {301,302,303,307,308},合法。
*
- * 用 statusCode: 301 显式下发真正的 301("Moved Permanently")。
- * Next.js 默认 permanent:true 下发的是 308 —— SEO 语义等价,但 HTTP
- * 协议语义上 308 严格保留 method、301 对 POST 含糊。文档 URL 都是 GET,
- * 两者对爬虫基本等价,选 301 是因为:
- * - 历史最老最广为人知的"永久跳转"语义,老爬虫 / 老工具识别最稳
- * - Google Search Console 报告里显式认 301
- * - 和 commit 描述、PR 描述里写的 "301" 口径一致
- * statusCode 与 permanent 互斥,这里用 statusCode 覆盖默认的 308 行为。
- *
- * 每次再动 docs 路径,都要在这里补一条。
+ * 每次再动 docs 路径都要在这里补一条。
*/
async redirects() {
return [
- // feat/docs-reorg-rag-projects(2026-04-18)
+ // feat/docs-reorg-rag-projects(2026-04-18)RAG / AI 项目 / CommunityShare → ai/ 归并
{
source: "/docs/CommunityShare/RAG/rag",
destination: "/docs/ai/foundation-models/rag/rag",
@@ -64,7 +58,6 @@ const config = {
destination: "/docs/ai/projects/ai-town",
statusCode: 301,
},
- // feat/docs-reorg-rag-projects phase 2:继续把 CommunityShare 下的 AI 内容归并到 ai/
{
source: "/docs/CommunityShare/Geek/leworldmodel",
destination: "/docs/ai/foundation-models/world-models/leworldmodel",
@@ -88,6 +81,53 @@ const config = {
destination: "/docs/ai/reinforcement-learning/ppo",
statusCode: 301,
},
+ // feat/docs-filename-kebab-case(2026-04-18)cpp_backend 目录树规范化:下划线 / 大驼峰 → kebab-case
+ {
+ source: "/docs/computer-science/cpp_backend/mempool_simple",
+ destination: "/docs/computer-science/cpp-backend/mempool-simple",
+ statusCode: 301,
+ },
+ {
+ source:
+ "/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool",
+ destination:
+ "/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool",
+ statusCode: 301,
+ },
+ {
+ source:
+ "/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1",
+ destination:
+ "/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs",
+ destination:
+ "/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/computer-science/cpp_backend/easy_compile/2_base_gcc",
+ destination:
+ "/docs/computer-science/cpp-backend/easy-compile/2-base-gcc",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/computer-science/cpp_backend/easy_compile/3_Make",
+ destination: "/docs/computer-science/cpp-backend/easy-compile/3-make",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/computer-science/cpp_backend/easy_compile/4_CMake",
+ destination: "/docs/computer-science/cpp-backend/easy-compile/4-cmake",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/computer-science/cpp_backend/easy_compile/5_vcpkg",
+ destination: "/docs/computer-science/cpp-backend/easy-compile/5-vcpkg",
+ statusCode: 301,
+ },
];
},
async rewrites() {
From 5cd9d2edc2a91b435ff2bffe96d46c55228db57a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 18 Apr 2026 16:34:32 +0000
Subject: [PATCH 7/7] =?UTF-8?q?refactor(docs):=20Option=20C=20IA=20?=
=?UTF-8?q?=E5=A4=A7=E9=87=8D=E7=BB=84=20=E2=80=94=20=E6=8C=89=E8=AF=BB?=
=?UTF-8?q?=E8=80=85=E6=84=8F=E5=9B=BE=E5=88=86=20learn/career/community/p?=
=?UTF-8?q?rojects=20=E5=9B=9B=E5=A4=A7=E5=8C=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Admin 反馈"目录结构要重新设计,很多内容过时"。经 owner 拍板选方案 C(按
读者意图分类),全站 docs 在本 PR 内一次到位,避免分多个 PR 把 contributors
的 review 路径切碎。
# 顶层结构(Before → After)
- ai/ → learn/ai/ (AI 学科知识)
- computer-science/ → learn/cs/ (CS 基础 + 系统)
- jobs/interview-prep/ → career/interview-prep/ (刷题 BQ OA VI)
- jobs/event-keynote/ → career/events/ (Coffee Chat / Mock Interview)
- CommunityShare/Leetcode/ → career/interview-prep/leetcode/ (50+ 题解归求职刷题)
- CommunityShare/Amazing-AI-Tools/perplexity-comet → community/tools/ (工具推荐)
- CommunityShare/Amazing-AI-Tools/prompt-repetition → community/papers/ (论文摘要)
- CommunityShare/Geek/leworldmodel → community/papers/ (JEPA paper)
- CommunityShare/Geek/*(其他) → community/dev-tips/ (开发技巧)
- CommunityShare/Language/ → community/language/
- CommunityShare/Life/ → community/life/
- CommunityShare/MentalHealth/ → community/mental-health/
- CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo
→ learn/ai/reinforcement-learning/ppo
- all-projects/ + ai/projects/ → projects/(项目文档顶层化)
# 变更清单
1. 新增 4 个顶层区 index.mdx (learn / career / community 原有 / projects)
加上 SectionIndex 作为品类着陆页
2. 31 条 301 redirects(statusCode:301),覆盖所有老 URL
- 特殊文件级(RAG / leworldmodel / perplexity-comet / prompt-repetition /
ppo / swanlab / cpp_backend 老名字 / all-projects/ai-town 等)排前
- Wildcard 顶层区(/docs/ai/:path* / /docs/computer-science/:path* /
/docs/jobs/{interview-prep,event-keynote}/:path* / /docs/all-projects/:path* /
CommunityShare/{Leetcode,Language,Life,MentalHealth,Geek,Amazing-AI-Tools}/:path*)
排后做兜底
3. Hard-coded URL 修正:Hero.tsx / Footer.tsx / layout.tsx / source.ts /
SectionIndex.tsx / [...slug]/page.tsx 注释 / dev_docs/umami_tracking.md
4. data/event.json 三条 playback URL + coffee-chat.md 内链域名统一成
involutionhell.com + 路径指向新位置
5. SectionIndex root props 更新:
- community/index.mdx: root="community"
- career/interview-prep/leetcode/index.mdx: root="career/interview-prep/leetcode"
6. lib/source.ts pinyin transformer 前缀匹配更新
# docId 守恒
所有 289 个 .mdx/.md 文件的 docId 原样保留,sync-uuid workflow 合 main
后 backfill 按 docId 聚合,老贡献者 contributions 不变,longsizhuo 本轮
rename commit 在每个涉及的 docId 上 +1。
# reviewer subagent 审后修正
reviewer 审出 3 条 P0 死链 + 4 条 P1 index 缺失 + 3 条 P2 陈旧注释,全部
采纳并修完:
- P0 Footer /docs/career 404 → 新建 career/index.mdx
- P0 event.json playback 旧路径 → sed 批量替换
- P0 coffee-chat 内链 vercel.app + 旧路径 → 统一 involutionhell.com + 新路径
- P1 learn/ 和 projects/ 无 index → 新建 index.mdx
- P1 /docs/all-projects 裸路径无 redirect → 补 redirect 规则
- P2 SectionIndex / page.tsx / [...slug] / umami_tracking 注释旧术语 → sed 更新
# 后续工作
- Leetcode 50+ 题解文件名规范化(走 pinyin 路由,URL 规则特殊)
- frontmatter status 字段(active/deprecated/archived)机制接入
- archive/ 过期内容治理(本 PR 暂未创建目录,等 owner/admin 标记具体哪些过期)
---
app/components/Footer.tsx | 8 +-
app/components/Hero.tsx | 10 +-
app/components/docs/SectionIndex.tsx | 20 +--
app/docs/[...slug]/page.tsx | 2 +-
.../events}/coffee-chat.en.md | 2 +-
.../events}/coffee-chat.md | 2 +-
.../events}/event-takeway.en.md | 0
.../events}/event-takeway.md | 0
app/docs/career/index.mdx | 15 ++
.../{jobs => career}/interview-prep/bq.en.md | 0
.../{jobs => career}/interview-prep/bq.md | 0
.../interview-prep/interview-tips.en.mdx | 0
.../interview-prep/interview-tips.mdx | 0
.../1004-max-consecutive-ones-iii.en.md | 0
.../leetcode}/1004_translated.md | 0
.../121-best-time-to-buy-and-sell-stock.en.md | 0
...eplace-substring-for-balanced-string.en.md | 0
...227\347\254\246\344\270\262_translated.md" | 0
...by-vegan-friendly-price-and-distance.en.md | 0
.../leetcode}/142-linked-list-cycle-ii.en.md | 0
...2\351\223\276\350\241\250II_translated.md" | 8 +-
.../leetcode}/146-lru-cache.en.md | 0
...45-find-kth-bit-in-nth-binary-string.en.md | 0
...um-deletions-to-make-string-balanced.en.md | 0
...244\346\254\241\346\225\260_translated.md" | 0
.../1664-ways-to-make-a-fair-array.en.md | 0
...271\346\241\210\346\225\260_translated.md" | 0
.../leetcode}/1825-mk-average.en.md | 0
...263\345\235\207\345\200\274_translated.md" | 0
...-on-number-of-points-inside-a-circle.en.md | 0
...204\346\225\260\347\233\256_translated.md" | 0
.../leetcode}/213-house-robber-ii.en.md | 0
...me-by-concatenating-two-letter-words.en.md | 0
...77\345\233\236\346\226\207\344\270\262.md" | 0
.../leetcode}/219-contains-duplicate-ii.en.md | 0
.../leetcode}/219_translated.md | 0
.../2241-design-an-atm-machine.zh.md | 0
.../leetcode}/2241. Design an ATM Machine.md | 0
.../2270-number-of-ways-to-split-array.zh.md | 0
.../2270. Number of Ways to Split Array.md | 0
.../leetcode}/2293-min-max-game.en.md | 0
.../leetcode}/2293_translated.md | 0
.../2299-strong-password-checker-ii.en.md | 0
...0\351\252\214\345\231\250II_translated.md" | 0
...glish-letter-in-upper-and-lower-case.en.md | 0
...207\345\255\227\346\257\215_translated.md" | 0
...-minimum-amount-of-time-to-fill-cups.en.md | 0
...273\346\227\266\351\225\277_translated.md" | 0
...341-maximum-number-of-pairs-in-array.en.md | 0
...221\346\225\260\345\257\271_translated.md" | 0
.../leetcode}/2490-circular-sentence.en.md | 0
...2-find-the-array-concatenation-value.en.md | 0
.../leetcode}/2582-pass-the-pillow.en.md | 0
.../2639-find-column-width-of-grid.en.md | 0
...204\345\256\275\345\272\246_translated.md" | 0
.../leetcode}/2679-sum-in-a-matrix.en.md | 0
...255\347\232\204\345\222\214_translated.md" | 0
...le-and-non-divisible-sums-difference.en.md | 0
...14\345\271\266\344\275\234\345\267\256.md" | 0
...stribute-elements-into-two-arrays-ii.en.md | 0
...\347\273\204\344\270\255 II_translated.md" | 0
...imum-length-of-anagram-concatenation.zh.md | 0
...Minimum Length of Anagram Concatenation.md | 0
.../345-reverse-vowels-of-a-string.en.md | 0
...263\345\255\227\346\257\215_translated.md" | 0
.../leetcode}/42-trapping-rain-water.en.md | 0
.../interview-prep/leetcode}/42.md | 0
.../leetcode}/46-permutations.zh.md | 0
...6.\345\205\250\346\216\222\345\210\227.md" | 0
.../538-convert-bst-to-greater-sum-tree.en.md | 0
...257\345\212\240\346\240\221_translated.md" | 0
...distribute-money-to-maximum-children.en.md | 0
...204\345\204\277\347\253\245_translated.md" | 0
.../76-minimum-window-substring.en.md | 0
...226\345\255\220\344\270\262_translated.md" | 0
...move-duplicates-from-sorted-array-ii.en.md | 0
.../interview-prep/leetcode}/80_translated.md | 0
.../leetcode}/9021-tut-3-25t1.zh.md | 0
.../leetcode}/9021_TUT_3_25T1.md | 0
.../leetcode}/93-restore-ip-addresses.zh.md | 0
...\345\216\237Ip\345\234\260\345\235\200.md" | 0
.../leetcode}/994-rotting-oranges.en.md | 0
...204\346\251\230\345\255\220_translated.md" | 0
...ing Stars-Inter-Uni Programming Contest.md | 0
...263\346\227\266\346\234\237_translated.md" | 0
...207\346\273\244\345\231\250_translated.md" | 0
...RU \347\274\223\345\255\230_translated.md" | 0
...347\232\204\347\254\254 K \344\275\215.md" | 0
...\345\212\253\350\210\215 II_translated.md" | 0
...236\347\216\257\345\217\245_translated.md" | 0
...262\350\201\224\345\200\274_translated.md" | 0
...222\346\236\225\345\244\264_translated.md" | 0
.../brief-alternate-homework-help.en.md | 0
...232\345\270\256\345\277\231_translated.md" | 0
...-stars-inter-uni-programming-contest.zh.md | 0
.../interview-prep/leetcode}/index.mdx | 2 +-
...021-remove-nth-node-from-end-of-list.en.md | 0
...252\347\273\223\347\202\271_translated.md" | 0
.../interview-prep/pre-interview.en.md | 0
.../interview-prep/pre-interview.md | 0
...ations-to-get-an-offer-as-a-student.en.mdx | 0
...parations-to-get-an-offer-as-a-student.mdx | 0
.../CommonUsedMarkdown.assets/testpic1.jpg | Bin
.../dev-tips}/CommonUsedMarkdown.en.md | 0
.../dev-tips}/CommonUsedMarkdown.md | 0
.../dev-tips}/Katex/Seb1.en.mdx | 0
.../dev-tips}/Katex/Seb1.mdx | 0
.../dev-tips}/Katex/Seb2.en.mdx | 0
.../dev-tips}/Katex/Seb2.mdx | 0
.../dev-tips}/Katex/index.mdx | 0
...dflare-r2-sharex-free-image-hosting.en.mdx | 0
...loudflare-r2-sharex-free-image-hosting.mdx | 0
.../Geek => community/dev-tips}/git101.en.mdx | 0
.../Geek => community/dev-tips}/git101.mdx | 0
.../Geek => community/dev-tips}/index.mdx | 0
.../dev-tips}/picturecdn.en.mdx | 0
.../dev-tips}/picturecdn.mdx | 0
.../dev-tips}/raspberry-guide.en.md | 0
.../dev-tips}/raspberry-guide.md | 0
.../{CommunityShare => community}/index.mdx | 2 +-
.../language}/pte-intro.md | 0
.../life}/unsw-student-benefit.md | 0
.../mental-health}/burnout-guide.mdx | 0
.../mental-health}/index.mdx | 0
.../papers}/leworldmodel.md | 0
.../papers}/leworldmodel.zh.md | 0
...-repetition-improves-non-reasoning-llms.md | 0
...petition-improves-non-reasoning-llms.zh.md | 0
.../tools}/index.md | 0
.../tools}/perplexity-comet.en.md | 0
.../tools}/perplexity-comet.md | 0
.../tools}/swanlab.en.mdx | 0
.../tools}/swanlab.mdx | 0
app/docs/layout.tsx | 2 +-
.../introduction_of_multi-agents_system.en.md | 0
.../introduction_of_multi-agents_system.md | 0
.../img-20250920112106486.png | Bin
.../img-20250920112106518.png | Bin
.../img-20250920112106554.png | Bin
.../img-20250920112106588.png | Bin
app/docs/{ => learn}/ai/MoE/MOE-intro.en.md | 0
app/docs/{ => learn}/ai/MoE/MOE-intro.md | 0
app/docs/{ => learn}/ai/MoE/moe-update.en.md | 0
app/docs/{ => learn}/ai/MoE/moe-update.md | 0
.../code-translation-intro.en.mdx | 0
.../code-translation-intro.mdx | 0
.../ai/agents-todo/agent-ecosystem.en.mdx | 0
.../ai/agents-todo/agent-ecosystem.mdx | 0
.../ai/agents-todo/cs294-194-196/index.en.mdx | 0
.../ai/agents-todo/cs294-194-196/index.mdx | 0
.../calculus-optimization/index.en.mdx | 0
.../calculus-optimization/index.mdx | 0
.../information-theory/index.en.mdx | 0
.../information-theory/index.mdx | 0
.../linear-algebra/index.en.mdx | 0
.../ai-math-basics/linear-algebra/index.mdx | 0
.../linear-algebra/resources/index.en.mdx | 0
.../linear-algebra/resources/index.mdx | 0
.../ai/ai-math-basics/math-foundations.en.mdx | 0
.../ai/ai-math-basics/math-foundations.mdx | 0
.../ai/ai-math-basics/math_books.en.md | 0
.../ai/ai-math-basics/math_books.md | 0
.../numerical-analysis/index.en.mdx | 0
.../numerical-analysis/index.mdx | 0
.../probability-statistics/index.en.mdx | 0
.../probability-statistics/index.mdx | 0
.../resources/index.en.mdx | 0
.../resources/index.mdx | 0
.../compute-platforms-handbook.en.mdx | 0
.../compute-platforms-handbook.mdx | 0
.../model-compuational-resource-demand.en.md | 0
.../model-compuational-resource-demand.md | 0
.../foundation-models/datasets/index.en.mdx | 0
.../ai/foundation-models/datasets/index.mdx | 0
.../deploy-infer/index.en.mdx | 0
.../foundation-models/deploy-infer/index.mdx | 0
.../foundation-models/evaluation/index.en.mdx | 0
.../ai/foundation-models/evaluation/index.mdx | 0
.../foundation-models/finetune/index.en.mdx | 0
.../ai/foundation-models/finetune/index.mdx | 0
.../foundation-models-lifecycle.en.mdx | 0
.../foundation-models-lifecycle.mdx | 0
.../qkv-interview/index.en.mdx | 0
.../foundation-models/qkv-interview/index.mdx | 0
.../rag/context-engineering-intro.en.md | 0
.../rag/context-engineering-intro.md | 0
.../ai/foundation-models/rag/embedding.en.mdx | 0
.../ai/foundation-models/rag/embedding.mdx | 0
.../ai/foundation-models/rag/rag.en.mdx | 0
.../ai/foundation-models/rag/rag.mdx | 0
.../foundation-models/training/index.en.mdx | 0
.../ai/foundation-models/training/index.mdx | 0
.../generative-models-plan.en.mdx | 0
.../generative-models-plan.mdx | 0
app/docs/{ => learn}/ai/index.mdx | 0
.../ai/llm-basics/courses/index.en.mdx | 0
.../ai/llm-basics/courses/index.mdx | 0
.../ai/llm-basics/cuda/index.en.mdx | 0
.../{ => learn}/ai/llm-basics/cuda/index.mdx | 0
.../llm-basics/deep-learning/d2l/index.en.mdx | 0
.../ai/llm-basics/deep-learning/d2l/index.mdx | 0
.../ai/llm-basics/deep-learning/index.en.mdx | 0
.../ai/llm-basics/deep-learning/index.mdx | 0
.../deep-learning/misc/index.en.mdx | 0
.../llm-basics/deep-learning/misc/index.mdx | 0
.../llm-basics/deep-learning/nlp/index.en.mdx | 0
.../ai/llm-basics/deep-learning/nlp/index.mdx | 0
.../ai/llm-basics/embeddings/index.en.mdx | 0
.../ai/llm-basics/embeddings/index.mdx | 0
.../embeddings/qwen3-embedding/index.en.mdx | 0
.../embeddings/qwen3-embedding/index.mdx | 0
.../ai/llm-basics/llm-foundations.en.mdx | 0
.../ai/llm-basics/llm-foundations.mdx | 0
.../pytorch/index.assets/word-img-01.png | Bin
.../pytorch/index.assets/word-img-02.png | Bin
.../ai/llm-basics/pytorch/index.en.mdx | 0
.../ai/llm-basics/pytorch/index.mdx | 0
.../transformer/ai-by-hand/index.en.mdx | 0
.../transformer/ai-by-hand/index.mdx | 0
.../ai/llm-basics/transformer/index.en.mdx | 0
.../ai/llm-basics/transformer/index.mdx | 0
.../methodology/research-methodology.en.mdx | 0
.../ai/methodology/research-methodology.mdx | 0
.../ai/misc-tools/learning-toolkit.en.mdx | 0
.../ai/misc-tools/learning-toolkit.mdx | 0
.../platform-and-datasets.en.mdx | 0
.../platform-and-datasets.mdx | 0
.../ai/multimodal/RQVAE/index.assets/2.png | Bin
.../ai/multimodal/RQVAE/index.en.mdx | 0
.../{ => learn}/ai/multimodal/RQVAE/index.mdx | 0
...61521005c5a8213b60bf362f9c25c22f_1440w.png | Bin
.../v2-643d5ffb4aa480808bc9c82a55450a80_r.png | Bin
...92a9061e7079089b75c37650943c6f25_1440w.png | Bin
...97e09bd511a1fb0c3240fa717ce235d2_1440w.png | Bin
...dda0855d2d3e00e786956a827b1c5f26_1440w.png | Bin
.../v2-df06f2d1471615dae76b1e09488091b5_r.png | Bin
.../ai/multimodal/VAE/index.en.mdx | 0
.../{ => learn}/ai/multimodal/VAE/index.mdx | 0
.../ai/multimodal/VQVAE/index.assets/1.png | Bin
.../ai/multimodal/VQVAE/index.en.mdx | 0
.../{ => learn}/ai/multimodal/VQVAE/index.mdx | 0
.../ai/multimodal/courses/index.en.mdx | 0
.../ai/multimodal/courses/index.mdx | 0
.../llava/index.assets/word-img-03.png | Bin
.../llava/index.assets/word-img-04.png | Bin
.../llava/index.assets/word-img-05.png | Bin
.../ai/multimodal/llava/index.en.mdx | 0
.../{ => learn}/ai/multimodal/llava/index.mdx | 0
.../ai/multimodal/mllm/index.en.mdx | 0
.../{ => learn}/ai/multimodal/mllm/index.mdx | 0
.../ai/multimodal/multimodal-overview.en.mdx | 0
.../ai/multimodal/multimodal-overview.mdx | 0
.../ai/multimodal/qwenvl/index.en.mdx | 0
.../ai/multimodal/qwenvl/index.mdx | 0
.../ai/multimodal/video-mm-todo/index.en.mdx | 0
.../ai/multimodal/video-mm-todo/index.mdx | 0
.../ai/multimodal/vit/index.en.mdx | 0
.../{ => learn}/ai/multimodal/vit/index.mdx | 0
.../recommender-roadmap.en.mdx | 0
.../recommender-roadmap.mdx | 0
.../wangshusen_recommend_crossing.en.mdx | 0
.../wangshusen_recommend_crossing.mdx | 0
.../images/3-1-1.png | Bin
.../images/3-1-2.png | Bin
.../images/3-2-1.png | Bin
.../images/3-2-2.png | Bin
.../images/3-2-3.png | Bin
.../images/3-4-1.png | Bin
.../images/3-4-2.png | Bin
.../images/3-4-3.png | Bin
.../images/3-5-1.png | Bin
.../images/3-6-1.png | Bin
.../images/3-6-2.png | Bin
.../images/3-6-3.png | Bin
.../images/3-6-4.png | Bin
.../images/4-1-1.png | Bin
.../images/4-2-1.png | Bin
.../images/4-2-2.png | Bin
.../images/4-2-3.png | Bin
.../images/4-2-4.png | Bin
.../images/4-2-5.png | Bin
.../images/4-2-6.png | Bin
.../images/4-3-1.png | Bin
.../images/4-3-2.png | Bin
.../images/4-4-1.png | Bin
.../images/4-4-2.png | Bin
.../images/4-4-3.png | Bin
.../images/4-4-4.png | Bin
.../images/4-4-5.png | Bin
.../images/4-4-6.png | Bin
.../images/4-4-7.png | Bin
.../images/5-1-1.png | Bin
.../images/5-1-2.png | Bin
.../images/5-2-1.png | Bin
.../images/5-2-2.png | Bin
.../images/5-3-1.png | Bin
.../images/6-1-1.png | Bin
.../images/6-1-2.png | Bin
.../images/6-1-3.png | Bin
.../images/6-1-4.png | Bin
.../images/6-1-5.png | Bin
.../images/6-2-1.png | Bin
.../images/6-2-2.png | Bin
.../images/6-4-1.png | Bin
.../images/6-4-2.png | Bin
.../images/6-4-3.png | Bin
.../images/6-4-4.png | Bin
.../images/6-4-5.png | Bin
.../images/6-5-1.png | Bin
.../images/7-3-1.png | Bin
.../images/7-3-2.png | Bin
.../images/7-3-3.png | Bin
.../images/7-4-1.png | Bin
.../images/7-4-2.png | Bin
.../images/7-4-3.png | Bin
.../images/7-4-4.png | Bin
.../images/7-5-1.png | Bin
.../images/7-5-2.png | Bin
.../images/7-6-1.png | Bin
.../images/7-6-2.png | Bin
.../images/7-6-3.png | Bin
.../images/7-6-4.png | Bin
.../images/7-6-5.png | Bin
.../images/8-2-1.png | Bin
.../images/8-3-1.png | Bin
.../images/8-3-2.png | Bin
.../images/8-3-3.png | Bin
.../images/8-3-4.png | Bin
.../images/8-3-5.png | Bin
.../2-10-1.png | Bin
.../2-10-2.png | Bin
.../2-10-3.png | Bin
.../2-10-4.png | Bin
.../2-10-5.png | Bin
.../2-10-6.png | Bin
.../2-10-7.png | Bin
.../2-10-8.png | Bin
.../2-12-1.png | Bin
.../2-12-2.png | Bin
.../2-12-3.png | Bin
.../2-4-1.png | Bin
.../2-5-1.png | Bin
.../2-5-2.png | Bin
.../2-5-3.png | Bin
.../2-5-4.png | Bin
.../2-5-5.png | Bin
.../2-6-1.png | Bin
.../2-6-2.png | Bin
.../2-6-3.png | Bin
.../2-6-4.png | Bin
.../2-6-5.png | Bin
.../2-6-6.png | Bin
.../2-7-1.png | Bin
.../2-7-2.png | Bin
.../2-7-3.png | Bin
.../2-7-4.png | Bin
.../2-8-1.png | Bin
.../2-8-2.png | Bin
.../2-9-1.png | Bin
.../2-9-2.png | Bin
.../2-9-3.png | Bin
.../2-9-4.png | Bin
...wangshusen_recommend_note_retrieval.en.mdx | 0
.../wangshusen_recommend_note_retrieval.mdx | 0
...wangshusen_recommend_note_coldstart.en.mdx | 0
.../wangshusen_recommend_note_coldstart.mdx | 0
...ngshusen_recommend_note_improvement.en.mdx | 0
.../wangshusen_recommend_note_improvement.mdx | 0
.../wangshusen_recommend_note_rank.en.mdx | 0
.../wangshusen_recommend_note_rank.mdx | 0
.../wangshusen_recommend_note_rerank.en.mdx | 0
.../wangshusen_recommend_note_rerank.mdx | 0
.../ai/reinforcement-learning/ppo.md | 0
.../reinforcement-learning-overview.en.mdx | 0
.../reinforcement-learning-overview.mdx | 0
.../cpp-backend/easy-compile/1-cpp-libs.en.md | 0
.../cpp-backend/easy-compile/1-cpp-libs.md | 0
.../cpp-backend/easy-compile/2-base-gcc.en.md | 0
.../cpp-backend/easy-compile/2-base-gcc.md | 0
.../cs}/cpp-backend/easy-compile/3-make.en.md | 0
.../cs}/cpp-backend/easy-compile/3-make.md | 0
.../cpp-backend/easy-compile/4-cmake.en.md | 0
.../cs}/cpp-backend/easy-compile/4-cmake.md | 0
.../cpp-backend/easy-compile/5-vcpkg.en.md | 0
.../cs}/cpp-backend/easy-compile/5-vcpkg.md | 0
.../1-handwritten-threadpool.en.md | 0
.../1-handwritten-threadpool.md | 0
.../2-handwritten-mempool1.en.md | 0
.../2-handwritten-mempool1.md | 0
.../cs}/cpp-backend/mempool-simple.en.mdx | 0
.../cs}/cpp-backend/mempool-simple.mdx | 0
.../data-structures/array/01-static-array.mdx | 0
.../array/01-static-array.zh.mdx | 0
.../array/02-dynamic-array.mdx | 0
.../array/02-dynamic-array.zh.mdx | 0
.../cs}/data-structures/array/index.mdx | 0
.../cs}/data-structures/array/index.zh.mdx | 0
.../cs}/data-structures/index.mdx | 0
.../cs}/data-structures/index.zh.mdx | 0
.../linked-list/01-singly-linked-list.mdx | 0
.../linked-list/01-singly-linked-list.zh.mdx | 0
.../cs}/data-structures/linked-list/index.mdx | 0
.../data-structures/linked-list/index.zh.mdx | 0
.../frontend/frontend-learning/index.en.mdx | 0
.../cs}/frontend/frontend-learning/index.mdx | 0
.../cs}/frontend/index.en.mdx | 0
.../cs}/frontend/index.mdx | 0
.../cs}/index.en.mdx | 0
.../{computer-science => learn/cs}/index.mdx | 0
app/docs/learn/index.mdx | 17 +++
app/docs/page.tsx | 2 +-
app/docs/{ai => }/projects/ai-town.en.mdx | 0
app/docs/{ai => }/projects/ai-town.mdx | 0
app/docs/projects/index.mdx | 12 ++
.../multimodal-rl.en.mdx | 0
.../multimodal-rl.mdx | 0
data/event.json | 6 +-
dev_docs/umami_tracking.md | 4 +-
lib/source.ts | 2 +-
next.config.mjs | 140 ++++++++++++++----
420 files changed, 195 insertions(+), 61 deletions(-)
rename app/docs/{jobs/event-keynote => career/events}/coffee-chat.en.md (98%)
rename app/docs/{jobs/event-keynote => career/events}/coffee-chat.md (98%)
rename app/docs/{jobs/event-keynote => career/events}/event-takeway.en.md (100%)
rename app/docs/{jobs/event-keynote => career/events}/event-takeway.md (100%)
create mode 100644 app/docs/career/index.mdx
rename app/docs/{jobs => career}/interview-prep/bq.en.md (100%)
rename app/docs/{jobs => career}/interview-prep/bq.md (100%)
rename app/docs/{jobs => career}/interview-prep/interview-tips.en.mdx (100%)
rename app/docs/{jobs => career}/interview-prep/interview-tips.mdx (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1004-max-consecutive-ones-iii.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1004_translated.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/121-best-time-to-buy-and-sell-stock.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1234-replace-substring-for-balanced-string.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/1234. \346\233\277\346\215\242\345\255\220\344\270\262\345\276\227\345\210\260\345\271\263\350\241\241\345\255\227\347\254\246\344\270\262_translated.md" => "app/docs/career/interview-prep/leetcode/1234. \346\233\277\346\215\242\345\255\220\344\270\262\345\276\227\345\210\260\345\271\263\350\241\241\345\255\227\347\254\246\344\270\262_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1333-filter-restaurants-by-vegan-friendly-price-and-distance.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/142-linked-list-cycle-ii.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md" => "app/docs/career/interview-prep/leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md" (93%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/146-lru-cache.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1545-find-kth-bit-in-nth-binary-string.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1653-minimum-deletions-to-make-string-balanced.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/1653. \344\275\277\345\255\227\347\254\246\344\270\262\345\271\263\350\241\241\347\232\204\346\234\200\345\260\221\345\210\240\351\231\244\346\254\241\346\225\260_translated.md" => "app/docs/career/interview-prep/leetcode/1653. \344\275\277\345\255\227\347\254\246\344\270\262\345\271\263\350\241\241\347\232\204\346\234\200\345\260\221\345\210\240\351\231\244\346\254\241\346\225\260_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1664-ways-to-make-a-fair-array.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/1664\347\224\237\346\210\220\345\271\263\350\241\241\346\225\260\347\273\204\347\232\204\346\226\271\346\241\210\346\225\260_translated.md" => "app/docs/career/interview-prep/leetcode/1664\347\224\237\346\210\220\345\271\263\350\241\241\346\225\260\347\273\204\347\232\204\346\226\271\346\241\210\346\225\260_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1825-mk-average.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/1825\346\261\202\345\207\272 MK \345\271\263\345\235\207\345\200\274_translated.md" => "app/docs/career/interview-prep/leetcode/1825\346\261\202\345\207\272 MK \345\271\263\345\235\207\345\200\274_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/1828-queries-on-number-of-points-inside-a-circle.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/1828\347\273\237\350\256\241\344\270\200\344\270\252\345\234\206\344\270\255\347\202\271\347\232\204\346\225\260\347\233\256_translated.md" => "app/docs/career/interview-prep/leetcode/1828\347\273\237\350\256\241\344\270\200\344\270\252\345\234\206\344\270\255\347\202\271\347\232\204\346\225\260\347\233\256_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/213-house-robber-ii.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2131-longest-palindrome-by-concatenating-two-letter-words.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2131. \350\277\236\346\216\245\344\270\244\345\255\227\346\257\215\345\215\225\350\257\215\345\276\227\345\210\260\347\232\204\346\234\200\351\225\277\345\233\236\346\226\207\344\270\262.md" => "app/docs/career/interview-prep/leetcode/2131. \350\277\236\346\216\245\344\270\244\345\255\227\346\257\215\345\215\225\350\257\215\345\276\227\345\210\260\347\232\204\346\234\200\351\225\277\345\233\236\346\226\207\344\270\262.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/219-contains-duplicate-ii.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/219_translated.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2241-design-an-atm-machine.zh.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2241. Design an ATM Machine.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2270-number-of-ways-to-split-array.zh.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2270. Number of Ways to Split Array.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2293-min-max-game.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2293_translated.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2299-strong-password-checker-ii.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2299\345\274\272\345\257\206\347\240\201\346\243\200\351\252\214\345\231\250II_translated.md" => "app/docs/career/interview-prep/leetcode/2299\345\274\272\345\257\206\347\240\201\346\243\200\351\252\214\345\231\250II_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2309-greatest-english-letter-in-upper-and-lower-case.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2309\345\205\274\345\205\267\345\244\247\345\260\217\345\206\231\347\232\204\346\234\200\345\245\275\350\213\261\346\226\207\345\255\227\346\257\215_translated.md" => "app/docs/career/interview-prep/leetcode/2309\345\205\274\345\205\267\345\244\247\345\260\217\345\206\231\347\232\204\346\234\200\345\245\275\350\213\261\346\226\207\345\255\227\346\257\215_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2335-minimum-amount-of-time-to-fill-cups.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2335. \350\243\205\346\273\241\346\235\257\345\255\220\351\234\200\350\246\201\347\232\204\346\234\200\347\237\255\346\200\273\346\227\266\351\225\277_translated.md" => "app/docs/career/interview-prep/leetcode/2335. \350\243\205\346\273\241\346\235\257\345\255\220\351\234\200\350\246\201\347\232\204\346\234\200\347\237\255\346\200\273\346\227\266\351\225\277_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2341-maximum-number-of-pairs-in-array.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2341. \346\225\260\347\273\204\350\203\275\345\275\242\346\210\220\345\244\232\345\260\221\346\225\260\345\257\271_translated.md" => "app/docs/career/interview-prep/leetcode/2341. \346\225\260\347\273\204\350\203\275\345\275\242\346\210\220\345\244\232\345\260\221\346\225\260\345\257\271_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2490-circular-sentence.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2562-find-the-array-concatenation-value.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2582-pass-the-pillow.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2639-find-column-width-of-grid.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2639. \346\237\245\350\257\242\347\275\221\346\240\274\345\233\276\344\270\255\346\257\217\344\270\200\345\210\227\347\232\204\345\256\275\345\272\246_translated.md" => "app/docs/career/interview-prep/leetcode/2639. \346\237\245\350\257\242\347\275\221\346\240\274\345\233\276\344\270\255\346\257\217\344\270\200\345\210\227\347\232\204\345\256\275\345\272\246_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2679-sum-in-a-matrix.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2679.\347\237\251\351\230\265\344\270\255\347\232\204\345\222\214_translated.md" => "app/docs/career/interview-prep/leetcode/2679.\347\237\251\351\230\265\344\270\255\347\232\204\345\222\214_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/2894-divisible-and-non-divisible-sums-difference.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/2894. \345\210\206\347\261\273\346\261\202\345\222\214\345\271\266\344\275\234\345\267\256.md" => "app/docs/career/interview-prep/leetcode/2894. \345\210\206\347\261\273\346\261\202\345\222\214\345\271\266\344\275\234\345\267\256.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/3072-distribute-elements-into-two-arrays-ii.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/3072. \345\260\206\345\205\203\347\264\240\345\210\206\351\205\215\345\210\260\344\270\244\344\270\252\346\225\260\347\273\204\344\270\255 II_translated.md" => "app/docs/career/interview-prep/leetcode/3072. \345\260\206\345\205\203\347\264\240\345\210\206\351\205\215\345\210\260\344\270\244\344\270\252\346\225\260\347\273\204\344\270\255 II_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/3138-minimum-length-of-anagram-concatenation.zh.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/3138. Minimum Length of Anagram Concatenation.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/345-reverse-vowels-of-a-string.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/345. \345\217\215\350\275\254\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\345\205\203\351\237\263\345\255\227\346\257\215_translated.md" => "app/docs/career/interview-prep/leetcode/345. \345\217\215\350\275\254\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\345\205\203\351\237\263\345\255\227\346\257\215_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/42-trapping-rain-water.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/42.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/46-permutations.zh.md (100%)
rename "app/docs/CommunityShare/Leetcode/46.\345\205\250\346\216\222\345\210\227.md" => "app/docs/career/interview-prep/leetcode/46.\345\205\250\346\216\222\345\210\227.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/538-convert-bst-to-greater-sum-tree.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/538.\346\212\212\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\275\254\346\215\242\344\270\272\347\264\257\345\212\240\346\240\221_translated.md" => "app/docs/career/interview-prep/leetcode/538.\346\212\212\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\275\254\346\215\242\344\270\272\347\264\257\345\212\240\346\240\221_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/6323-distribute-money-to-maximum-children.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/6323. \345\260\206\351\222\261\345\210\206\347\273\231\346\234\200\345\244\232\347\232\204\345\204\277\347\253\245_translated.md" => "app/docs/career/interview-prep/leetcode/6323. \345\260\206\351\222\261\345\210\206\347\273\231\346\234\200\345\244\232\347\232\204\345\204\277\347\253\245_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/76-minimum-window-substring.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/76\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262_translated.md" => "app/docs/career/interview-prep/leetcode/76\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/80-remove-duplicates-from-sorted-array-ii.en.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/80_translated.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/9021-tut-3-25t1.zh.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/9021_TUT_3_25T1.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/93-restore-ip-addresses.zh.md (100%)
rename "app/docs/CommunityShare/Leetcode/93\345\244\215\345\216\237Ip\345\234\260\345\235\200.md" => "app/docs/career/interview-prep/leetcode/93\345\244\215\345\216\237Ip\345\234\260\345\235\200.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/994-rotting-oranges.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/994.\350\205\220\347\203\202\347\232\204\346\251\230\345\255\220_translated.md" => "app/docs/career/interview-prep/leetcode/994.\350\205\220\347\203\202\347\232\204\346\251\230\345\255\220_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/Counting Stars-Inter-Uni Programming Contest.md (100%)
rename "app/docs/CommunityShare/Leetcode/[121]\344\271\260\345\215\226\350\202\241\347\245\250\347\232\204\346\234\200\344\275\263\346\227\266\346\234\237_translated.md" => "app/docs/career/interview-prep/leetcode/[121]\344\271\260\345\215\226\350\202\241\347\245\250\347\232\204\346\234\200\344\275\263\346\227\266\346\234\237_translated.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[1333]\351\244\220\345\216\205\350\277\207\346\273\244\345\231\250_translated.md" => "app/docs/career/interview-prep/leetcode/[1333]\351\244\220\345\216\205\350\277\207\346\273\244\345\231\250_translated.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[146]LRU \347\274\223\345\255\230_translated.md" => "app/docs/career/interview-prep/leetcode/[146]LRU \347\274\223\345\255\230_translated.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[1545]\346\211\276\345\207\272\347\254\254 N \344\270\252\344\272\214\350\277\233\345\210\266\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\347\254\254 K \344\275\215.md" => "app/docs/career/interview-prep/leetcode/[1545]\346\211\276\345\207\272\347\254\254 N \344\270\252\344\272\214\350\277\233\345\210\266\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\347\254\254 K \344\275\215.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[213]\346\211\223\345\256\266\345\212\253\350\210\215 II_translated.md" => "app/docs/career/interview-prep/leetcode/[213]\346\211\223\345\256\266\345\212\253\350\210\215 II_translated.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[2490]\345\233\236\347\216\257\345\217\245_translated.md" => "app/docs/career/interview-prep/leetcode/[2490]\345\233\236\347\216\257\345\217\245_translated.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[2562]\346\211\276\345\207\272\346\225\260\347\273\204\347\232\204\344\270\262\350\201\224\345\200\274_translated.md" => "app/docs/career/interview-prep/leetcode/[2562]\346\211\276\345\207\272\346\225\260\347\273\204\347\232\204\344\270\262\350\201\224\345\200\274_translated.md" (100%)
rename "app/docs/CommunityShare/Leetcode/[2582]\351\200\222\346\236\225\345\244\264_translated.md" => "app/docs/career/interview-prep/leetcode/[2582]\351\200\222\346\236\225\345\244\264_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/brief-alternate-homework-help.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/brief_alternate \344\275\234\344\270\232\345\270\256\345\277\231_translated.md" => "app/docs/career/interview-prep/leetcode/brief_alternate \344\275\234\344\270\232\345\270\256\345\277\231_translated.md" (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/counting-stars-inter-uni-programming-contest.zh.md (100%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/index.mdx (84%)
rename app/docs/{CommunityShare/Leetcode => career/interview-prep/leetcode}/sword-offer-ii-021-remove-nth-node-from-end-of-list.en.md (100%)
rename "app/docs/CommunityShare/Leetcode/\345\211\221\346\214\207 Offer II 021. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 n \344\270\252\347\273\223\347\202\271_translated.md" => "app/docs/career/interview-prep/leetcode/\345\211\221\346\214\207 Offer II 021. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 n \344\270\252\347\273\223\347\202\271_translated.md" (100%)
rename app/docs/{jobs => career}/interview-prep/pre-interview.en.md (100%)
rename app/docs/{jobs => career}/interview-prep/pre-interview.md (100%)
rename app/docs/{jobs => career}/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx (100%)
rename app/docs/{jobs => career}/interview-prep/preparations-to-get-an-offer-as-a-student.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/CommonUsedMarkdown.assets/testpic1.jpg (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/CommonUsedMarkdown.en.md (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/CommonUsedMarkdown.md (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/Katex/Seb1.en.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/Katex/Seb1.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/Katex/Seb2.en.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/Katex/Seb2.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/Katex/index.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/cloudflare-r2-sharex-free-image-hosting.en.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/cloudflare-r2-sharex-free-image-hosting.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/git101.en.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/git101.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/index.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/picturecdn.en.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/picturecdn.mdx (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/raspberry-guide.en.md (100%)
rename app/docs/{CommunityShare/Geek => community/dev-tips}/raspberry-guide.md (100%)
rename app/docs/{CommunityShare => community}/index.mdx (90%)
rename app/docs/{CommunityShare/Language => community/language}/pte-intro.md (100%)
rename app/docs/{CommunityShare/Life => community/life}/unsw-student-benefit.md (100%)
rename app/docs/{CommunityShare/MentalHealth => community/mental-health}/burnout-guide.mdx (100%)
rename app/docs/{CommunityShare/MentalHealth => community/mental-health}/index.mdx (100%)
rename app/docs/{ai/foundation-models/world-models => community/papers}/leworldmodel.md (100%)
rename app/docs/{ai/foundation-models/world-models => community/papers}/leworldmodel.zh.md (100%)
rename app/docs/{ai/foundation-models/prompt-engineering => community/papers}/prompt-repetition-improves-non-reasoning-llms.md (100%)
rename app/docs/{ai/foundation-models/prompt-engineering => community/papers}/prompt-repetition-improves-non-reasoning-llms.zh.md (100%)
rename app/docs/{CommunityShare/Amazing-AI-Tools => community/tools}/index.md (100%)
rename app/docs/{ai/misc-tools => community/tools}/perplexity-comet.en.md (100%)
rename app/docs/{ai/misc-tools => community/tools}/perplexity-comet.md (100%)
rename app/docs/{ai/misc-tools => community/tools}/swanlab.en.mdx (100%)
rename app/docs/{ai/misc-tools => community/tools}/swanlab.mdx (100%)
rename app/docs/{ => learn}/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md (100%)
rename app/docs/{ => learn}/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md (100%)
rename app/docs/{ => learn}/ai/MoE/MOE-intro.assets/img-20250920112106486.png (100%)
rename app/docs/{ => learn}/ai/MoE/MOE-intro.assets/img-20250920112106518.png (100%)
rename app/docs/{ => learn}/ai/MoE/MOE-intro.assets/img-20250920112106554.png (100%)
rename app/docs/{ => learn}/ai/MoE/MOE-intro.assets/img-20250920112106588.png (100%)
rename app/docs/{ => learn}/ai/MoE/MOE-intro.en.md (100%)
rename app/docs/{ => learn}/ai/MoE/MOE-intro.md (100%)
rename app/docs/{ => learn}/ai/MoE/moe-update.en.md (100%)
rename app/docs/{ => learn}/ai/MoE/moe-update.md (100%)
rename app/docs/{ => learn}/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx (100%)
rename app/docs/{ => learn}/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx (100%)
rename app/docs/{ => learn}/ai/agents-todo/agent-ecosystem.en.mdx (100%)
rename app/docs/{ => learn}/ai/agents-todo/agent-ecosystem.mdx (100%)
rename app/docs/{ => learn}/ai/agents-todo/cs294-194-196/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/agents-todo/cs294-194-196/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/calculus-optimization/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/calculus-optimization/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/information-theory/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/information-theory/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/linear-algebra/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/linear-algebra/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/linear-algebra/resources/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/linear-algebra/resources/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/math-foundations.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/math-foundations.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/math_books.en.md (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/math_books.md (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/numerical-analysis/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/numerical-analysis/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/probability-statistics/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/probability-statistics/index.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/probability-statistics/resources/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/ai-math-basics/probability-statistics/resources/index.mdx (100%)
rename app/docs/{ => learn}/ai/compute-platforms/compute-platforms-handbook.en.mdx (100%)
rename app/docs/{ => learn}/ai/compute-platforms/compute-platforms-handbook.mdx (100%)
rename app/docs/{ => learn}/ai/compute-platforms/model-compuational-resource-demand.en.md (100%)
rename app/docs/{ => learn}/ai/compute-platforms/model-compuational-resource-demand.md (100%)
rename app/docs/{ => learn}/ai/foundation-models/datasets/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/datasets/index.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/deploy-infer/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/deploy-infer/index.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/evaluation/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/evaluation/index.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/finetune/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/finetune/index.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/foundation-models-lifecycle.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/foundation-models-lifecycle.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/qkv-interview/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/qkv-interview/index.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/rag/context-engineering-intro.en.md (100%)
rename app/docs/{ => learn}/ai/foundation-models/rag/context-engineering-intro.md (100%)
rename app/docs/{ => learn}/ai/foundation-models/rag/embedding.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/rag/embedding.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/rag/rag.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/rag/rag.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/training/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/foundation-models/training/index.mdx (100%)
rename app/docs/{ => learn}/ai/generative-todo/generative-models-plan.en.mdx (100%)
rename app/docs/{ => learn}/ai/generative-todo/generative-models-plan.mdx (100%)
rename app/docs/{ => learn}/ai/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/courses/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/courses/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/cuda/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/cuda/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/d2l/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/d2l/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/misc/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/misc/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/nlp/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/deep-learning/nlp/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/embeddings/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/embeddings/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/embeddings/qwen3-embedding/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/embeddings/qwen3-embedding/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/llm-foundations.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/llm-foundations.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/pytorch/index.assets/word-img-01.png (100%)
rename app/docs/{ => learn}/ai/llm-basics/pytorch/index.assets/word-img-02.png (100%)
rename app/docs/{ => learn}/ai/llm-basics/pytorch/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/pytorch/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/transformer/ai-by-hand/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/transformer/ai-by-hand/index.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/transformer/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/llm-basics/transformer/index.mdx (100%)
rename app/docs/{ => learn}/ai/methodology/research-methodology.en.mdx (100%)
rename app/docs/{ => learn}/ai/methodology/research-methodology.mdx (100%)
rename app/docs/{ => learn}/ai/misc-tools/learning-toolkit.en.mdx (100%)
rename app/docs/{ => learn}/ai/misc-tools/learning-toolkit.mdx (100%)
rename app/docs/{ => learn}/ai/model-datasets-platforms/platform-and-datasets.en.mdx (100%)
rename app/docs/{ => learn}/ai/model-datasets-platforms/platform-and-datasets.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/RQVAE/index.assets/2.png (100%)
rename app/docs/{ => learn}/ai/multimodal/RQVAE/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/RQVAE/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.assets/v2-61521005c5a8213b60bf362f9c25c22f_1440w.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.assets/v2-643d5ffb4aa480808bc9c82a55450a80_r.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.assets/v2-92a9061e7079089b75c37650943c6f25_1440w.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.assets/v2-97e09bd511a1fb0c3240fa717ce235d2_1440w.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.assets/v2-dda0855d2d3e00e786956a827b1c5f26_1440w.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.assets/v2-df06f2d1471615dae76b1e09488091b5_r.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/VAE/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/VQVAE/index.assets/1.png (100%)
rename app/docs/{ => learn}/ai/multimodal/VQVAE/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/VQVAE/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/courses/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/courses/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/llava/index.assets/word-img-03.png (100%)
rename app/docs/{ => learn}/ai/multimodal/llava/index.assets/word-img-04.png (100%)
rename app/docs/{ => learn}/ai/multimodal/llava/index.assets/word-img-05.png (100%)
rename app/docs/{ => learn}/ai/multimodal/llava/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/llava/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/mllm/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/mllm/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/multimodal-overview.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/multimodal-overview.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/qwenvl/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/qwenvl/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/video-mm-todo/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/video-mm-todo/index.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/vit/index.en.mdx (100%)
rename app/docs/{ => learn}/ai/multimodal/vit/index.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/recommender-roadmap.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/recommender-roadmap.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_crossing.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-1-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-1-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-2-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-2-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-2-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-4-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-4-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-4-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-5-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-6-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-6-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-6-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/3-6-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-1-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-2-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-2-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-2-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-2-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-2-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-2-6.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-3-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-3-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-6.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/4-4-7.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/5-1-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/5-1-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/5-2-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/5-2-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/5-3-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-1-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-1-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-1-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-1-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-1-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-2-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-2-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-4-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-4-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-4-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-4-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-4-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/6-5-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-3-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-3-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-3-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-4-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-4-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-4-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-4-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-5-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-5-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-6-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-6-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-6-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-6-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/7-6-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/8-2-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/8-3-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/8-3-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/8-3-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/8-3-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/images/8-3-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-6.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-7.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-8.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-4-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-5.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-6.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-1.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-2.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-3.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-4.png (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_rank.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx (100%)
rename app/docs/{ => learn}/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx (100%)
rename app/docs/{ => learn}/ai/reinforcement-learning/ppo.md (100%)
rename app/docs/{ => learn}/ai/reinforcement-learning/reinforcement-learning-overview.en.mdx (100%)
rename app/docs/{ => learn}/ai/reinforcement-learning/reinforcement-learning-overview.mdx (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/1-cpp-libs.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/1-cpp-libs.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/2-base-gcc.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/2-base-gcc.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/3-make.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/3-make.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/4-cmake.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/4-cmake.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/5-vcpkg.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/easy-compile/5-vcpkg.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/mempool-simple.en.mdx (100%)
rename app/docs/{computer-science => learn/cs}/cpp-backend/mempool-simple.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/array/01-static-array.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/array/01-static-array.zh.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/array/02-dynamic-array.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/array/02-dynamic-array.zh.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/array/index.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/array/index.zh.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/index.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/index.zh.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/linked-list/01-singly-linked-list.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/linked-list/01-singly-linked-list.zh.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/linked-list/index.mdx (100%)
rename app/docs/{computer-science => learn/cs}/data-structures/linked-list/index.zh.mdx (100%)
rename app/docs/{computer-science => learn/cs}/frontend/frontend-learning/index.en.mdx (100%)
rename app/docs/{computer-science => learn/cs}/frontend/frontend-learning/index.mdx (100%)
rename app/docs/{computer-science => learn/cs}/frontend/index.en.mdx (100%)
rename app/docs/{computer-science => learn/cs}/frontend/index.mdx (100%)
rename app/docs/{computer-science => learn/cs}/index.en.mdx (100%)
rename app/docs/{computer-science => learn/cs}/index.mdx (100%)
create mode 100644 app/docs/learn/index.mdx
rename app/docs/{ai => }/projects/ai-town.en.mdx (100%)
rename app/docs/{ai => }/projects/ai-town.mdx (100%)
create mode 100644 app/docs/projects/index.mdx
rename app/docs/{all-projects => projects}/multimodal-rl.en.mdx (100%)
rename app/docs/{all-projects => projects}/multimodal-rl.mdx (100%)
diff --git a/app/components/Footer.tsx b/app/components/Footer.tsx
index e798c314..b772a6f0 100644
--- a/app/components/Footer.tsx
+++ b/app/components/Footer.tsx
@@ -63,7 +63,7 @@ export async function Footer() {
-
-
-
-
;
interface SectionIndexProps {
/**
- * 从 pageTree 根往下走的目录路径,段之间用 / 分隔,例如 CommunityShare/Leetcode。
+ * 从 pageTree 根往下走的目录路径,段之间用 / 分隔,例如 career/interview-prep/leetcode。
* 不传 = 直接用 pageTree 根节点本身(用于 /docs landing)。
*/
root?: string;
@@ -69,9 +69,9 @@ interface CardEntry {
/**
* 从 pageTree 根一路钻到 root 指定的目录节点。
*
- * 举例:root = CommunityShare/Leetcode
- * 1) 根的 children 里找 segmentName = CommunityShare 的 folder
- * 2) 再在这个 folder 的 children 里找 segmentName = Leetcode 的 folder
+ * 举例:root = career/interview-prep/leetcode
+ * 1) 根的 children 里找 segmentName = career 的 folder
+ * 2) 再在这个 folder 的 children 里找 segmentName = interview-prep/leetcode 的 folder
* 3) 返回这个 folder 节点
*
* 任一段找不到就返回 null(组件会渲染一个明显的错误提示,而不是静默空页)。
@@ -101,7 +101,7 @@ function findFolderByPath(
* 为什么不直接用 folder.name:
* fumadocs 的 FolderNode.name 是 ReactNode 类型(可能是 string,也可能是 JSX),
* 直接字符串比较会在极端情况踩坑。更可靠的办法是从 folder.index.url 反推——
- * 比如 /docs/CommunityShare/Geek 最后一段 Geek 就是目录名。
+ * 比如 /docs/community/dev-tips 最后一段 Geek 就是目录名。
*
* 没 index 时退回 name.toString()。目前仓库里这种情况目录名都是纯字符串,
* 所以兜底够用。
@@ -154,10 +154,10 @@ function buildCanonicalUrlSet(): Set {
* 用途:folder 没有自己的 index.mdx 时,不能硬拼 /docs/ 做卡片链接(Next 路由
* 里没这条,会 404)。所以往里走一层,找到第一个 page 文件的 url 拿来做兜底链接。比如:
*
- * CommunityShare/Language/ 没 index.mdx
+ * community/language/ 没 index.mdx
* pte-intro.mdx 用这篇的 url 做兜底
*
- * 点击卡片会进到 /docs/CommunityShare/Language/pte-intro,不会 404。
+ * 点击卡片会进到 /docs/community/language/pte-intro,不会 404。
*/
function findFirstPageUrl(
nodes: PageTree.Node[],
diff --git a/app/docs/[...slug]/page.tsx b/app/docs/[...slug]/page.tsx
index 45dba950..abec4d5a 100644
--- a/app/docs/[...slug]/page.tsx
+++ b/app/docs/[...slug]/page.tsx
@@ -195,7 +195,7 @@ export async function generateMetadata({ params }: Param): Promise {
notFound();
}
- // 规范化 slug → canonical 路径。用户访问 /docs/ai/rl(原文)或 /docs/ai/rl.en(翻译版)
+ // 规范化 slug → canonical 路径。用户访问 /docs/learn/ai/rl(原文)或 /docs/learn/ai/rl.en(翻译版)
// 都统一指向原始 slug,避免两个 URL 竞争同一份内容的 PageRank。
const slugPath = (slug ?? []).join("/");
const canonical = slugPath ? `/docs/${slugPath}` : "/docs";
diff --git a/app/docs/jobs/event-keynote/coffee-chat.en.md b/app/docs/career/events/coffee-chat.en.md
similarity index 98%
rename from app/docs/jobs/event-keynote/coffee-chat.en.md
rename to app/docs/career/events/coffee-chat.en.md
index 388ee5a2..fece6ee3 100644
--- a/app/docs/jobs/event-keynote/coffee-chat.en.md
+++ b/app/docs/career/events/coffee-chat.en.md
@@ -99,7 +99,7 @@ Planning your timeline well in advance is crucial — internships are often the
- Connect broadly on LinkedIn to build your personal platform — treat it as a professional showcase, not a social feed;
- Real internal company transition example: "From Amazon IT Support to Developer";
-- Highly recommended: [Student Job Preparation Guide](https://involutionhell.vercel.app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student).
+- Highly recommended: [Student Job Preparation Guide](https://involutionhell.com/docs/career/interview-prep/preparations-to-get-an-offer-as-a-student).
## 6. Visa and International Career Paths: The E-3 Visa
diff --git a/app/docs/jobs/event-keynote/coffee-chat.md b/app/docs/career/events/coffee-chat.md
similarity index 98%
rename from app/docs/jobs/event-keynote/coffee-chat.md
rename to app/docs/career/events/coffee-chat.md
index 905ee849..f3e44588 100644
--- a/app/docs/jobs/event-keynote/coffee-chat.md
+++ b/app/docs/career/events/coffee-chat.md
@@ -95,7 +95,7 @@ R 老师提醒:**实习申请需提前半年准备**,一般在 2–4 月开
- 领英可以多connect一些人,展示自己的平台,不要当朋友圈发;
- 真实公司内部转型案例:“从亚麻 IT Support 转 Dev”;
-- 干货推荐:[学生求职准备指南](https://involutionhell.vercel.app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student)。
+- 干货推荐:[学生求职准备指南](https://involutionhell.com/docs/career/interview-prep/preparations-to-get-an-offer-as-a-student)。
## 六、签证与国际发展路径:E3 签证
diff --git a/app/docs/jobs/event-keynote/event-takeway.en.md b/app/docs/career/events/event-takeway.en.md
similarity index 100%
rename from app/docs/jobs/event-keynote/event-takeway.en.md
rename to app/docs/career/events/event-takeway.en.md
diff --git a/app/docs/jobs/event-keynote/event-takeway.md b/app/docs/career/events/event-takeway.md
similarity index 100%
rename from app/docs/jobs/event-keynote/event-takeway.md
rename to app/docs/career/events/event-takeway.md
diff --git a/app/docs/career/index.mdx b/app/docs/career/index.mdx
new file mode 100644
index 00000000..b5b13f06
--- /dev/null
+++ b/app/docs/career/index.mdx
@@ -0,0 +1,15 @@
+---
+title: Career
+description: 求职准备、面试经验、社群活动——从刷题到拿 offer 的全流程。
+date: "2026-04-18"
+docId: crr0001index2026041800000001
+---
+
+import { SectionIndex } from "@/app/components/docs/SectionIndex";
+
+求职场景的一站式内容:
+
+- **Interview Prep**:刷题(LeetCode)、BQ、OA、Video Interview 技巧
+- **Events**:Coffee Chat、Mock Interview、Career Journey 等社群活动回顾
+
+
diff --git a/app/docs/jobs/interview-prep/bq.en.md b/app/docs/career/interview-prep/bq.en.md
similarity index 100%
rename from app/docs/jobs/interview-prep/bq.en.md
rename to app/docs/career/interview-prep/bq.en.md
diff --git a/app/docs/jobs/interview-prep/bq.md b/app/docs/career/interview-prep/bq.md
similarity index 100%
rename from app/docs/jobs/interview-prep/bq.md
rename to app/docs/career/interview-prep/bq.md
diff --git a/app/docs/jobs/interview-prep/interview-tips.en.mdx b/app/docs/career/interview-prep/interview-tips.en.mdx
similarity index 100%
rename from app/docs/jobs/interview-prep/interview-tips.en.mdx
rename to app/docs/career/interview-prep/interview-tips.en.mdx
diff --git a/app/docs/jobs/interview-prep/interview-tips.mdx b/app/docs/career/interview-prep/interview-tips.mdx
similarity index 100%
rename from app/docs/jobs/interview-prep/interview-tips.mdx
rename to app/docs/career/interview-prep/interview-tips.mdx
diff --git a/app/docs/CommunityShare/Leetcode/1004-max-consecutive-ones-iii.en.md b/app/docs/career/interview-prep/leetcode/1004-max-consecutive-ones-iii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1004-max-consecutive-ones-iii.en.md
rename to app/docs/career/interview-prep/leetcode/1004-max-consecutive-ones-iii.en.md
diff --git a/app/docs/CommunityShare/Leetcode/1004_translated.md b/app/docs/career/interview-prep/leetcode/1004_translated.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1004_translated.md
rename to app/docs/career/interview-prep/leetcode/1004_translated.md
diff --git a/app/docs/CommunityShare/Leetcode/121-best-time-to-buy-and-sell-stock.en.md b/app/docs/career/interview-prep/leetcode/121-best-time-to-buy-and-sell-stock.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/121-best-time-to-buy-and-sell-stock.en.md
rename to app/docs/career/interview-prep/leetcode/121-best-time-to-buy-and-sell-stock.en.md
diff --git a/app/docs/CommunityShare/Leetcode/1234-replace-substring-for-balanced-string.en.md b/app/docs/career/interview-prep/leetcode/1234-replace-substring-for-balanced-string.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1234-replace-substring-for-balanced-string.en.md
rename to app/docs/career/interview-prep/leetcode/1234-replace-substring-for-balanced-string.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/1234. \346\233\277\346\215\242\345\255\220\344\270\262\345\276\227\345\210\260\345\271\263\350\241\241\345\255\227\347\254\246\344\270\262_translated.md" "b/app/docs/career/interview-prep/leetcode/1234. \346\233\277\346\215\242\345\255\220\344\270\262\345\276\227\345\210\260\345\271\263\350\241\241\345\255\227\347\254\246\344\270\262_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/1234. \346\233\277\346\215\242\345\255\220\344\270\262\345\276\227\345\210\260\345\271\263\350\241\241\345\255\227\347\254\246\344\270\262_translated.md"
rename to "app/docs/career/interview-prep/leetcode/1234. \346\233\277\346\215\242\345\255\220\344\270\262\345\276\227\345\210\260\345\271\263\350\241\241\345\255\227\347\254\246\344\270\262_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/1333-filter-restaurants-by-vegan-friendly-price-and-distance.en.md b/app/docs/career/interview-prep/leetcode/1333-filter-restaurants-by-vegan-friendly-price-and-distance.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1333-filter-restaurants-by-vegan-friendly-price-and-distance.en.md
rename to app/docs/career/interview-prep/leetcode/1333-filter-restaurants-by-vegan-friendly-price-and-distance.en.md
diff --git a/app/docs/CommunityShare/Leetcode/142-linked-list-cycle-ii.en.md b/app/docs/career/interview-prep/leetcode/142-linked-list-cycle-ii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/142-linked-list-cycle-ii.en.md
rename to app/docs/career/interview-prep/leetcode/142-linked-list-cycle-ii.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md" "b/app/docs/career/interview-prep/leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md"
similarity index 93%
rename from "app/docs/CommunityShare/Leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md"
rename to "app/docs/career/interview-prep/leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md"
index 00d24fb7..690952e6 100644
--- "a/app/docs/CommunityShare/Leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md"
+++ "b/app/docs/career/interview-prep/leetcode/142.\347\216\257\345\275\242\351\223\276\350\241\250II_translated.md"
@@ -23,7 +23,7 @@ docId: ylpucy1rbbnfpe3t62u8kcfq
[//]: #
[//]: # "
Exemplary example 1:
"
[//]: #
-[//]: # '<img src="https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist.png" />
'
+[//]: # '
'
[//]: #
[//]: # ""
[//]: # "enter:head = [3,2,0,-4], pos = 1"
@@ -33,7 +33,7 @@ docId: ylpucy1rbbnfpe3t62u8kcfq
[//]: #
[//]: # "Exemplary example 2:
"
[//]: #
-[//]: # '<img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist_test2.png" />
'
+[//]: # '
'
[//]: #
[//]: # ""
[//]: # "enter:head = [1,2], pos = 0"
@@ -43,7 +43,7 @@ docId: ylpucy1rbbnfpe3t62u8kcfq
[//]: #
[//]: # "Exemplary example 3:
"
[//]: #
-[//]: # '<img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist_test3.png" />
'
+[//]: # '
'
[//]: #
[//]: # ""
[//]: # "enter:head = [1], pos = -1"
@@ -57,7 +57,7 @@ docId: ylpucy1rbbnfpe3t62u8kcfq
[//]: #
[//]: # "
"
[//]: # " - Linked中节点的数目范围在范围
[0, 104] Inside "
-[//]: # " -105 <= Node.val <= 10<sup>5 "
+[//]: # " -105 <= Node.val <= 105 "
[//]: # " pos Value -1 或者Linked中的一indivualhave效索引 "
[//]: # "
"
diff --git a/app/docs/CommunityShare/Leetcode/146-lru-cache.en.md b/app/docs/career/interview-prep/leetcode/146-lru-cache.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/146-lru-cache.en.md
rename to app/docs/career/interview-prep/leetcode/146-lru-cache.en.md
diff --git a/app/docs/CommunityShare/Leetcode/1545-find-kth-bit-in-nth-binary-string.en.md b/app/docs/career/interview-prep/leetcode/1545-find-kth-bit-in-nth-binary-string.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1545-find-kth-bit-in-nth-binary-string.en.md
rename to app/docs/career/interview-prep/leetcode/1545-find-kth-bit-in-nth-binary-string.en.md
diff --git a/app/docs/CommunityShare/Leetcode/1653-minimum-deletions-to-make-string-balanced.en.md b/app/docs/career/interview-prep/leetcode/1653-minimum-deletions-to-make-string-balanced.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1653-minimum-deletions-to-make-string-balanced.en.md
rename to app/docs/career/interview-prep/leetcode/1653-minimum-deletions-to-make-string-balanced.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/1653. \344\275\277\345\255\227\347\254\246\344\270\262\345\271\263\350\241\241\347\232\204\346\234\200\345\260\221\345\210\240\351\231\244\346\254\241\346\225\260_translated.md" "b/app/docs/career/interview-prep/leetcode/1653. \344\275\277\345\255\227\347\254\246\344\270\262\345\271\263\350\241\241\347\232\204\346\234\200\345\260\221\345\210\240\351\231\244\346\254\241\346\225\260_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/1653. \344\275\277\345\255\227\347\254\246\344\270\262\345\271\263\350\241\241\347\232\204\346\234\200\345\260\221\345\210\240\351\231\244\346\254\241\346\225\260_translated.md"
rename to "app/docs/career/interview-prep/leetcode/1653. \344\275\277\345\255\227\347\254\246\344\270\262\345\271\263\350\241\241\347\232\204\346\234\200\345\260\221\345\210\240\351\231\244\346\254\241\346\225\260_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/1664-ways-to-make-a-fair-array.en.md b/app/docs/career/interview-prep/leetcode/1664-ways-to-make-a-fair-array.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1664-ways-to-make-a-fair-array.en.md
rename to app/docs/career/interview-prep/leetcode/1664-ways-to-make-a-fair-array.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/1664\347\224\237\346\210\220\345\271\263\350\241\241\346\225\260\347\273\204\347\232\204\346\226\271\346\241\210\346\225\260_translated.md" "b/app/docs/career/interview-prep/leetcode/1664\347\224\237\346\210\220\345\271\263\350\241\241\346\225\260\347\273\204\347\232\204\346\226\271\346\241\210\346\225\260_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/1664\347\224\237\346\210\220\345\271\263\350\241\241\346\225\260\347\273\204\347\232\204\346\226\271\346\241\210\346\225\260_translated.md"
rename to "app/docs/career/interview-prep/leetcode/1664\347\224\237\346\210\220\345\271\263\350\241\241\346\225\260\347\273\204\347\232\204\346\226\271\346\241\210\346\225\260_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/1825-mk-average.en.md b/app/docs/career/interview-prep/leetcode/1825-mk-average.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1825-mk-average.en.md
rename to app/docs/career/interview-prep/leetcode/1825-mk-average.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/1825\346\261\202\345\207\272 MK \345\271\263\345\235\207\345\200\274_translated.md" "b/app/docs/career/interview-prep/leetcode/1825\346\261\202\345\207\272 MK \345\271\263\345\235\207\345\200\274_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/1825\346\261\202\345\207\272 MK \345\271\263\345\235\207\345\200\274_translated.md"
rename to "app/docs/career/interview-prep/leetcode/1825\346\261\202\345\207\272 MK \345\271\263\345\235\207\345\200\274_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/1828-queries-on-number-of-points-inside-a-circle.en.md b/app/docs/career/interview-prep/leetcode/1828-queries-on-number-of-points-inside-a-circle.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/1828-queries-on-number-of-points-inside-a-circle.en.md
rename to app/docs/career/interview-prep/leetcode/1828-queries-on-number-of-points-inside-a-circle.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/1828\347\273\237\350\256\241\344\270\200\344\270\252\345\234\206\344\270\255\347\202\271\347\232\204\346\225\260\347\233\256_translated.md" "b/app/docs/career/interview-prep/leetcode/1828\347\273\237\350\256\241\344\270\200\344\270\252\345\234\206\344\270\255\347\202\271\347\232\204\346\225\260\347\233\256_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/1828\347\273\237\350\256\241\344\270\200\344\270\252\345\234\206\344\270\255\347\202\271\347\232\204\346\225\260\347\233\256_translated.md"
rename to "app/docs/career/interview-prep/leetcode/1828\347\273\237\350\256\241\344\270\200\344\270\252\345\234\206\344\270\255\347\202\271\347\232\204\346\225\260\347\233\256_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/213-house-robber-ii.en.md b/app/docs/career/interview-prep/leetcode/213-house-robber-ii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/213-house-robber-ii.en.md
rename to app/docs/career/interview-prep/leetcode/213-house-robber-ii.en.md
diff --git a/app/docs/CommunityShare/Leetcode/2131-longest-palindrome-by-concatenating-two-letter-words.en.md b/app/docs/career/interview-prep/leetcode/2131-longest-palindrome-by-concatenating-two-letter-words.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2131-longest-palindrome-by-concatenating-two-letter-words.en.md
rename to app/docs/career/interview-prep/leetcode/2131-longest-palindrome-by-concatenating-two-letter-words.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2131. \350\277\236\346\216\245\344\270\244\345\255\227\346\257\215\345\215\225\350\257\215\345\276\227\345\210\260\347\232\204\346\234\200\351\225\277\345\233\236\346\226\207\344\270\262.md" "b/app/docs/career/interview-prep/leetcode/2131. \350\277\236\346\216\245\344\270\244\345\255\227\346\257\215\345\215\225\350\257\215\345\276\227\345\210\260\347\232\204\346\234\200\351\225\277\345\233\236\346\226\207\344\270\262.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2131. \350\277\236\346\216\245\344\270\244\345\255\227\346\257\215\345\215\225\350\257\215\345\276\227\345\210\260\347\232\204\346\234\200\351\225\277\345\233\236\346\226\207\344\270\262.md"
rename to "app/docs/career/interview-prep/leetcode/2131. \350\277\236\346\216\245\344\270\244\345\255\227\346\257\215\345\215\225\350\257\215\345\276\227\345\210\260\347\232\204\346\234\200\351\225\277\345\233\236\346\226\207\344\270\262.md"
diff --git a/app/docs/CommunityShare/Leetcode/219-contains-duplicate-ii.en.md b/app/docs/career/interview-prep/leetcode/219-contains-duplicate-ii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/219-contains-duplicate-ii.en.md
rename to app/docs/career/interview-prep/leetcode/219-contains-duplicate-ii.en.md
diff --git a/app/docs/CommunityShare/Leetcode/219_translated.md b/app/docs/career/interview-prep/leetcode/219_translated.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/219_translated.md
rename to app/docs/career/interview-prep/leetcode/219_translated.md
diff --git a/app/docs/CommunityShare/Leetcode/2241-design-an-atm-machine.zh.md b/app/docs/career/interview-prep/leetcode/2241-design-an-atm-machine.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2241-design-an-atm-machine.zh.md
rename to app/docs/career/interview-prep/leetcode/2241-design-an-atm-machine.zh.md
diff --git a/app/docs/CommunityShare/Leetcode/2241. Design an ATM Machine.md b/app/docs/career/interview-prep/leetcode/2241. Design an ATM Machine.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2241. Design an ATM Machine.md
rename to app/docs/career/interview-prep/leetcode/2241. Design an ATM Machine.md
diff --git a/app/docs/CommunityShare/Leetcode/2270-number-of-ways-to-split-array.zh.md b/app/docs/career/interview-prep/leetcode/2270-number-of-ways-to-split-array.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2270-number-of-ways-to-split-array.zh.md
rename to app/docs/career/interview-prep/leetcode/2270-number-of-ways-to-split-array.zh.md
diff --git a/app/docs/CommunityShare/Leetcode/2270. Number of Ways to Split Array.md b/app/docs/career/interview-prep/leetcode/2270. Number of Ways to Split Array.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2270. Number of Ways to Split Array.md
rename to app/docs/career/interview-prep/leetcode/2270. Number of Ways to Split Array.md
diff --git a/app/docs/CommunityShare/Leetcode/2293-min-max-game.en.md b/app/docs/career/interview-prep/leetcode/2293-min-max-game.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2293-min-max-game.en.md
rename to app/docs/career/interview-prep/leetcode/2293-min-max-game.en.md
diff --git a/app/docs/CommunityShare/Leetcode/2293_translated.md b/app/docs/career/interview-prep/leetcode/2293_translated.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2293_translated.md
rename to app/docs/career/interview-prep/leetcode/2293_translated.md
diff --git a/app/docs/CommunityShare/Leetcode/2299-strong-password-checker-ii.en.md b/app/docs/career/interview-prep/leetcode/2299-strong-password-checker-ii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2299-strong-password-checker-ii.en.md
rename to app/docs/career/interview-prep/leetcode/2299-strong-password-checker-ii.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2299\345\274\272\345\257\206\347\240\201\346\243\200\351\252\214\345\231\250II_translated.md" "b/app/docs/career/interview-prep/leetcode/2299\345\274\272\345\257\206\347\240\201\346\243\200\351\252\214\345\231\250II_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2299\345\274\272\345\257\206\347\240\201\346\243\200\351\252\214\345\231\250II_translated.md"
rename to "app/docs/career/interview-prep/leetcode/2299\345\274\272\345\257\206\347\240\201\346\243\200\351\252\214\345\231\250II_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/2309-greatest-english-letter-in-upper-and-lower-case.en.md b/app/docs/career/interview-prep/leetcode/2309-greatest-english-letter-in-upper-and-lower-case.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2309-greatest-english-letter-in-upper-and-lower-case.en.md
rename to app/docs/career/interview-prep/leetcode/2309-greatest-english-letter-in-upper-and-lower-case.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2309\345\205\274\345\205\267\345\244\247\345\260\217\345\206\231\347\232\204\346\234\200\345\245\275\350\213\261\346\226\207\345\255\227\346\257\215_translated.md" "b/app/docs/career/interview-prep/leetcode/2309\345\205\274\345\205\267\345\244\247\345\260\217\345\206\231\347\232\204\346\234\200\345\245\275\350\213\261\346\226\207\345\255\227\346\257\215_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2309\345\205\274\345\205\267\345\244\247\345\260\217\345\206\231\347\232\204\346\234\200\345\245\275\350\213\261\346\226\207\345\255\227\346\257\215_translated.md"
rename to "app/docs/career/interview-prep/leetcode/2309\345\205\274\345\205\267\345\244\247\345\260\217\345\206\231\347\232\204\346\234\200\345\245\275\350\213\261\346\226\207\345\255\227\346\257\215_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/2335-minimum-amount-of-time-to-fill-cups.en.md b/app/docs/career/interview-prep/leetcode/2335-minimum-amount-of-time-to-fill-cups.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2335-minimum-amount-of-time-to-fill-cups.en.md
rename to app/docs/career/interview-prep/leetcode/2335-minimum-amount-of-time-to-fill-cups.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2335. \350\243\205\346\273\241\346\235\257\345\255\220\351\234\200\350\246\201\347\232\204\346\234\200\347\237\255\346\200\273\346\227\266\351\225\277_translated.md" "b/app/docs/career/interview-prep/leetcode/2335. \350\243\205\346\273\241\346\235\257\345\255\220\351\234\200\350\246\201\347\232\204\346\234\200\347\237\255\346\200\273\346\227\266\351\225\277_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2335. \350\243\205\346\273\241\346\235\257\345\255\220\351\234\200\350\246\201\347\232\204\346\234\200\347\237\255\346\200\273\346\227\266\351\225\277_translated.md"
rename to "app/docs/career/interview-prep/leetcode/2335. \350\243\205\346\273\241\346\235\257\345\255\220\351\234\200\350\246\201\347\232\204\346\234\200\347\237\255\346\200\273\346\227\266\351\225\277_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/2341-maximum-number-of-pairs-in-array.en.md b/app/docs/career/interview-prep/leetcode/2341-maximum-number-of-pairs-in-array.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2341-maximum-number-of-pairs-in-array.en.md
rename to app/docs/career/interview-prep/leetcode/2341-maximum-number-of-pairs-in-array.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2341. \346\225\260\347\273\204\350\203\275\345\275\242\346\210\220\345\244\232\345\260\221\346\225\260\345\257\271_translated.md" "b/app/docs/career/interview-prep/leetcode/2341. \346\225\260\347\273\204\350\203\275\345\275\242\346\210\220\345\244\232\345\260\221\346\225\260\345\257\271_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2341. \346\225\260\347\273\204\350\203\275\345\275\242\346\210\220\345\244\232\345\260\221\346\225\260\345\257\271_translated.md"
rename to "app/docs/career/interview-prep/leetcode/2341. \346\225\260\347\273\204\350\203\275\345\275\242\346\210\220\345\244\232\345\260\221\346\225\260\345\257\271_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/2490-circular-sentence.en.md b/app/docs/career/interview-prep/leetcode/2490-circular-sentence.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2490-circular-sentence.en.md
rename to app/docs/career/interview-prep/leetcode/2490-circular-sentence.en.md
diff --git a/app/docs/CommunityShare/Leetcode/2562-find-the-array-concatenation-value.en.md b/app/docs/career/interview-prep/leetcode/2562-find-the-array-concatenation-value.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2562-find-the-array-concatenation-value.en.md
rename to app/docs/career/interview-prep/leetcode/2562-find-the-array-concatenation-value.en.md
diff --git a/app/docs/CommunityShare/Leetcode/2582-pass-the-pillow.en.md b/app/docs/career/interview-prep/leetcode/2582-pass-the-pillow.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2582-pass-the-pillow.en.md
rename to app/docs/career/interview-prep/leetcode/2582-pass-the-pillow.en.md
diff --git a/app/docs/CommunityShare/Leetcode/2639-find-column-width-of-grid.en.md b/app/docs/career/interview-prep/leetcode/2639-find-column-width-of-grid.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2639-find-column-width-of-grid.en.md
rename to app/docs/career/interview-prep/leetcode/2639-find-column-width-of-grid.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2639. \346\237\245\350\257\242\347\275\221\346\240\274\345\233\276\344\270\255\346\257\217\344\270\200\345\210\227\347\232\204\345\256\275\345\272\246_translated.md" "b/app/docs/career/interview-prep/leetcode/2639. \346\237\245\350\257\242\347\275\221\346\240\274\345\233\276\344\270\255\346\257\217\344\270\200\345\210\227\347\232\204\345\256\275\345\272\246_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2639. \346\237\245\350\257\242\347\275\221\346\240\274\345\233\276\344\270\255\346\257\217\344\270\200\345\210\227\347\232\204\345\256\275\345\272\246_translated.md"
rename to "app/docs/career/interview-prep/leetcode/2639. \346\237\245\350\257\242\347\275\221\346\240\274\345\233\276\344\270\255\346\257\217\344\270\200\345\210\227\347\232\204\345\256\275\345\272\246_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/2679-sum-in-a-matrix.en.md b/app/docs/career/interview-prep/leetcode/2679-sum-in-a-matrix.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2679-sum-in-a-matrix.en.md
rename to app/docs/career/interview-prep/leetcode/2679-sum-in-a-matrix.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2679.\347\237\251\351\230\265\344\270\255\347\232\204\345\222\214_translated.md" "b/app/docs/career/interview-prep/leetcode/2679.\347\237\251\351\230\265\344\270\255\347\232\204\345\222\214_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2679.\347\237\251\351\230\265\344\270\255\347\232\204\345\222\214_translated.md"
rename to "app/docs/career/interview-prep/leetcode/2679.\347\237\251\351\230\265\344\270\255\347\232\204\345\222\214_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/2894-divisible-and-non-divisible-sums-difference.en.md b/app/docs/career/interview-prep/leetcode/2894-divisible-and-non-divisible-sums-difference.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/2894-divisible-and-non-divisible-sums-difference.en.md
rename to app/docs/career/interview-prep/leetcode/2894-divisible-and-non-divisible-sums-difference.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/2894. \345\210\206\347\261\273\346\261\202\345\222\214\345\271\266\344\275\234\345\267\256.md" "b/app/docs/career/interview-prep/leetcode/2894. \345\210\206\347\261\273\346\261\202\345\222\214\345\271\266\344\275\234\345\267\256.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/2894. \345\210\206\347\261\273\346\261\202\345\222\214\345\271\266\344\275\234\345\267\256.md"
rename to "app/docs/career/interview-prep/leetcode/2894. \345\210\206\347\261\273\346\261\202\345\222\214\345\271\266\344\275\234\345\267\256.md"
diff --git a/app/docs/CommunityShare/Leetcode/3072-distribute-elements-into-two-arrays-ii.en.md b/app/docs/career/interview-prep/leetcode/3072-distribute-elements-into-two-arrays-ii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/3072-distribute-elements-into-two-arrays-ii.en.md
rename to app/docs/career/interview-prep/leetcode/3072-distribute-elements-into-two-arrays-ii.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/3072. \345\260\206\345\205\203\347\264\240\345\210\206\351\205\215\345\210\260\344\270\244\344\270\252\346\225\260\347\273\204\344\270\255 II_translated.md" "b/app/docs/career/interview-prep/leetcode/3072. \345\260\206\345\205\203\347\264\240\345\210\206\351\205\215\345\210\260\344\270\244\344\270\252\346\225\260\347\273\204\344\270\255 II_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/3072. \345\260\206\345\205\203\347\264\240\345\210\206\351\205\215\345\210\260\344\270\244\344\270\252\346\225\260\347\273\204\344\270\255 II_translated.md"
rename to "app/docs/career/interview-prep/leetcode/3072. \345\260\206\345\205\203\347\264\240\345\210\206\351\205\215\345\210\260\344\270\244\344\270\252\346\225\260\347\273\204\344\270\255 II_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/3138-minimum-length-of-anagram-concatenation.zh.md b/app/docs/career/interview-prep/leetcode/3138-minimum-length-of-anagram-concatenation.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/3138-minimum-length-of-anagram-concatenation.zh.md
rename to app/docs/career/interview-prep/leetcode/3138-minimum-length-of-anagram-concatenation.zh.md
diff --git a/app/docs/CommunityShare/Leetcode/3138. Minimum Length of Anagram Concatenation.md b/app/docs/career/interview-prep/leetcode/3138. Minimum Length of Anagram Concatenation.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/3138. Minimum Length of Anagram Concatenation.md
rename to app/docs/career/interview-prep/leetcode/3138. Minimum Length of Anagram Concatenation.md
diff --git a/app/docs/CommunityShare/Leetcode/345-reverse-vowels-of-a-string.en.md b/app/docs/career/interview-prep/leetcode/345-reverse-vowels-of-a-string.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/345-reverse-vowels-of-a-string.en.md
rename to app/docs/career/interview-prep/leetcode/345-reverse-vowels-of-a-string.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/345. \345\217\215\350\275\254\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\345\205\203\351\237\263\345\255\227\346\257\215_translated.md" "b/app/docs/career/interview-prep/leetcode/345. \345\217\215\350\275\254\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\345\205\203\351\237\263\345\255\227\346\257\215_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/345. \345\217\215\350\275\254\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\345\205\203\351\237\263\345\255\227\346\257\215_translated.md"
rename to "app/docs/career/interview-prep/leetcode/345. \345\217\215\350\275\254\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\345\205\203\351\237\263\345\255\227\346\257\215_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/42-trapping-rain-water.en.md b/app/docs/career/interview-prep/leetcode/42-trapping-rain-water.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/42-trapping-rain-water.en.md
rename to app/docs/career/interview-prep/leetcode/42-trapping-rain-water.en.md
diff --git a/app/docs/CommunityShare/Leetcode/42.md b/app/docs/career/interview-prep/leetcode/42.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/42.md
rename to app/docs/career/interview-prep/leetcode/42.md
diff --git a/app/docs/CommunityShare/Leetcode/46-permutations.zh.md b/app/docs/career/interview-prep/leetcode/46-permutations.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/46-permutations.zh.md
rename to app/docs/career/interview-prep/leetcode/46-permutations.zh.md
diff --git "a/app/docs/CommunityShare/Leetcode/46.\345\205\250\346\216\222\345\210\227.md" "b/app/docs/career/interview-prep/leetcode/46.\345\205\250\346\216\222\345\210\227.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/46.\345\205\250\346\216\222\345\210\227.md"
rename to "app/docs/career/interview-prep/leetcode/46.\345\205\250\346\216\222\345\210\227.md"
diff --git a/app/docs/CommunityShare/Leetcode/538-convert-bst-to-greater-sum-tree.en.md b/app/docs/career/interview-prep/leetcode/538-convert-bst-to-greater-sum-tree.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/538-convert-bst-to-greater-sum-tree.en.md
rename to app/docs/career/interview-prep/leetcode/538-convert-bst-to-greater-sum-tree.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/538.\346\212\212\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\275\254\346\215\242\344\270\272\347\264\257\345\212\240\346\240\221_translated.md" "b/app/docs/career/interview-prep/leetcode/538.\346\212\212\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\275\254\346\215\242\344\270\272\347\264\257\345\212\240\346\240\221_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/538.\346\212\212\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\275\254\346\215\242\344\270\272\347\264\257\345\212\240\346\240\221_translated.md"
rename to "app/docs/career/interview-prep/leetcode/538.\346\212\212\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\350\275\254\346\215\242\344\270\272\347\264\257\345\212\240\346\240\221_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/6323-distribute-money-to-maximum-children.en.md b/app/docs/career/interview-prep/leetcode/6323-distribute-money-to-maximum-children.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/6323-distribute-money-to-maximum-children.en.md
rename to app/docs/career/interview-prep/leetcode/6323-distribute-money-to-maximum-children.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/6323. \345\260\206\351\222\261\345\210\206\347\273\231\346\234\200\345\244\232\347\232\204\345\204\277\347\253\245_translated.md" "b/app/docs/career/interview-prep/leetcode/6323. \345\260\206\351\222\261\345\210\206\347\273\231\346\234\200\345\244\232\347\232\204\345\204\277\347\253\245_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/6323. \345\260\206\351\222\261\345\210\206\347\273\231\346\234\200\345\244\232\347\232\204\345\204\277\347\253\245_translated.md"
rename to "app/docs/career/interview-prep/leetcode/6323. \345\260\206\351\222\261\345\210\206\347\273\231\346\234\200\345\244\232\347\232\204\345\204\277\347\253\245_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/76-minimum-window-substring.en.md b/app/docs/career/interview-prep/leetcode/76-minimum-window-substring.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/76-minimum-window-substring.en.md
rename to app/docs/career/interview-prep/leetcode/76-minimum-window-substring.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/76\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262_translated.md" "b/app/docs/career/interview-prep/leetcode/76\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/76\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262_translated.md"
rename to "app/docs/career/interview-prep/leetcode/76\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/80-remove-duplicates-from-sorted-array-ii.en.md b/app/docs/career/interview-prep/leetcode/80-remove-duplicates-from-sorted-array-ii.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/80-remove-duplicates-from-sorted-array-ii.en.md
rename to app/docs/career/interview-prep/leetcode/80-remove-duplicates-from-sorted-array-ii.en.md
diff --git a/app/docs/CommunityShare/Leetcode/80_translated.md b/app/docs/career/interview-prep/leetcode/80_translated.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/80_translated.md
rename to app/docs/career/interview-prep/leetcode/80_translated.md
diff --git a/app/docs/CommunityShare/Leetcode/9021-tut-3-25t1.zh.md b/app/docs/career/interview-prep/leetcode/9021-tut-3-25t1.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/9021-tut-3-25t1.zh.md
rename to app/docs/career/interview-prep/leetcode/9021-tut-3-25t1.zh.md
diff --git a/app/docs/CommunityShare/Leetcode/9021_TUT_3_25T1.md b/app/docs/career/interview-prep/leetcode/9021_TUT_3_25T1.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/9021_TUT_3_25T1.md
rename to app/docs/career/interview-prep/leetcode/9021_TUT_3_25T1.md
diff --git a/app/docs/CommunityShare/Leetcode/93-restore-ip-addresses.zh.md b/app/docs/career/interview-prep/leetcode/93-restore-ip-addresses.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/93-restore-ip-addresses.zh.md
rename to app/docs/career/interview-prep/leetcode/93-restore-ip-addresses.zh.md
diff --git "a/app/docs/CommunityShare/Leetcode/93\345\244\215\345\216\237Ip\345\234\260\345\235\200.md" "b/app/docs/career/interview-prep/leetcode/93\345\244\215\345\216\237Ip\345\234\260\345\235\200.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/93\345\244\215\345\216\237Ip\345\234\260\345\235\200.md"
rename to "app/docs/career/interview-prep/leetcode/93\345\244\215\345\216\237Ip\345\234\260\345\235\200.md"
diff --git a/app/docs/CommunityShare/Leetcode/994-rotting-oranges.en.md b/app/docs/career/interview-prep/leetcode/994-rotting-oranges.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/994-rotting-oranges.en.md
rename to app/docs/career/interview-prep/leetcode/994-rotting-oranges.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/994.\350\205\220\347\203\202\347\232\204\346\251\230\345\255\220_translated.md" "b/app/docs/career/interview-prep/leetcode/994.\350\205\220\347\203\202\347\232\204\346\251\230\345\255\220_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/994.\350\205\220\347\203\202\347\232\204\346\251\230\345\255\220_translated.md"
rename to "app/docs/career/interview-prep/leetcode/994.\350\205\220\347\203\202\347\232\204\346\251\230\345\255\220_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/Counting Stars-Inter-Uni Programming Contest.md b/app/docs/career/interview-prep/leetcode/Counting Stars-Inter-Uni Programming Contest.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/Counting Stars-Inter-Uni Programming Contest.md
rename to app/docs/career/interview-prep/leetcode/Counting Stars-Inter-Uni Programming Contest.md
diff --git "a/app/docs/CommunityShare/Leetcode/[121]\344\271\260\345\215\226\350\202\241\347\245\250\347\232\204\346\234\200\344\275\263\346\227\266\346\234\237_translated.md" "b/app/docs/career/interview-prep/leetcode/[121]\344\271\260\345\215\226\350\202\241\347\245\250\347\232\204\346\234\200\344\275\263\346\227\266\346\234\237_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[121]\344\271\260\345\215\226\350\202\241\347\245\250\347\232\204\346\234\200\344\275\263\346\227\266\346\234\237_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[121]\344\271\260\345\215\226\350\202\241\347\245\250\347\232\204\346\234\200\344\275\263\346\227\266\346\234\237_translated.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[1333]\351\244\220\345\216\205\350\277\207\346\273\244\345\231\250_translated.md" "b/app/docs/career/interview-prep/leetcode/[1333]\351\244\220\345\216\205\350\277\207\346\273\244\345\231\250_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[1333]\351\244\220\345\216\205\350\277\207\346\273\244\345\231\250_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[1333]\351\244\220\345\216\205\350\277\207\346\273\244\345\231\250_translated.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[146]LRU \347\274\223\345\255\230_translated.md" "b/app/docs/career/interview-prep/leetcode/[146]LRU \347\274\223\345\255\230_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[146]LRU \347\274\223\345\255\230_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[146]LRU \347\274\223\345\255\230_translated.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[1545]\346\211\276\345\207\272\347\254\254 N \344\270\252\344\272\214\350\277\233\345\210\266\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\347\254\254 K \344\275\215.md" "b/app/docs/career/interview-prep/leetcode/[1545]\346\211\276\345\207\272\347\254\254 N \344\270\252\344\272\214\350\277\233\345\210\266\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\347\254\254 K \344\275\215.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[1545]\346\211\276\345\207\272\347\254\254 N \344\270\252\344\272\214\350\277\233\345\210\266\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\347\254\254 K \344\275\215.md"
rename to "app/docs/career/interview-prep/leetcode/[1545]\346\211\276\345\207\272\347\254\254 N \344\270\252\344\272\214\350\277\233\345\210\266\345\255\227\347\254\246\344\270\262\344\270\255\347\232\204\347\254\254 K \344\275\215.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[213]\346\211\223\345\256\266\345\212\253\350\210\215 II_translated.md" "b/app/docs/career/interview-prep/leetcode/[213]\346\211\223\345\256\266\345\212\253\350\210\215 II_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[213]\346\211\223\345\256\266\345\212\253\350\210\215 II_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[213]\346\211\223\345\256\266\345\212\253\350\210\215 II_translated.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[2490]\345\233\236\347\216\257\345\217\245_translated.md" "b/app/docs/career/interview-prep/leetcode/[2490]\345\233\236\347\216\257\345\217\245_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[2490]\345\233\236\347\216\257\345\217\245_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[2490]\345\233\236\347\216\257\345\217\245_translated.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[2562]\346\211\276\345\207\272\346\225\260\347\273\204\347\232\204\344\270\262\350\201\224\345\200\274_translated.md" "b/app/docs/career/interview-prep/leetcode/[2562]\346\211\276\345\207\272\346\225\260\347\273\204\347\232\204\344\270\262\350\201\224\345\200\274_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[2562]\346\211\276\345\207\272\346\225\260\347\273\204\347\232\204\344\270\262\350\201\224\345\200\274_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[2562]\346\211\276\345\207\272\346\225\260\347\273\204\347\232\204\344\270\262\350\201\224\345\200\274_translated.md"
diff --git "a/app/docs/CommunityShare/Leetcode/[2582]\351\200\222\346\236\225\345\244\264_translated.md" "b/app/docs/career/interview-prep/leetcode/[2582]\351\200\222\346\236\225\345\244\264_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/[2582]\351\200\222\346\236\225\345\244\264_translated.md"
rename to "app/docs/career/interview-prep/leetcode/[2582]\351\200\222\346\236\225\345\244\264_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/brief-alternate-homework-help.en.md b/app/docs/career/interview-prep/leetcode/brief-alternate-homework-help.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/brief-alternate-homework-help.en.md
rename to app/docs/career/interview-prep/leetcode/brief-alternate-homework-help.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/brief_alternate \344\275\234\344\270\232\345\270\256\345\277\231_translated.md" "b/app/docs/career/interview-prep/leetcode/brief_alternate \344\275\234\344\270\232\345\270\256\345\277\231_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/brief_alternate \344\275\234\344\270\232\345\270\256\345\277\231_translated.md"
rename to "app/docs/career/interview-prep/leetcode/brief_alternate \344\275\234\344\270\232\345\270\256\345\277\231_translated.md"
diff --git a/app/docs/CommunityShare/Leetcode/counting-stars-inter-uni-programming-contest.zh.md b/app/docs/career/interview-prep/leetcode/counting-stars-inter-uni-programming-contest.zh.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/counting-stars-inter-uni-programming-contest.zh.md
rename to app/docs/career/interview-prep/leetcode/counting-stars-inter-uni-programming-contest.zh.md
diff --git a/app/docs/CommunityShare/Leetcode/index.mdx b/app/docs/career/interview-prep/leetcode/index.mdx
similarity index 84%
rename from app/docs/CommunityShare/Leetcode/index.mdx
rename to app/docs/career/interview-prep/leetcode/index.mdx
index ce3a2590..03f849c9 100644
--- a/app/docs/CommunityShare/Leetcode/index.mdx
+++ b/app/docs/career/interview-prep/leetcode/index.mdx
@@ -10,4 +10,4 @@ import { SectionIndex } from "@/app/components/docs/SectionIndex";
欢迎查阅 Leetcode 相关的分享内容。
-
+
diff --git a/app/docs/CommunityShare/Leetcode/sword-offer-ii-021-remove-nth-node-from-end-of-list.en.md b/app/docs/career/interview-prep/leetcode/sword-offer-ii-021-remove-nth-node-from-end-of-list.en.md
similarity index 100%
rename from app/docs/CommunityShare/Leetcode/sword-offer-ii-021-remove-nth-node-from-end-of-list.en.md
rename to app/docs/career/interview-prep/leetcode/sword-offer-ii-021-remove-nth-node-from-end-of-list.en.md
diff --git "a/app/docs/CommunityShare/Leetcode/\345\211\221\346\214\207 Offer II 021. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 n \344\270\252\347\273\223\347\202\271_translated.md" "b/app/docs/career/interview-prep/leetcode/\345\211\221\346\214\207 Offer II 021. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 n \344\270\252\347\273\223\347\202\271_translated.md"
similarity index 100%
rename from "app/docs/CommunityShare/Leetcode/\345\211\221\346\214\207 Offer II 021. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 n \344\270\252\347\273\223\347\202\271_translated.md"
rename to "app/docs/career/interview-prep/leetcode/\345\211\221\346\214\207 Offer II 021. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 n \344\270\252\347\273\223\347\202\271_translated.md"
diff --git a/app/docs/jobs/interview-prep/pre-interview.en.md b/app/docs/career/interview-prep/pre-interview.en.md
similarity index 100%
rename from app/docs/jobs/interview-prep/pre-interview.en.md
rename to app/docs/career/interview-prep/pre-interview.en.md
diff --git a/app/docs/jobs/interview-prep/pre-interview.md b/app/docs/career/interview-prep/pre-interview.md
similarity index 100%
rename from app/docs/jobs/interview-prep/pre-interview.md
rename to app/docs/career/interview-prep/pre-interview.md
diff --git a/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx b/app/docs/career/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx
similarity index 100%
rename from app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx
rename to app/docs/career/interview-prep/preparations-to-get-an-offer-as-a-student.en.mdx
diff --git a/app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.mdx b/app/docs/career/interview-prep/preparations-to-get-an-offer-as-a-student.mdx
similarity index 100%
rename from app/docs/jobs/interview-prep/preparations-to-get-an-offer-as-a-student.mdx
rename to app/docs/career/interview-prep/preparations-to-get-an-offer-as-a-student.mdx
diff --git a/app/docs/CommunityShare/Geek/CommonUsedMarkdown.assets/testpic1.jpg b/app/docs/community/dev-tips/CommonUsedMarkdown.assets/testpic1.jpg
similarity index 100%
rename from app/docs/CommunityShare/Geek/CommonUsedMarkdown.assets/testpic1.jpg
rename to app/docs/community/dev-tips/CommonUsedMarkdown.assets/testpic1.jpg
diff --git a/app/docs/CommunityShare/Geek/CommonUsedMarkdown.en.md b/app/docs/community/dev-tips/CommonUsedMarkdown.en.md
similarity index 100%
rename from app/docs/CommunityShare/Geek/CommonUsedMarkdown.en.md
rename to app/docs/community/dev-tips/CommonUsedMarkdown.en.md
diff --git a/app/docs/CommunityShare/Geek/CommonUsedMarkdown.md b/app/docs/community/dev-tips/CommonUsedMarkdown.md
similarity index 100%
rename from app/docs/CommunityShare/Geek/CommonUsedMarkdown.md
rename to app/docs/community/dev-tips/CommonUsedMarkdown.md
diff --git a/app/docs/CommunityShare/Geek/Katex/Seb1.en.mdx b/app/docs/community/dev-tips/Katex/Seb1.en.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/Katex/Seb1.en.mdx
rename to app/docs/community/dev-tips/Katex/Seb1.en.mdx
diff --git a/app/docs/CommunityShare/Geek/Katex/Seb1.mdx b/app/docs/community/dev-tips/Katex/Seb1.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/Katex/Seb1.mdx
rename to app/docs/community/dev-tips/Katex/Seb1.mdx
diff --git a/app/docs/CommunityShare/Geek/Katex/Seb2.en.mdx b/app/docs/community/dev-tips/Katex/Seb2.en.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/Katex/Seb2.en.mdx
rename to app/docs/community/dev-tips/Katex/Seb2.en.mdx
diff --git a/app/docs/CommunityShare/Geek/Katex/Seb2.mdx b/app/docs/community/dev-tips/Katex/Seb2.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/Katex/Seb2.mdx
rename to app/docs/community/dev-tips/Katex/Seb2.mdx
diff --git a/app/docs/CommunityShare/Geek/Katex/index.mdx b/app/docs/community/dev-tips/Katex/index.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/Katex/index.mdx
rename to app/docs/community/dev-tips/Katex/index.mdx
diff --git a/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx b/app/docs/community/dev-tips/cloudflare-r2-sharex-free-image-hosting.en.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.en.mdx
rename to app/docs/community/dev-tips/cloudflare-r2-sharex-free-image-hosting.en.mdx
diff --git a/app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.mdx b/app/docs/community/dev-tips/cloudflare-r2-sharex-free-image-hosting.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/cloudflare-r2-sharex-free-image-hosting.mdx
rename to app/docs/community/dev-tips/cloudflare-r2-sharex-free-image-hosting.mdx
diff --git a/app/docs/CommunityShare/Geek/git101.en.mdx b/app/docs/community/dev-tips/git101.en.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/git101.en.mdx
rename to app/docs/community/dev-tips/git101.en.mdx
diff --git a/app/docs/CommunityShare/Geek/git101.mdx b/app/docs/community/dev-tips/git101.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/git101.mdx
rename to app/docs/community/dev-tips/git101.mdx
diff --git a/app/docs/CommunityShare/Geek/index.mdx b/app/docs/community/dev-tips/index.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/index.mdx
rename to app/docs/community/dev-tips/index.mdx
diff --git a/app/docs/CommunityShare/Geek/picturecdn.en.mdx b/app/docs/community/dev-tips/picturecdn.en.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/picturecdn.en.mdx
rename to app/docs/community/dev-tips/picturecdn.en.mdx
diff --git a/app/docs/CommunityShare/Geek/picturecdn.mdx b/app/docs/community/dev-tips/picturecdn.mdx
similarity index 100%
rename from app/docs/CommunityShare/Geek/picturecdn.mdx
rename to app/docs/community/dev-tips/picturecdn.mdx
diff --git a/app/docs/CommunityShare/Geek/raspberry-guide.en.md b/app/docs/community/dev-tips/raspberry-guide.en.md
similarity index 100%
rename from app/docs/CommunityShare/Geek/raspberry-guide.en.md
rename to app/docs/community/dev-tips/raspberry-guide.en.md
diff --git a/app/docs/CommunityShare/Geek/raspberry-guide.md b/app/docs/community/dev-tips/raspberry-guide.md
similarity index 100%
rename from app/docs/CommunityShare/Geek/raspberry-guide.md
rename to app/docs/community/dev-tips/raspberry-guide.md
diff --git a/app/docs/CommunityShare/index.mdx b/app/docs/community/index.mdx
similarity index 90%
rename from app/docs/CommunityShare/index.mdx
rename to app/docs/community/index.mdx
index cbcd868c..f98de4e5 100644
--- a/app/docs/CommunityShare/index.mdx
+++ b/app/docs/community/index.mdx
@@ -12,4 +12,4 @@ import { SectionIndex } from "@/app/components/docs/SectionIndex";
> 转载文章请先联系原作者获取授权,谢谢!
-
+
diff --git a/app/docs/CommunityShare/Language/pte-intro.md b/app/docs/community/language/pte-intro.md
similarity index 100%
rename from app/docs/CommunityShare/Language/pte-intro.md
rename to app/docs/community/language/pte-intro.md
diff --git a/app/docs/CommunityShare/Life/unsw-student-benefit.md b/app/docs/community/life/unsw-student-benefit.md
similarity index 100%
rename from app/docs/CommunityShare/Life/unsw-student-benefit.md
rename to app/docs/community/life/unsw-student-benefit.md
diff --git a/app/docs/CommunityShare/MentalHealth/burnout-guide.mdx b/app/docs/community/mental-health/burnout-guide.mdx
similarity index 100%
rename from app/docs/CommunityShare/MentalHealth/burnout-guide.mdx
rename to app/docs/community/mental-health/burnout-guide.mdx
diff --git a/app/docs/CommunityShare/MentalHealth/index.mdx b/app/docs/community/mental-health/index.mdx
similarity index 100%
rename from app/docs/CommunityShare/MentalHealth/index.mdx
rename to app/docs/community/mental-health/index.mdx
diff --git a/app/docs/ai/foundation-models/world-models/leworldmodel.md b/app/docs/community/papers/leworldmodel.md
similarity index 100%
rename from app/docs/ai/foundation-models/world-models/leworldmodel.md
rename to app/docs/community/papers/leworldmodel.md
diff --git a/app/docs/ai/foundation-models/world-models/leworldmodel.zh.md b/app/docs/community/papers/leworldmodel.zh.md
similarity index 100%
rename from app/docs/ai/foundation-models/world-models/leworldmodel.zh.md
rename to app/docs/community/papers/leworldmodel.zh.md
diff --git a/app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.md b/app/docs/community/papers/prompt-repetition-improves-non-reasoning-llms.md
similarity index 100%
rename from app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.md
rename to app/docs/community/papers/prompt-repetition-improves-non-reasoning-llms.md
diff --git a/app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.zh.md b/app/docs/community/papers/prompt-repetition-improves-non-reasoning-llms.zh.md
similarity index 100%
rename from app/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms.zh.md
rename to app/docs/community/papers/prompt-repetition-improves-non-reasoning-llms.zh.md
diff --git a/app/docs/CommunityShare/Amazing-AI-Tools/index.md b/app/docs/community/tools/index.md
similarity index 100%
rename from app/docs/CommunityShare/Amazing-AI-Tools/index.md
rename to app/docs/community/tools/index.md
diff --git a/app/docs/ai/misc-tools/perplexity-comet.en.md b/app/docs/community/tools/perplexity-comet.en.md
similarity index 100%
rename from app/docs/ai/misc-tools/perplexity-comet.en.md
rename to app/docs/community/tools/perplexity-comet.en.md
diff --git a/app/docs/ai/misc-tools/perplexity-comet.md b/app/docs/community/tools/perplexity-comet.md
similarity index 100%
rename from app/docs/ai/misc-tools/perplexity-comet.md
rename to app/docs/community/tools/perplexity-comet.md
diff --git a/app/docs/ai/misc-tools/swanlab.en.mdx b/app/docs/community/tools/swanlab.en.mdx
similarity index 100%
rename from app/docs/ai/misc-tools/swanlab.en.mdx
rename to app/docs/community/tools/swanlab.en.mdx
diff --git a/app/docs/ai/misc-tools/swanlab.mdx b/app/docs/community/tools/swanlab.mdx
similarity index 100%
rename from app/docs/ai/misc-tools/swanlab.mdx
rename to app/docs/community/tools/swanlab.mdx
diff --git a/app/docs/layout.tsx b/app/docs/layout.tsx
index 88ce755e..4e50948e 100644
--- a/app/docs/layout.tsx
+++ b/app/docs/layout.tsx
@@ -163,7 +163,7 @@ function pruneEmptyFolders(root: PageTree.Root): PageTree.Root {
if (
onlyChild.type === "page" &&
- onlyChild.url.startsWith("/docs/ai/")
+ onlyChild.url.startsWith("/docs/learn/ai/")
) {
return { ...onlyChild };
}
diff --git a/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md b/app/docs/learn/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md
similarity index 100%
rename from app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md
rename to app/docs/learn/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.en.md
diff --git a/app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md b/app/docs/learn/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md
similarity index 100%
rename from app/docs/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md
rename to app/docs/learn/ai/Introduction-of-Multi-agents-system/introduction_of_multi-agents_system.md
diff --git a/app/docs/ai/MoE/MOE-intro.assets/img-20250920112106486.png b/app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106486.png
similarity index 100%
rename from app/docs/ai/MoE/MOE-intro.assets/img-20250920112106486.png
rename to app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106486.png
diff --git a/app/docs/ai/MoE/MOE-intro.assets/img-20250920112106518.png b/app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106518.png
similarity index 100%
rename from app/docs/ai/MoE/MOE-intro.assets/img-20250920112106518.png
rename to app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106518.png
diff --git a/app/docs/ai/MoE/MOE-intro.assets/img-20250920112106554.png b/app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106554.png
similarity index 100%
rename from app/docs/ai/MoE/MOE-intro.assets/img-20250920112106554.png
rename to app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106554.png
diff --git a/app/docs/ai/MoE/MOE-intro.assets/img-20250920112106588.png b/app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106588.png
similarity index 100%
rename from app/docs/ai/MoE/MOE-intro.assets/img-20250920112106588.png
rename to app/docs/learn/ai/MoE/MOE-intro.assets/img-20250920112106588.png
diff --git a/app/docs/ai/MoE/MOE-intro.en.md b/app/docs/learn/ai/MoE/MOE-intro.en.md
similarity index 100%
rename from app/docs/ai/MoE/MOE-intro.en.md
rename to app/docs/learn/ai/MoE/MOE-intro.en.md
diff --git a/app/docs/ai/MoE/MOE-intro.md b/app/docs/learn/ai/MoE/MOE-intro.md
similarity index 100%
rename from app/docs/ai/MoE/MOE-intro.md
rename to app/docs/learn/ai/MoE/MOE-intro.md
diff --git a/app/docs/ai/MoE/moe-update.en.md b/app/docs/learn/ai/MoE/moe-update.en.md
similarity index 100%
rename from app/docs/ai/MoE/moe-update.en.md
rename to app/docs/learn/ai/MoE/moe-update.en.md
diff --git a/app/docs/ai/MoE/moe-update.md b/app/docs/learn/ai/MoE/moe-update.md
similarity index 100%
rename from app/docs/ai/MoE/moe-update.md
rename to app/docs/learn/ai/MoE/moe-update.md
diff --git a/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx b/app/docs/learn/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx
similarity index 100%
rename from app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx
rename to app/docs/learn/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.en.mdx
diff --git a/app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx b/app/docs/learn/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx
similarity index 100%
rename from app/docs/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx
rename to app/docs/learn/ai/Multi-agents-system-on-Code-Translation/code-translation-intro.mdx
diff --git a/app/docs/ai/agents-todo/agent-ecosystem.en.mdx b/app/docs/learn/ai/agents-todo/agent-ecosystem.en.mdx
similarity index 100%
rename from app/docs/ai/agents-todo/agent-ecosystem.en.mdx
rename to app/docs/learn/ai/agents-todo/agent-ecosystem.en.mdx
diff --git a/app/docs/ai/agents-todo/agent-ecosystem.mdx b/app/docs/learn/ai/agents-todo/agent-ecosystem.mdx
similarity index 100%
rename from app/docs/ai/agents-todo/agent-ecosystem.mdx
rename to app/docs/learn/ai/agents-todo/agent-ecosystem.mdx
diff --git a/app/docs/ai/agents-todo/cs294-194-196/index.en.mdx b/app/docs/learn/ai/agents-todo/cs294-194-196/index.en.mdx
similarity index 100%
rename from app/docs/ai/agents-todo/cs294-194-196/index.en.mdx
rename to app/docs/learn/ai/agents-todo/cs294-194-196/index.en.mdx
diff --git a/app/docs/ai/agents-todo/cs294-194-196/index.mdx b/app/docs/learn/ai/agents-todo/cs294-194-196/index.mdx
similarity index 100%
rename from app/docs/ai/agents-todo/cs294-194-196/index.mdx
rename to app/docs/learn/ai/agents-todo/cs294-194-196/index.mdx
diff --git a/app/docs/ai/ai-math-basics/calculus-optimization/index.en.mdx b/app/docs/learn/ai/ai-math-basics/calculus-optimization/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/calculus-optimization/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/calculus-optimization/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/calculus-optimization/index.mdx b/app/docs/learn/ai/ai-math-basics/calculus-optimization/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/calculus-optimization/index.mdx
rename to app/docs/learn/ai/ai-math-basics/calculus-optimization/index.mdx
diff --git a/app/docs/ai/ai-math-basics/information-theory/index.en.mdx b/app/docs/learn/ai/ai-math-basics/information-theory/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/information-theory/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/information-theory/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/information-theory/index.mdx b/app/docs/learn/ai/ai-math-basics/information-theory/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/information-theory/index.mdx
rename to app/docs/learn/ai/ai-math-basics/information-theory/index.mdx
diff --git a/app/docs/ai/ai-math-basics/linear-algebra/index.en.mdx b/app/docs/learn/ai/ai-math-basics/linear-algebra/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/linear-algebra/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/linear-algebra/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/linear-algebra/index.mdx b/app/docs/learn/ai/ai-math-basics/linear-algebra/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/linear-algebra/index.mdx
rename to app/docs/learn/ai/ai-math-basics/linear-algebra/index.mdx
diff --git a/app/docs/ai/ai-math-basics/linear-algebra/resources/index.en.mdx b/app/docs/learn/ai/ai-math-basics/linear-algebra/resources/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/linear-algebra/resources/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/linear-algebra/resources/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/linear-algebra/resources/index.mdx b/app/docs/learn/ai/ai-math-basics/linear-algebra/resources/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/linear-algebra/resources/index.mdx
rename to app/docs/learn/ai/ai-math-basics/linear-algebra/resources/index.mdx
diff --git a/app/docs/ai/ai-math-basics/math-foundations.en.mdx b/app/docs/learn/ai/ai-math-basics/math-foundations.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/math-foundations.en.mdx
rename to app/docs/learn/ai/ai-math-basics/math-foundations.en.mdx
diff --git a/app/docs/ai/ai-math-basics/math-foundations.mdx b/app/docs/learn/ai/ai-math-basics/math-foundations.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/math-foundations.mdx
rename to app/docs/learn/ai/ai-math-basics/math-foundations.mdx
diff --git a/app/docs/ai/ai-math-basics/math_books.en.md b/app/docs/learn/ai/ai-math-basics/math_books.en.md
similarity index 100%
rename from app/docs/ai/ai-math-basics/math_books.en.md
rename to app/docs/learn/ai/ai-math-basics/math_books.en.md
diff --git a/app/docs/ai/ai-math-basics/math_books.md b/app/docs/learn/ai/ai-math-basics/math_books.md
similarity index 100%
rename from app/docs/ai/ai-math-basics/math_books.md
rename to app/docs/learn/ai/ai-math-basics/math_books.md
diff --git a/app/docs/ai/ai-math-basics/numerical-analysis/index.en.mdx b/app/docs/learn/ai/ai-math-basics/numerical-analysis/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/numerical-analysis/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/numerical-analysis/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/numerical-analysis/index.mdx b/app/docs/learn/ai/ai-math-basics/numerical-analysis/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/numerical-analysis/index.mdx
rename to app/docs/learn/ai/ai-math-basics/numerical-analysis/index.mdx
diff --git a/app/docs/ai/ai-math-basics/probability-statistics/index.en.mdx b/app/docs/learn/ai/ai-math-basics/probability-statistics/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/probability-statistics/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/probability-statistics/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/probability-statistics/index.mdx b/app/docs/learn/ai/ai-math-basics/probability-statistics/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/probability-statistics/index.mdx
rename to app/docs/learn/ai/ai-math-basics/probability-statistics/index.mdx
diff --git a/app/docs/ai/ai-math-basics/probability-statistics/resources/index.en.mdx b/app/docs/learn/ai/ai-math-basics/probability-statistics/resources/index.en.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/probability-statistics/resources/index.en.mdx
rename to app/docs/learn/ai/ai-math-basics/probability-statistics/resources/index.en.mdx
diff --git a/app/docs/ai/ai-math-basics/probability-statistics/resources/index.mdx b/app/docs/learn/ai/ai-math-basics/probability-statistics/resources/index.mdx
similarity index 100%
rename from app/docs/ai/ai-math-basics/probability-statistics/resources/index.mdx
rename to app/docs/learn/ai/ai-math-basics/probability-statistics/resources/index.mdx
diff --git a/app/docs/ai/compute-platforms/compute-platforms-handbook.en.mdx b/app/docs/learn/ai/compute-platforms/compute-platforms-handbook.en.mdx
similarity index 100%
rename from app/docs/ai/compute-platforms/compute-platforms-handbook.en.mdx
rename to app/docs/learn/ai/compute-platforms/compute-platforms-handbook.en.mdx
diff --git a/app/docs/ai/compute-platforms/compute-platforms-handbook.mdx b/app/docs/learn/ai/compute-platforms/compute-platforms-handbook.mdx
similarity index 100%
rename from app/docs/ai/compute-platforms/compute-platforms-handbook.mdx
rename to app/docs/learn/ai/compute-platforms/compute-platforms-handbook.mdx
diff --git a/app/docs/ai/compute-platforms/model-compuational-resource-demand.en.md b/app/docs/learn/ai/compute-platforms/model-compuational-resource-demand.en.md
similarity index 100%
rename from app/docs/ai/compute-platforms/model-compuational-resource-demand.en.md
rename to app/docs/learn/ai/compute-platforms/model-compuational-resource-demand.en.md
diff --git a/app/docs/ai/compute-platforms/model-compuational-resource-demand.md b/app/docs/learn/ai/compute-platforms/model-compuational-resource-demand.md
similarity index 100%
rename from app/docs/ai/compute-platforms/model-compuational-resource-demand.md
rename to app/docs/learn/ai/compute-platforms/model-compuational-resource-demand.md
diff --git a/app/docs/ai/foundation-models/datasets/index.en.mdx b/app/docs/learn/ai/foundation-models/datasets/index.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/datasets/index.en.mdx
rename to app/docs/learn/ai/foundation-models/datasets/index.en.mdx
diff --git a/app/docs/ai/foundation-models/datasets/index.mdx b/app/docs/learn/ai/foundation-models/datasets/index.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/datasets/index.mdx
rename to app/docs/learn/ai/foundation-models/datasets/index.mdx
diff --git a/app/docs/ai/foundation-models/deploy-infer/index.en.mdx b/app/docs/learn/ai/foundation-models/deploy-infer/index.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/deploy-infer/index.en.mdx
rename to app/docs/learn/ai/foundation-models/deploy-infer/index.en.mdx
diff --git a/app/docs/ai/foundation-models/deploy-infer/index.mdx b/app/docs/learn/ai/foundation-models/deploy-infer/index.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/deploy-infer/index.mdx
rename to app/docs/learn/ai/foundation-models/deploy-infer/index.mdx
diff --git a/app/docs/ai/foundation-models/evaluation/index.en.mdx b/app/docs/learn/ai/foundation-models/evaluation/index.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/evaluation/index.en.mdx
rename to app/docs/learn/ai/foundation-models/evaluation/index.en.mdx
diff --git a/app/docs/ai/foundation-models/evaluation/index.mdx b/app/docs/learn/ai/foundation-models/evaluation/index.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/evaluation/index.mdx
rename to app/docs/learn/ai/foundation-models/evaluation/index.mdx
diff --git a/app/docs/ai/foundation-models/finetune/index.en.mdx b/app/docs/learn/ai/foundation-models/finetune/index.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/finetune/index.en.mdx
rename to app/docs/learn/ai/foundation-models/finetune/index.en.mdx
diff --git a/app/docs/ai/foundation-models/finetune/index.mdx b/app/docs/learn/ai/foundation-models/finetune/index.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/finetune/index.mdx
rename to app/docs/learn/ai/foundation-models/finetune/index.mdx
diff --git a/app/docs/ai/foundation-models/foundation-models-lifecycle.en.mdx b/app/docs/learn/ai/foundation-models/foundation-models-lifecycle.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/foundation-models-lifecycle.en.mdx
rename to app/docs/learn/ai/foundation-models/foundation-models-lifecycle.en.mdx
diff --git a/app/docs/ai/foundation-models/foundation-models-lifecycle.mdx b/app/docs/learn/ai/foundation-models/foundation-models-lifecycle.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/foundation-models-lifecycle.mdx
rename to app/docs/learn/ai/foundation-models/foundation-models-lifecycle.mdx
diff --git a/app/docs/ai/foundation-models/qkv-interview/index.en.mdx b/app/docs/learn/ai/foundation-models/qkv-interview/index.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/qkv-interview/index.en.mdx
rename to app/docs/learn/ai/foundation-models/qkv-interview/index.en.mdx
diff --git a/app/docs/ai/foundation-models/qkv-interview/index.mdx b/app/docs/learn/ai/foundation-models/qkv-interview/index.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/qkv-interview/index.mdx
rename to app/docs/learn/ai/foundation-models/qkv-interview/index.mdx
diff --git a/app/docs/ai/foundation-models/rag/context-engineering-intro.en.md b/app/docs/learn/ai/foundation-models/rag/context-engineering-intro.en.md
similarity index 100%
rename from app/docs/ai/foundation-models/rag/context-engineering-intro.en.md
rename to app/docs/learn/ai/foundation-models/rag/context-engineering-intro.en.md
diff --git a/app/docs/ai/foundation-models/rag/context-engineering-intro.md b/app/docs/learn/ai/foundation-models/rag/context-engineering-intro.md
similarity index 100%
rename from app/docs/ai/foundation-models/rag/context-engineering-intro.md
rename to app/docs/learn/ai/foundation-models/rag/context-engineering-intro.md
diff --git a/app/docs/ai/foundation-models/rag/embedding.en.mdx b/app/docs/learn/ai/foundation-models/rag/embedding.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/rag/embedding.en.mdx
rename to app/docs/learn/ai/foundation-models/rag/embedding.en.mdx
diff --git a/app/docs/ai/foundation-models/rag/embedding.mdx b/app/docs/learn/ai/foundation-models/rag/embedding.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/rag/embedding.mdx
rename to app/docs/learn/ai/foundation-models/rag/embedding.mdx
diff --git a/app/docs/ai/foundation-models/rag/rag.en.mdx b/app/docs/learn/ai/foundation-models/rag/rag.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/rag/rag.en.mdx
rename to app/docs/learn/ai/foundation-models/rag/rag.en.mdx
diff --git a/app/docs/ai/foundation-models/rag/rag.mdx b/app/docs/learn/ai/foundation-models/rag/rag.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/rag/rag.mdx
rename to app/docs/learn/ai/foundation-models/rag/rag.mdx
diff --git a/app/docs/ai/foundation-models/training/index.en.mdx b/app/docs/learn/ai/foundation-models/training/index.en.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/training/index.en.mdx
rename to app/docs/learn/ai/foundation-models/training/index.en.mdx
diff --git a/app/docs/ai/foundation-models/training/index.mdx b/app/docs/learn/ai/foundation-models/training/index.mdx
similarity index 100%
rename from app/docs/ai/foundation-models/training/index.mdx
rename to app/docs/learn/ai/foundation-models/training/index.mdx
diff --git a/app/docs/ai/generative-todo/generative-models-plan.en.mdx b/app/docs/learn/ai/generative-todo/generative-models-plan.en.mdx
similarity index 100%
rename from app/docs/ai/generative-todo/generative-models-plan.en.mdx
rename to app/docs/learn/ai/generative-todo/generative-models-plan.en.mdx
diff --git a/app/docs/ai/generative-todo/generative-models-plan.mdx b/app/docs/learn/ai/generative-todo/generative-models-plan.mdx
similarity index 100%
rename from app/docs/ai/generative-todo/generative-models-plan.mdx
rename to app/docs/learn/ai/generative-todo/generative-models-plan.mdx
diff --git a/app/docs/ai/index.mdx b/app/docs/learn/ai/index.mdx
similarity index 100%
rename from app/docs/ai/index.mdx
rename to app/docs/learn/ai/index.mdx
diff --git a/app/docs/ai/llm-basics/courses/index.en.mdx b/app/docs/learn/ai/llm-basics/courses/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/courses/index.en.mdx
rename to app/docs/learn/ai/llm-basics/courses/index.en.mdx
diff --git a/app/docs/ai/llm-basics/courses/index.mdx b/app/docs/learn/ai/llm-basics/courses/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/courses/index.mdx
rename to app/docs/learn/ai/llm-basics/courses/index.mdx
diff --git a/app/docs/ai/llm-basics/cuda/index.en.mdx b/app/docs/learn/ai/llm-basics/cuda/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/cuda/index.en.mdx
rename to app/docs/learn/ai/llm-basics/cuda/index.en.mdx
diff --git a/app/docs/ai/llm-basics/cuda/index.mdx b/app/docs/learn/ai/llm-basics/cuda/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/cuda/index.mdx
rename to app/docs/learn/ai/llm-basics/cuda/index.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/d2l/index.en.mdx b/app/docs/learn/ai/llm-basics/deep-learning/d2l/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/d2l/index.en.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/d2l/index.en.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/d2l/index.mdx b/app/docs/learn/ai/llm-basics/deep-learning/d2l/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/d2l/index.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/d2l/index.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/index.en.mdx b/app/docs/learn/ai/llm-basics/deep-learning/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/index.en.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/index.en.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/index.mdx b/app/docs/learn/ai/llm-basics/deep-learning/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/index.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/index.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/misc/index.en.mdx b/app/docs/learn/ai/llm-basics/deep-learning/misc/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/misc/index.en.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/misc/index.en.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/misc/index.mdx b/app/docs/learn/ai/llm-basics/deep-learning/misc/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/misc/index.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/misc/index.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/nlp/index.en.mdx b/app/docs/learn/ai/llm-basics/deep-learning/nlp/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/nlp/index.en.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/nlp/index.en.mdx
diff --git a/app/docs/ai/llm-basics/deep-learning/nlp/index.mdx b/app/docs/learn/ai/llm-basics/deep-learning/nlp/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/deep-learning/nlp/index.mdx
rename to app/docs/learn/ai/llm-basics/deep-learning/nlp/index.mdx
diff --git a/app/docs/ai/llm-basics/embeddings/index.en.mdx b/app/docs/learn/ai/llm-basics/embeddings/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/embeddings/index.en.mdx
rename to app/docs/learn/ai/llm-basics/embeddings/index.en.mdx
diff --git a/app/docs/ai/llm-basics/embeddings/index.mdx b/app/docs/learn/ai/llm-basics/embeddings/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/embeddings/index.mdx
rename to app/docs/learn/ai/llm-basics/embeddings/index.mdx
diff --git a/app/docs/ai/llm-basics/embeddings/qwen3-embedding/index.en.mdx b/app/docs/learn/ai/llm-basics/embeddings/qwen3-embedding/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/embeddings/qwen3-embedding/index.en.mdx
rename to app/docs/learn/ai/llm-basics/embeddings/qwen3-embedding/index.en.mdx
diff --git a/app/docs/ai/llm-basics/embeddings/qwen3-embedding/index.mdx b/app/docs/learn/ai/llm-basics/embeddings/qwen3-embedding/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/embeddings/qwen3-embedding/index.mdx
rename to app/docs/learn/ai/llm-basics/embeddings/qwen3-embedding/index.mdx
diff --git a/app/docs/ai/llm-basics/llm-foundations.en.mdx b/app/docs/learn/ai/llm-basics/llm-foundations.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/llm-foundations.en.mdx
rename to app/docs/learn/ai/llm-basics/llm-foundations.en.mdx
diff --git a/app/docs/ai/llm-basics/llm-foundations.mdx b/app/docs/learn/ai/llm-basics/llm-foundations.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/llm-foundations.mdx
rename to app/docs/learn/ai/llm-basics/llm-foundations.mdx
diff --git a/app/docs/ai/llm-basics/pytorch/index.assets/word-img-01.png b/app/docs/learn/ai/llm-basics/pytorch/index.assets/word-img-01.png
similarity index 100%
rename from app/docs/ai/llm-basics/pytorch/index.assets/word-img-01.png
rename to app/docs/learn/ai/llm-basics/pytorch/index.assets/word-img-01.png
diff --git a/app/docs/ai/llm-basics/pytorch/index.assets/word-img-02.png b/app/docs/learn/ai/llm-basics/pytorch/index.assets/word-img-02.png
similarity index 100%
rename from app/docs/ai/llm-basics/pytorch/index.assets/word-img-02.png
rename to app/docs/learn/ai/llm-basics/pytorch/index.assets/word-img-02.png
diff --git a/app/docs/ai/llm-basics/pytorch/index.en.mdx b/app/docs/learn/ai/llm-basics/pytorch/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/pytorch/index.en.mdx
rename to app/docs/learn/ai/llm-basics/pytorch/index.en.mdx
diff --git a/app/docs/ai/llm-basics/pytorch/index.mdx b/app/docs/learn/ai/llm-basics/pytorch/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/pytorch/index.mdx
rename to app/docs/learn/ai/llm-basics/pytorch/index.mdx
diff --git a/app/docs/ai/llm-basics/transformer/ai-by-hand/index.en.mdx b/app/docs/learn/ai/llm-basics/transformer/ai-by-hand/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/transformer/ai-by-hand/index.en.mdx
rename to app/docs/learn/ai/llm-basics/transformer/ai-by-hand/index.en.mdx
diff --git a/app/docs/ai/llm-basics/transformer/ai-by-hand/index.mdx b/app/docs/learn/ai/llm-basics/transformer/ai-by-hand/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/transformer/ai-by-hand/index.mdx
rename to app/docs/learn/ai/llm-basics/transformer/ai-by-hand/index.mdx
diff --git a/app/docs/ai/llm-basics/transformer/index.en.mdx b/app/docs/learn/ai/llm-basics/transformer/index.en.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/transformer/index.en.mdx
rename to app/docs/learn/ai/llm-basics/transformer/index.en.mdx
diff --git a/app/docs/ai/llm-basics/transformer/index.mdx b/app/docs/learn/ai/llm-basics/transformer/index.mdx
similarity index 100%
rename from app/docs/ai/llm-basics/transformer/index.mdx
rename to app/docs/learn/ai/llm-basics/transformer/index.mdx
diff --git a/app/docs/ai/methodology/research-methodology.en.mdx b/app/docs/learn/ai/methodology/research-methodology.en.mdx
similarity index 100%
rename from app/docs/ai/methodology/research-methodology.en.mdx
rename to app/docs/learn/ai/methodology/research-methodology.en.mdx
diff --git a/app/docs/ai/methodology/research-methodology.mdx b/app/docs/learn/ai/methodology/research-methodology.mdx
similarity index 100%
rename from app/docs/ai/methodology/research-methodology.mdx
rename to app/docs/learn/ai/methodology/research-methodology.mdx
diff --git a/app/docs/ai/misc-tools/learning-toolkit.en.mdx b/app/docs/learn/ai/misc-tools/learning-toolkit.en.mdx
similarity index 100%
rename from app/docs/ai/misc-tools/learning-toolkit.en.mdx
rename to app/docs/learn/ai/misc-tools/learning-toolkit.en.mdx
diff --git a/app/docs/ai/misc-tools/learning-toolkit.mdx b/app/docs/learn/ai/misc-tools/learning-toolkit.mdx
similarity index 100%
rename from app/docs/ai/misc-tools/learning-toolkit.mdx
rename to app/docs/learn/ai/misc-tools/learning-toolkit.mdx
diff --git a/app/docs/ai/model-datasets-platforms/platform-and-datasets.en.mdx b/app/docs/learn/ai/model-datasets-platforms/platform-and-datasets.en.mdx
similarity index 100%
rename from app/docs/ai/model-datasets-platforms/platform-and-datasets.en.mdx
rename to app/docs/learn/ai/model-datasets-platforms/platform-and-datasets.en.mdx
diff --git a/app/docs/ai/model-datasets-platforms/platform-and-datasets.mdx b/app/docs/learn/ai/model-datasets-platforms/platform-and-datasets.mdx
similarity index 100%
rename from app/docs/ai/model-datasets-platforms/platform-and-datasets.mdx
rename to app/docs/learn/ai/model-datasets-platforms/platform-and-datasets.mdx
diff --git a/app/docs/ai/multimodal/RQVAE/index.assets/2.png b/app/docs/learn/ai/multimodal/RQVAE/index.assets/2.png
similarity index 100%
rename from app/docs/ai/multimodal/RQVAE/index.assets/2.png
rename to app/docs/learn/ai/multimodal/RQVAE/index.assets/2.png
diff --git a/app/docs/ai/multimodal/RQVAE/index.en.mdx b/app/docs/learn/ai/multimodal/RQVAE/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/RQVAE/index.en.mdx
rename to app/docs/learn/ai/multimodal/RQVAE/index.en.mdx
diff --git a/app/docs/ai/multimodal/RQVAE/index.mdx b/app/docs/learn/ai/multimodal/RQVAE/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/RQVAE/index.mdx
rename to app/docs/learn/ai/multimodal/RQVAE/index.mdx
diff --git a/app/docs/ai/multimodal/VAE/index.assets/v2-61521005c5a8213b60bf362f9c25c22f_1440w.png b/app/docs/learn/ai/multimodal/VAE/index.assets/v2-61521005c5a8213b60bf362f9c25c22f_1440w.png
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.assets/v2-61521005c5a8213b60bf362f9c25c22f_1440w.png
rename to app/docs/learn/ai/multimodal/VAE/index.assets/v2-61521005c5a8213b60bf362f9c25c22f_1440w.png
diff --git a/app/docs/ai/multimodal/VAE/index.assets/v2-643d5ffb4aa480808bc9c82a55450a80_r.png b/app/docs/learn/ai/multimodal/VAE/index.assets/v2-643d5ffb4aa480808bc9c82a55450a80_r.png
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.assets/v2-643d5ffb4aa480808bc9c82a55450a80_r.png
rename to app/docs/learn/ai/multimodal/VAE/index.assets/v2-643d5ffb4aa480808bc9c82a55450a80_r.png
diff --git a/app/docs/ai/multimodal/VAE/index.assets/v2-92a9061e7079089b75c37650943c6f25_1440w.png b/app/docs/learn/ai/multimodal/VAE/index.assets/v2-92a9061e7079089b75c37650943c6f25_1440w.png
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.assets/v2-92a9061e7079089b75c37650943c6f25_1440w.png
rename to app/docs/learn/ai/multimodal/VAE/index.assets/v2-92a9061e7079089b75c37650943c6f25_1440w.png
diff --git a/app/docs/ai/multimodal/VAE/index.assets/v2-97e09bd511a1fb0c3240fa717ce235d2_1440w.png b/app/docs/learn/ai/multimodal/VAE/index.assets/v2-97e09bd511a1fb0c3240fa717ce235d2_1440w.png
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.assets/v2-97e09bd511a1fb0c3240fa717ce235d2_1440w.png
rename to app/docs/learn/ai/multimodal/VAE/index.assets/v2-97e09bd511a1fb0c3240fa717ce235d2_1440w.png
diff --git a/app/docs/ai/multimodal/VAE/index.assets/v2-dda0855d2d3e00e786956a827b1c5f26_1440w.png b/app/docs/learn/ai/multimodal/VAE/index.assets/v2-dda0855d2d3e00e786956a827b1c5f26_1440w.png
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.assets/v2-dda0855d2d3e00e786956a827b1c5f26_1440w.png
rename to app/docs/learn/ai/multimodal/VAE/index.assets/v2-dda0855d2d3e00e786956a827b1c5f26_1440w.png
diff --git a/app/docs/ai/multimodal/VAE/index.assets/v2-df06f2d1471615dae76b1e09488091b5_r.png b/app/docs/learn/ai/multimodal/VAE/index.assets/v2-df06f2d1471615dae76b1e09488091b5_r.png
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.assets/v2-df06f2d1471615dae76b1e09488091b5_r.png
rename to app/docs/learn/ai/multimodal/VAE/index.assets/v2-df06f2d1471615dae76b1e09488091b5_r.png
diff --git a/app/docs/ai/multimodal/VAE/index.en.mdx b/app/docs/learn/ai/multimodal/VAE/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.en.mdx
rename to app/docs/learn/ai/multimodal/VAE/index.en.mdx
diff --git a/app/docs/ai/multimodal/VAE/index.mdx b/app/docs/learn/ai/multimodal/VAE/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/VAE/index.mdx
rename to app/docs/learn/ai/multimodal/VAE/index.mdx
diff --git a/app/docs/ai/multimodal/VQVAE/index.assets/1.png b/app/docs/learn/ai/multimodal/VQVAE/index.assets/1.png
similarity index 100%
rename from app/docs/ai/multimodal/VQVAE/index.assets/1.png
rename to app/docs/learn/ai/multimodal/VQVAE/index.assets/1.png
diff --git a/app/docs/ai/multimodal/VQVAE/index.en.mdx b/app/docs/learn/ai/multimodal/VQVAE/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/VQVAE/index.en.mdx
rename to app/docs/learn/ai/multimodal/VQVAE/index.en.mdx
diff --git a/app/docs/ai/multimodal/VQVAE/index.mdx b/app/docs/learn/ai/multimodal/VQVAE/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/VQVAE/index.mdx
rename to app/docs/learn/ai/multimodal/VQVAE/index.mdx
diff --git a/app/docs/ai/multimodal/courses/index.en.mdx b/app/docs/learn/ai/multimodal/courses/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/courses/index.en.mdx
rename to app/docs/learn/ai/multimodal/courses/index.en.mdx
diff --git a/app/docs/ai/multimodal/courses/index.mdx b/app/docs/learn/ai/multimodal/courses/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/courses/index.mdx
rename to app/docs/learn/ai/multimodal/courses/index.mdx
diff --git a/app/docs/ai/multimodal/llava/index.assets/word-img-03.png b/app/docs/learn/ai/multimodal/llava/index.assets/word-img-03.png
similarity index 100%
rename from app/docs/ai/multimodal/llava/index.assets/word-img-03.png
rename to app/docs/learn/ai/multimodal/llava/index.assets/word-img-03.png
diff --git a/app/docs/ai/multimodal/llava/index.assets/word-img-04.png b/app/docs/learn/ai/multimodal/llava/index.assets/word-img-04.png
similarity index 100%
rename from app/docs/ai/multimodal/llava/index.assets/word-img-04.png
rename to app/docs/learn/ai/multimodal/llava/index.assets/word-img-04.png
diff --git a/app/docs/ai/multimodal/llava/index.assets/word-img-05.png b/app/docs/learn/ai/multimodal/llava/index.assets/word-img-05.png
similarity index 100%
rename from app/docs/ai/multimodal/llava/index.assets/word-img-05.png
rename to app/docs/learn/ai/multimodal/llava/index.assets/word-img-05.png
diff --git a/app/docs/ai/multimodal/llava/index.en.mdx b/app/docs/learn/ai/multimodal/llava/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/llava/index.en.mdx
rename to app/docs/learn/ai/multimodal/llava/index.en.mdx
diff --git a/app/docs/ai/multimodal/llava/index.mdx b/app/docs/learn/ai/multimodal/llava/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/llava/index.mdx
rename to app/docs/learn/ai/multimodal/llava/index.mdx
diff --git a/app/docs/ai/multimodal/mllm/index.en.mdx b/app/docs/learn/ai/multimodal/mllm/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/mllm/index.en.mdx
rename to app/docs/learn/ai/multimodal/mllm/index.en.mdx
diff --git a/app/docs/ai/multimodal/mllm/index.mdx b/app/docs/learn/ai/multimodal/mllm/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/mllm/index.mdx
rename to app/docs/learn/ai/multimodal/mllm/index.mdx
diff --git a/app/docs/ai/multimodal/multimodal-overview.en.mdx b/app/docs/learn/ai/multimodal/multimodal-overview.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/multimodal-overview.en.mdx
rename to app/docs/learn/ai/multimodal/multimodal-overview.en.mdx
diff --git a/app/docs/ai/multimodal/multimodal-overview.mdx b/app/docs/learn/ai/multimodal/multimodal-overview.mdx
similarity index 100%
rename from app/docs/ai/multimodal/multimodal-overview.mdx
rename to app/docs/learn/ai/multimodal/multimodal-overview.mdx
diff --git a/app/docs/ai/multimodal/qwenvl/index.en.mdx b/app/docs/learn/ai/multimodal/qwenvl/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/qwenvl/index.en.mdx
rename to app/docs/learn/ai/multimodal/qwenvl/index.en.mdx
diff --git a/app/docs/ai/multimodal/qwenvl/index.mdx b/app/docs/learn/ai/multimodal/qwenvl/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/qwenvl/index.mdx
rename to app/docs/learn/ai/multimodal/qwenvl/index.mdx
diff --git a/app/docs/ai/multimodal/video-mm-todo/index.en.mdx b/app/docs/learn/ai/multimodal/video-mm-todo/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/video-mm-todo/index.en.mdx
rename to app/docs/learn/ai/multimodal/video-mm-todo/index.en.mdx
diff --git a/app/docs/ai/multimodal/video-mm-todo/index.mdx b/app/docs/learn/ai/multimodal/video-mm-todo/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/video-mm-todo/index.mdx
rename to app/docs/learn/ai/multimodal/video-mm-todo/index.mdx
diff --git a/app/docs/ai/multimodal/vit/index.en.mdx b/app/docs/learn/ai/multimodal/vit/index.en.mdx
similarity index 100%
rename from app/docs/ai/multimodal/vit/index.en.mdx
rename to app/docs/learn/ai/multimodal/vit/index.en.mdx
diff --git a/app/docs/ai/multimodal/vit/index.mdx b/app/docs/learn/ai/multimodal/vit/index.mdx
similarity index 100%
rename from app/docs/ai/multimodal/vit/index.mdx
rename to app/docs/learn/ai/multimodal/vit/index.mdx
diff --git a/app/docs/ai/recommender-systems/recommender-roadmap.en.mdx b/app/docs/learn/ai/recommender-systems/recommender-roadmap.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/recommender-roadmap.en.mdx
rename to app/docs/learn/ai/recommender-systems/recommender-roadmap.en.mdx
diff --git a/app/docs/ai/recommender-systems/recommender-roadmap.mdx b/app/docs/learn/ai/recommender-systems/recommender-roadmap.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/recommender-roadmap.mdx
rename to app/docs/learn/ai/recommender-systems/recommender-roadmap.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_crossing.en.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_crossing.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_crossing.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_crossing.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_crossing.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-1-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-1-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-1-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-1-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-1-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-1-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-1-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-1-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-2-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-2-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-2-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-2-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-2-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-2-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-2-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-2-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-2-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-2-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-2-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-2-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-4-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-4-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-4-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-4-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-4-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-4-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-4-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-4-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-4-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-4-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-4-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-4-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-5-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-5-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-5-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-5-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/3-6-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/3-6-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-1-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-1-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-1-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-1-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-6.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-6.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-2-6.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-2-6.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-3-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-3-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-3-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-3-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-3-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-3-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-3-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-3-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-6.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-6.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-6.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-6.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-7.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-7.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/4-4-7.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/4-4-7.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-1-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-1-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-1-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-1-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-1-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-1-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-1-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-1-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-2-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-2-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-2-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-2-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-2-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-2-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-2-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-2-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-3-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-3-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/5-3-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/5-3-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-1-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-1-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-2-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-2-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-2-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-2-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-2-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-2-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-2-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-2-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-4-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-4-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-5-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-5-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/6-5-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/6-5-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-3-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-3-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-3-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-3-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-3-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-3-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-3-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-3-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-3-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-3-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-3-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-3-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-4-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-4-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-5-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-5-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-5-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-5-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-5-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-5-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-5-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-5-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/7-6-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/7-6-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-2-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-2-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-2-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-2-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/images/8-3-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/images/8-3-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-6.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-6.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-6.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-6.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-7.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-7.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-7.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-7.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-8.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-8.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-8.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-10-8.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-12-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-4-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-4-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-4-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-4-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-5-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-5.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-5.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-5.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-5.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-6.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-6.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-6.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-6-6.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-7-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-8-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-1.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-1.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-1.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-1.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-2.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-2.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-2.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-2.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-3.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-3.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-3.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-3.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-4.png b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-4.png
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-4.png
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.assets/2-9-4.png
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.en.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note/wangshusen_recommend_note_retrieval.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_coldstart.en.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_coldstart.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_improvement.en.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_improvement.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rank.en.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rank.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_rank.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rank.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rerank.en.mdx
diff --git a/app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx b/app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx
similarity index 100%
rename from app/docs/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx
rename to app/docs/learn/ai/recommender-systems/wangshusen_recommend_note_rerank.mdx
diff --git a/app/docs/ai/reinforcement-learning/ppo.md b/app/docs/learn/ai/reinforcement-learning/ppo.md
similarity index 100%
rename from app/docs/ai/reinforcement-learning/ppo.md
rename to app/docs/learn/ai/reinforcement-learning/ppo.md
diff --git a/app/docs/ai/reinforcement-learning/reinforcement-learning-overview.en.mdx b/app/docs/learn/ai/reinforcement-learning/reinforcement-learning-overview.en.mdx
similarity index 100%
rename from app/docs/ai/reinforcement-learning/reinforcement-learning-overview.en.mdx
rename to app/docs/learn/ai/reinforcement-learning/reinforcement-learning-overview.en.mdx
diff --git a/app/docs/ai/reinforcement-learning/reinforcement-learning-overview.mdx b/app/docs/learn/ai/reinforcement-learning/reinforcement-learning-overview.mdx
similarity index 100%
rename from app/docs/ai/reinforcement-learning/reinforcement-learning-overview.mdx
rename to app/docs/learn/ai/reinforcement-learning/reinforcement-learning-overview.mdx
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.en.md b/app/docs/learn/cs/cpp-backend/easy-compile/1-cpp-libs.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.en.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/1-cpp-libs.en.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.md b/app/docs/learn/cs/cpp-backend/easy-compile/1-cpp-libs.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/1-cpp-libs.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.en.md b/app/docs/learn/cs/cpp-backend/easy-compile/2-base-gcc.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.en.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/2-base-gcc.en.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.md b/app/docs/learn/cs/cpp-backend/easy-compile/2-base-gcc.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/2-base-gcc.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/2-base-gcc.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/3-make.en.md b/app/docs/learn/cs/cpp-backend/easy-compile/3-make.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/3-make.en.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/3-make.en.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/3-make.md b/app/docs/learn/cs/cpp-backend/easy-compile/3-make.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/3-make.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/3-make.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/4-cmake.en.md b/app/docs/learn/cs/cpp-backend/easy-compile/4-cmake.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/4-cmake.en.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/4-cmake.en.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/4-cmake.md b/app/docs/learn/cs/cpp-backend/easy-compile/4-cmake.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/4-cmake.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/4-cmake.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.en.md b/app/docs/learn/cs/cpp-backend/easy-compile/5-vcpkg.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.en.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/5-vcpkg.en.md
diff --git a/app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.md b/app/docs/learn/cs/cpp-backend/easy-compile/5-vcpkg.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/easy-compile/5-vcpkg.md
rename to app/docs/learn/cs/cpp-backend/easy-compile/5-vcpkg.md
diff --git a/app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md b/app/docs/learn/cs/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md
rename to app/docs/learn/cs/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.en.md
diff --git a/app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md b/app/docs/learn/cs/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md
rename to app/docs/learn/cs/cpp-backend/handwritten-pool-components/1-handwritten-threadpool.md
diff --git a/app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md b/app/docs/learn/cs/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md
rename to app/docs/learn/cs/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.en.md
diff --git a/app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md b/app/docs/learn/cs/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md
similarity index 100%
rename from app/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md
rename to app/docs/learn/cs/cpp-backend/handwritten-pool-components/2-handwritten-mempool1.md
diff --git a/app/docs/computer-science/cpp-backend/mempool-simple.en.mdx b/app/docs/learn/cs/cpp-backend/mempool-simple.en.mdx
similarity index 100%
rename from app/docs/computer-science/cpp-backend/mempool-simple.en.mdx
rename to app/docs/learn/cs/cpp-backend/mempool-simple.en.mdx
diff --git a/app/docs/computer-science/cpp-backend/mempool-simple.mdx b/app/docs/learn/cs/cpp-backend/mempool-simple.mdx
similarity index 100%
rename from app/docs/computer-science/cpp-backend/mempool-simple.mdx
rename to app/docs/learn/cs/cpp-backend/mempool-simple.mdx
diff --git a/app/docs/computer-science/data-structures/array/01-static-array.mdx b/app/docs/learn/cs/data-structures/array/01-static-array.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/array/01-static-array.mdx
rename to app/docs/learn/cs/data-structures/array/01-static-array.mdx
diff --git a/app/docs/computer-science/data-structures/array/01-static-array.zh.mdx b/app/docs/learn/cs/data-structures/array/01-static-array.zh.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/array/01-static-array.zh.mdx
rename to app/docs/learn/cs/data-structures/array/01-static-array.zh.mdx
diff --git a/app/docs/computer-science/data-structures/array/02-dynamic-array.mdx b/app/docs/learn/cs/data-structures/array/02-dynamic-array.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/array/02-dynamic-array.mdx
rename to app/docs/learn/cs/data-structures/array/02-dynamic-array.mdx
diff --git a/app/docs/computer-science/data-structures/array/02-dynamic-array.zh.mdx b/app/docs/learn/cs/data-structures/array/02-dynamic-array.zh.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/array/02-dynamic-array.zh.mdx
rename to app/docs/learn/cs/data-structures/array/02-dynamic-array.zh.mdx
diff --git a/app/docs/computer-science/data-structures/array/index.mdx b/app/docs/learn/cs/data-structures/array/index.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/array/index.mdx
rename to app/docs/learn/cs/data-structures/array/index.mdx
diff --git a/app/docs/computer-science/data-structures/array/index.zh.mdx b/app/docs/learn/cs/data-structures/array/index.zh.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/array/index.zh.mdx
rename to app/docs/learn/cs/data-structures/array/index.zh.mdx
diff --git a/app/docs/computer-science/data-structures/index.mdx b/app/docs/learn/cs/data-structures/index.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/index.mdx
rename to app/docs/learn/cs/data-structures/index.mdx
diff --git a/app/docs/computer-science/data-structures/index.zh.mdx b/app/docs/learn/cs/data-structures/index.zh.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/index.zh.mdx
rename to app/docs/learn/cs/data-structures/index.zh.mdx
diff --git a/app/docs/computer-science/data-structures/linked-list/01-singly-linked-list.mdx b/app/docs/learn/cs/data-structures/linked-list/01-singly-linked-list.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/linked-list/01-singly-linked-list.mdx
rename to app/docs/learn/cs/data-structures/linked-list/01-singly-linked-list.mdx
diff --git a/app/docs/computer-science/data-structures/linked-list/01-singly-linked-list.zh.mdx b/app/docs/learn/cs/data-structures/linked-list/01-singly-linked-list.zh.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/linked-list/01-singly-linked-list.zh.mdx
rename to app/docs/learn/cs/data-structures/linked-list/01-singly-linked-list.zh.mdx
diff --git a/app/docs/computer-science/data-structures/linked-list/index.mdx b/app/docs/learn/cs/data-structures/linked-list/index.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/linked-list/index.mdx
rename to app/docs/learn/cs/data-structures/linked-list/index.mdx
diff --git a/app/docs/computer-science/data-structures/linked-list/index.zh.mdx b/app/docs/learn/cs/data-structures/linked-list/index.zh.mdx
similarity index 100%
rename from app/docs/computer-science/data-structures/linked-list/index.zh.mdx
rename to app/docs/learn/cs/data-structures/linked-list/index.zh.mdx
diff --git a/app/docs/computer-science/frontend/frontend-learning/index.en.mdx b/app/docs/learn/cs/frontend/frontend-learning/index.en.mdx
similarity index 100%
rename from app/docs/computer-science/frontend/frontend-learning/index.en.mdx
rename to app/docs/learn/cs/frontend/frontend-learning/index.en.mdx
diff --git a/app/docs/computer-science/frontend/frontend-learning/index.mdx b/app/docs/learn/cs/frontend/frontend-learning/index.mdx
similarity index 100%
rename from app/docs/computer-science/frontend/frontend-learning/index.mdx
rename to app/docs/learn/cs/frontend/frontend-learning/index.mdx
diff --git a/app/docs/computer-science/frontend/index.en.mdx b/app/docs/learn/cs/frontend/index.en.mdx
similarity index 100%
rename from app/docs/computer-science/frontend/index.en.mdx
rename to app/docs/learn/cs/frontend/index.en.mdx
diff --git a/app/docs/computer-science/frontend/index.mdx b/app/docs/learn/cs/frontend/index.mdx
similarity index 100%
rename from app/docs/computer-science/frontend/index.mdx
rename to app/docs/learn/cs/frontend/index.mdx
diff --git a/app/docs/computer-science/index.en.mdx b/app/docs/learn/cs/index.en.mdx
similarity index 100%
rename from app/docs/computer-science/index.en.mdx
rename to app/docs/learn/cs/index.en.mdx
diff --git a/app/docs/computer-science/index.mdx b/app/docs/learn/cs/index.mdx
similarity index 100%
rename from app/docs/computer-science/index.mdx
rename to app/docs/learn/cs/index.mdx
diff --git a/app/docs/learn/index.mdx b/app/docs/learn/index.mdx
new file mode 100644
index 00000000..89b33ce5
--- /dev/null
+++ b/app/docs/learn/index.mdx
@@ -0,0 +1,17 @@
+---
+title: Learn
+description: 系统学习 AI / CS / 数学三大主题,从基础打底到专业方向。
+date: "2026-04-18"
+docId: lrn0001index2026041800000001
+---
+
+import { SectionIndex } from "@/app/components/docs/SectionIndex";
+
+Involution Hell 的**学**区——按学科分类的系统学习资料。
+
+- **AI**:LLM、Agent、RL、推荐、多模态、基础数学等全栈 AI 主题
+- **CS**:数据结构、算法、系统编程、后端工程
+
+学到一半不知道方向?看看 `/community` 的前辈经验,或者 `/career` 的求职准备。
+
+
diff --git a/app/docs/page.tsx b/app/docs/page.tsx
index 794d0729..cddd1069 100644
--- a/app/docs/page.tsx
+++ b/app/docs/page.tsx
@@ -9,7 +9,7 @@ import { SectionIndex } from "@/app/components/docs/SectionIndex";
* 所以 /docs 本身 404。这个文件提供兜底 landing,复用已挂好的 DocsLayout。
*
* 内容交给 ``(root 不传 → 渲染 pageTree 顶层分区)。所有渲染
- * 逻辑和 CommunityShare / Leetcode 两处共用同一个组件,避免 drift。
+ * 逻辑和 community / career/interview-prep/leetcode 两处共用同一个组件,避免 drift。
*/
async function getLocaleFromCookie(): Promise<"zh" | "en"> {
diff --git a/app/docs/ai/projects/ai-town.en.mdx b/app/docs/projects/ai-town.en.mdx
similarity index 100%
rename from app/docs/ai/projects/ai-town.en.mdx
rename to app/docs/projects/ai-town.en.mdx
diff --git a/app/docs/ai/projects/ai-town.mdx b/app/docs/projects/ai-town.mdx
similarity index 100%
rename from app/docs/ai/projects/ai-town.mdx
rename to app/docs/projects/ai-town.mdx
diff --git a/app/docs/projects/index.mdx b/app/docs/projects/index.mdx
new file mode 100644
index 00000000..55fc36b6
--- /dev/null
+++ b/app/docs/projects/index.mdx
@@ -0,0 +1,12 @@
+---
+title: Projects
+description: Involution Hell 社区维护的开源项目文档集合。
+date: "2026-04-18"
+docId: prj0001index2026041800000001
+---
+
+import { SectionIndex } from "@/app/components/docs/SectionIndex";
+
+社区成员发起和维护的开源项目。欢迎 PR,欢迎加入。
+
+
diff --git a/app/docs/all-projects/multimodal-rl.en.mdx b/app/docs/projects/multimodal-rl.en.mdx
similarity index 100%
rename from app/docs/all-projects/multimodal-rl.en.mdx
rename to app/docs/projects/multimodal-rl.en.mdx
diff --git a/app/docs/all-projects/multimodal-rl.mdx b/app/docs/projects/multimodal-rl.mdx
similarity index 100%
rename from app/docs/all-projects/multimodal-rl.mdx
rename to app/docs/projects/multimodal-rl.mdx
diff --git a/data/event.json b/data/event.json
index 01af80ac..6ccc174f 100644
--- a/data/event.json
+++ b/data/event.json
@@ -7,21 +7,21 @@
{
"name": "Mock Interview",
"discord": "https://discord.gg/QHsjqezfC?event=1430500169299922965",
- "playback": "https://involutionhell.com/docs/jobs/event-keynote/event-takeway",
+ "playback": "https://involutionhell.com/docs/career/events/event-takeway",
"coverUrl": "./event/mockInterview.webp",
"deprecated": true
},
{
"name": "Coffee Chat",
"discord": "https://discord.com/invite/8AQZj7sa?event=1432010537402761348",
- "playback": "https://involutionhell.com/docs/jobs/event-keynote/coffee-chat",
+ "playback": "https://involutionhell.com/docs/career/events/coffee-chat",
"coverUrl": "./event/coffeeChat.webp",
"deprecated": true
},
{
"name": "Career Journey",
"discord": "https://discord.com/invite/8AQZj7sa?event=1432010537402761348",
- "playback": "https://involutionhell.com/docs/jobs/event-keynote/event-takeway",
+ "playback": "https://involutionhell.com/docs/career/events/event-takeway",
"coverUrl": "./event/careerJourney.webp",
"deprecated": true
},
diff --git a/dev_docs/umami_tracking.md b/dev_docs/umami_tracking.md
index 991db572..0d151770 100644
--- a/dev_docs/umami_tracking.md
+++ b/dev_docs/umami_tracking.md
@@ -66,8 +66,8 @@
// Sidebar Link (Fumadocs integration example)
umami.track('navigation_click', { region: 'sidebar', path: '/docs/ai' })}
+ href="/docs/learn/ai"
+ onClick={() => umami.track('navigation_click', { region: 'sidebar', path: '/docs/learn/ai' })}
>Artificial Intelligence
```
diff --git a/lib/source.ts b/lib/source.ts
index a36644f2..c6c99f87 100644
--- a/lib/source.ts
+++ b/lib/source.ts
@@ -29,7 +29,7 @@ export const source = loader({
if (
file &&
file.format === "page" &&
- path.startsWith("CommunityShare/Leetcode/")
+ path.startsWith("career/interview-prep/leetcode/")
) {
const defaultSlugs = getSlugs(path);
const newSlugs = defaultSlugs.map(convertSlugToPinyin);
diff --git a/next.config.mjs b/next.config.mjs
index fcfd531d..d23d3752 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -35,97 +35,187 @@ const config = {
* 每次再动 docs 路径都要在这里补一条。
*/
async redirects() {
+ // Option C IA 大重组:按读者意图分 learn / career / community / projects 四大顶层区。
+ // 顺序敏感——Next.js 首匹配命中,特殊文件级 + cpp_backend 老名字必须排在 wildcard 前。
return [
- // feat/docs-reorg-rag-projects(2026-04-18)RAG / AI 项目 / CommunityShare → ai/ 归并
+ // ============= 特殊路径(必须在 wildcard 之前) =============
+ // CommunityShare/RAG → learn/ai/foundation-models/rag (RAG 文件归 ai 主题)
{
source: "/docs/CommunityShare/RAG/rag",
- destination: "/docs/ai/foundation-models/rag/rag",
+ destination: "/docs/learn/ai/foundation-models/rag/rag",
statusCode: 301,
},
{
source: "/docs/CommunityShare/RAG/embedding",
- destination: "/docs/ai/foundation-models/rag/embedding",
+ destination: "/docs/learn/ai/foundation-models/rag/embedding",
statusCode: 301,
},
{
- // 文件名也规范化成 kebab-case:context_engineering_intro → context-engineering-intro
+ // 文件名顺手规范化:context_engineering_intro → context-engineering-intro
source: "/docs/CommunityShare/RAG/context_engineering_intro",
- destination: "/docs/ai/foundation-models/rag/context-engineering-intro",
- statusCode: 301,
- },
- {
- source: "/docs/all-projects/ai-town",
- destination: "/docs/ai/projects/ai-town",
+ destination:
+ "/docs/learn/ai/foundation-models/rag/context-engineering-intro",
statusCode: 301,
},
+ // CommunityShare/Geek/leworldmodel → community/papers(paper summary 归社区论文)
{
source: "/docs/CommunityShare/Geek/leworldmodel",
- destination: "/docs/ai/foundation-models/world-models/leworldmodel",
+ destination: "/docs/community/papers/leworldmodel",
statusCode: 301,
},
+ // CommunityShare/Amazing-AI-Tools 下两篇分家:tool review 归 tools,paper 归 papers
{
source: "/docs/CommunityShare/Amazing-AI-Tools/perplexity-comet",
- destination: "/docs/ai/misc-tools/perplexity-comet",
+ destination: "/docs/community/tools/perplexity-comet",
statusCode: 301,
},
{
source:
"/docs/CommunityShare/Amazing-AI-Tools/prompt-repetition-improves-non-reasoning-llms",
destination:
- "/docs/ai/foundation-models/prompt-engineering/prompt-repetition-improves-non-reasoning-llms",
+ "/docs/community/papers/prompt-repetition-improves-non-reasoning-llms",
statusCode: 301,
},
+ // PPO 强化学习主题 → learn/ai/reinforcement-learning
{
source:
"/docs/CommunityShare/Personal-Study-Notes/Reinforcement-Learning/ppo",
- destination: "/docs/ai/reinforcement-learning/ppo",
+ destination: "/docs/learn/ai/reinforcement-learning/ppo",
+ statusCode: 301,
+ },
+ // swanlab 之前 test run 已移到 ai/misc-tools/(main commit d6d0a3d),现改到 community/tools
+ {
+ source: "/docs/ai/misc-tools/swanlab",
+ destination: "/docs/community/tools/swanlab",
statusCode: 301,
},
- // feat/docs-filename-kebab-case(2026-04-18)cpp_backend 目录树规范化:下划线 / 大驼峰 → kebab-case
+ // cpp_backend 老命名(下划线 / 大驼峰)→ learn/cs/cpp-backend/ (kebab-case)
{
source: "/docs/computer-science/cpp_backend/mempool_simple",
- destination: "/docs/computer-science/cpp-backend/mempool-simple",
+ destination: "/docs/learn/cs/cpp-backend/mempool-simple",
statusCode: 301,
},
{
source:
"/docs/computer-science/cpp_backend/Handwritten_pool_components/1_Handwritten_threadpool",
destination:
- "/docs/computer-science/cpp-backend/handwritten-pool-components/1-handwritten-threadpool",
+ "/docs/learn/cs/cpp-backend/handwritten-pool-components/1-handwritten-threadpool",
statusCode: 301,
},
{
source:
"/docs/computer-science/cpp_backend/Handwritten_pool_components/2_Handwritten_mempool1",
destination:
- "/docs/computer-science/cpp-backend/handwritten-pool-components/2-handwritten-mempool1",
+ "/docs/learn/cs/cpp-backend/handwritten-pool-components/2-handwritten-mempool1",
statusCode: 301,
},
{
source: "/docs/computer-science/cpp_backend/easy_compile/1_cpp_libs",
- destination:
- "/docs/computer-science/cpp-backend/easy-compile/1-cpp-libs",
+ destination: "/docs/learn/cs/cpp-backend/easy-compile/1-cpp-libs",
statusCode: 301,
},
{
source: "/docs/computer-science/cpp_backend/easy_compile/2_base_gcc",
- destination:
- "/docs/computer-science/cpp-backend/easy-compile/2-base-gcc",
+ destination: "/docs/learn/cs/cpp-backend/easy-compile/2-base-gcc",
statusCode: 301,
},
{
source: "/docs/computer-science/cpp_backend/easy_compile/3_Make",
- destination: "/docs/computer-science/cpp-backend/easy-compile/3-make",
+ destination: "/docs/learn/cs/cpp-backend/easy-compile/3-make",
statusCode: 301,
},
{
source: "/docs/computer-science/cpp_backend/easy_compile/4_CMake",
- destination: "/docs/computer-science/cpp-backend/easy-compile/4-cmake",
+ destination: "/docs/learn/cs/cpp-backend/easy-compile/4-cmake",
statusCode: 301,
},
{
source: "/docs/computer-science/cpp_backend/easy_compile/5_vcpkg",
- destination: "/docs/computer-science/cpp-backend/easy-compile/5-vcpkg",
+ destination: "/docs/learn/cs/cpp-backend/easy-compile/5-vcpkg",
+ statusCode: 301,
+ },
+ // all-projects/ai-town → projects/ai-town (顶层化)
+ {
+ source: "/docs/all-projects/ai-town",
+ destination: "/docs/projects/ai-town",
+ statusCode: 301,
+ },
+ // all-projects 裸路径本身也要兜底,防止指 /docs/all-projects 直接 404
+ {
+ source: "/docs/all-projects",
+ destination: "/docs/projects",
+ statusCode: 301,
+ },
+ // CommunityShare / Amazing-AI-Tools index 顶层
+ {
+ source: "/docs/CommunityShare",
+ destination: "/docs/community",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/Amazing-AI-Tools",
+ destination: "/docs/community/tools",
+ statusCode: 301,
+ },
+
+ // ============= Wildcard 顶层区重命名 =============
+ // 学科主目录:ai → learn/ai, computer-science → learn/cs
+ {
+ source: "/docs/ai/:path*",
+ destination: "/docs/learn/ai/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/computer-science/:path*",
+ destination: "/docs/learn/cs/:path*",
+ statusCode: 301,
+ },
+ // 求职场景 jobs/{interview-prep,event-keynote} → career/{interview-prep,events}
+ {
+ source: "/docs/jobs/interview-prep/:path*",
+ destination: "/docs/career/interview-prep/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/jobs/event-keynote/:path*",
+ destination: "/docs/career/events/:path*",
+ statusCode: 301,
+ },
+ // 项目 all-projects → projects
+ {
+ source: "/docs/all-projects/:path*",
+ destination: "/docs/projects/:path*",
+ statusCode: 301,
+ },
+ // CommunityShare 分家:Leetcode 归求职刷题,其他按主题归 community/*
+ {
+ source: "/docs/CommunityShare/Leetcode/:path*",
+ destination: "/docs/career/interview-prep/leetcode/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/Language/:path*",
+ destination: "/docs/community/language/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/Life/:path*",
+ destination: "/docs/community/life/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/MentalHealth/:path*",
+ destination: "/docs/community/mental-health/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/Geek/:path*",
+ destination: "/docs/community/dev-tips/:path*",
+ statusCode: 301,
+ },
+ {
+ source: "/docs/CommunityShare/Amazing-AI-Tools/:path*",
+ destination: "/docs/community/tools/:path*",
statusCode: 301,
},
];