diff --git a/.github/previews/ai-inline-reading.png b/.github/previews/ai-inline-reading.png
new file mode 100644
index 0000000..f578bf7
Binary files /dev/null and b/.github/previews/ai-inline-reading.png differ
diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml
index bc2a643..aea0b2d 100644
--- a/.markdownlint-cli2.yaml
+++ b/.markdownlint-cli2.yaml
@@ -14,6 +14,7 @@ config:
- EventCenter
- EventDetails
- MaterialResourceList
+ - PdfReader
- ProgrammingLanguageNav
- XingshuCampusMap
- a
diff --git a/docs/.vitepress/theme/components/PdfReader.vue b/docs/.vitepress/theme/components/PdfReader.vue
new file mode 100644
index 0000000..7368bdf
--- /dev/null
+++ b/docs/.vitepress/theme/components/PdfReader.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
PDF · {{ pages }} 页
+
下载 PDF
+
+
+
+
+
+
diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts
index 62848f8..66af1db 100644
--- a/docs/.vitepress/theme/index.ts
+++ b/docs/.vitepress/theme/index.ts
@@ -25,6 +25,10 @@ export default {
app.component('EventDetails', EventDetails);
app.component('MaterialResourceList', MaterialResourceList);
app.component('ProgrammingLanguageNav', ProgrammingLanguageNav);
+ app.component(
+ 'PdfReader',
+ defineAsyncComponent(() => import('./components/PdfReader.vue')),
+ );
app.component(
'XingshuCampusMap',
defineAsyncComponent(() => import('./components/XingshuCampusMap.vue')),
diff --git a/docs/development/ai.md b/docs/development/ai.md
index dd2f3da..0b67c22 100644
--- a/docs/development/ai.md
+++ b/docs/development/ai.md
@@ -37,9 +37,13 @@ sources:
介绍 Transformer、代码生成、Agent 与 Harness 的技术背景。
-[在线阅读(PDF,12 页)](/development/vibe-coding-prologue.pdf)
-
-下载 PDF
+
## Vibe Coding 介绍 · 装上你的第一个Agent
@@ -47,6 +51,9 @@ sources:
以 Windows 为主,补充 macOS 与 Linux 的安装入口。资料核对日期:2026 年 10 月 17 日。
-[在线阅读(PDF,24 页)](/development/vibe-coding-first-agent.pdf)
-
-下载 PDF
+