@jet-w/astro-blog 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/chunk-FXPGR372.js +0 -0
  2. package/dist/chunk-GYLSY3OJ.js +173 -0
  3. package/dist/config/index.d.ts +166 -0
  4. package/dist/config/index.js +38 -0
  5. package/dist/index.d.ts +34 -0
  6. package/dist/index.js +59 -0
  7. package/dist/types/index.d.ts +75 -0
  8. package/dist/types/index.js +1 -0
  9. package/package.json +84 -0
  10. package/src/components/EChartsCard.vue +118 -0
  11. package/src/components/Mermaid.vue +73 -0
  12. package/src/components/about/ContentCard.astro +27 -0
  13. package/src/components/about/IconCard.astro +77 -0
  14. package/src/components/about/SocialLinks.astro +54 -0
  15. package/src/components/about/TagCard.astro +65 -0
  16. package/src/components/about/TagGroup.astro +33 -0
  17. package/src/components/about/TimelineCard.astro +52 -0
  18. package/src/components/blog/FloatingToc.vue +198 -0
  19. package/src/components/blog/Hero.astro +147 -0
  20. package/src/components/blog/NavigationTabs.vue +245 -0
  21. package/src/components/blog/PostCard.astro +161 -0
  22. package/src/components/blog/PostNavigation.astro +106 -0
  23. package/src/components/blog/RelatedPosts.astro +175 -0
  24. package/src/components/blog/TableOfContents.astro +153 -0
  25. package/src/components/blog/TagCloud.astro +91 -0
  26. package/src/components/home/FeaturedPostsSection.astro +54 -0
  27. package/src/components/home/QuickNavSection.astro +81 -0
  28. package/src/components/home/RecentPostsSection.astro +52 -0
  29. package/src/components/home/StatsSection.astro +44 -0
  30. package/src/components/layout/Footer.astro +103 -0
  31. package/src/components/layout/Header.astro +68 -0
  32. package/src/components/layout/Sidebar.astro +594 -0
  33. package/src/components/media/Bilibili.astro +114 -0
  34. package/src/components/media/Slides.astro +313 -0
  35. package/src/components/media/Video.astro +111 -0
  36. package/src/components/media/VideoPlayer.astro +89 -0
  37. package/src/components/media/YouTube.astro +92 -0
  38. package/src/components/pte/StudyCalendar.vue +1348 -0
  39. package/src/components/ui/Icon.astro +187 -0
  40. package/src/components/ui/MobileMenu.vue +201 -0
  41. package/src/components/ui/Pagination.astro +143 -0
  42. package/src/components/ui/SearchBox.vue +179 -0
  43. package/src/components/ui/SearchInterface.vue +409 -0
  44. package/src/components/ui/SidebarToggle.vue +57 -0
  45. package/src/components/ui/ThemeToggle.vue +90 -0
  46. package/src/layouts/AboutLayout.astro +18 -0
  47. package/src/layouts/BaseLayout.astro +362 -0
  48. package/src/layouts/PageLayout.astro +217 -0
  49. package/src/layouts/SlidesLayout.astro +320 -0
  50. package/src/plugins/rehype-clean-containers.mjs +24 -0
  51. package/src/plugins/rehype-relative-links.mjs +43 -0
  52. package/src/plugins/rehype-tabs.mjs +116 -0
  53. package/src/plugins/remark-containers.mjs +407 -0
  54. package/src/plugins/remark-mermaid.mjs +46 -0
  55. package/src/styles/global.css +870 -0
  56. package/src/styles/slides.css +220 -0
  57. package/src/utils/sidebar.ts +492 -0
  58. package/templates/default/astro.config.mjs +51 -0
  59. package/templates/default/content/pages/about.mdx +93 -0
  60. package/templates/default/content/pages/index.mdx +20 -0
  61. package/templates/default/content/posts/blog_docs/01-quick-start.md +162 -0
  62. package/templates/default/content/posts/blog_docs/02-frontmatter.md +277 -0
  63. package/templates/default/content/posts/blog_docs/03-markdown-basic.md +350 -0
  64. package/templates/default/content/posts/blog_docs/04-containers.md +331 -0
  65. package/templates/default/content/posts/blog_docs/05-code-blocks.md +388 -0
  66. package/templates/default/content/posts/blog_docs/06-mermaid.md +431 -0
  67. package/templates/default/content/posts/blog_docs/07-video.md +243 -0
  68. package/templates/default/content/posts/blog_docs/08-latex.md +382 -0
  69. package/templates/default/content/posts/blog_docs/09-icons.md +326 -0
  70. package/templates/default/content/posts/blog_docs/10-sidebar.md +445 -0
  71. package/templates/default/content/posts/blog_docs/11-config.md +334 -0
  72. package/templates/default/content/posts/blog_docs/12-slides.mdx +552 -0
  73. package/templates/default/content/posts/blog_docs/README.md +151 -0
  74. package/templates/default/content/slides/demo.md +146 -0
  75. package/templates/default/content/slides/docs/basic-demo.md +35 -0
  76. package/templates/default/content/slides/docs/code-demo.md +62 -0
  77. package/templates/default/content/slides/docs/echarts-demo.md +139 -0
  78. package/templates/default/content/slides/docs/fragment-demo.md +35 -0
  79. package/templates/default/content/slides/docs/math-demo.md +48 -0
  80. package/templates/default/content/slides/docs/mermaid-demo.md +105 -0
  81. package/templates/default/content/slides/docs/theme-demo.md +38 -0
  82. package/templates/default/content/slides/docs/vertical-demo.md +50 -0
  83. package/templates/default/package.json +31 -0
  84. package/templates/default/public/favicon-bak.svg +4 -0
  85. package/templates/default/public/images/avatar.jpg +0 -0
  86. package/templates/default/public/images/avatar.svg +142 -0
  87. package/templates/default/public/js/mermaid-container.js +402 -0
  88. package/templates/default/public/js/mermaid-init.js +131 -0
  89. package/templates/default/public/js/mermaid-render.js +98 -0
  90. package/templates/default/public/js/mermaid-simple.js +95 -0
  91. package/templates/default/public/js/tabs-init.js +86 -0
  92. package/templates/default/public/media/individual_portfolio/INDIVIDUAL PORTFOLIO.png +0 -0
  93. package/templates/default/public/slides/plugin/highlight/highlight.js +5 -0
  94. package/templates/default/public/slides/plugin/highlight/monokai.css +71 -0
  95. package/templates/default/public/slides/plugin/markdown/markdown.js +7 -0
  96. package/templates/default/public/slides/plugin/math/math.js +1 -0
  97. package/templates/default/public/slides/plugin/notes/notes.js +1 -0
  98. package/templates/default/public/slides/reveal.css +9 -0
  99. package/templates/default/public/slides/reveal.js +9 -0
  100. package/templates/default/public/slides/theme/beige.css +366 -0
  101. package/templates/default/public/slides/theme/black-contrast.css +362 -0
  102. package/templates/default/public/slides/theme/black.css +359 -0
  103. package/templates/default/public/slides/theme/blood.css +392 -0
  104. package/templates/default/public/slides/theme/dracula.css +385 -0
  105. package/templates/default/public/slides/theme/league.css +368 -0
  106. package/templates/default/public/slides/theme/moon.css +362 -0
  107. package/templates/default/public/slides/theme/night.css +360 -0
  108. package/templates/default/public/slides/theme/serif.css +363 -0
  109. package/templates/default/public/slides/theme/simple.css +362 -0
  110. package/templates/default/public/slides/theme/sky.css +370 -0
  111. package/templates/default/public/slides/theme/solarized.css +363 -0
  112. package/templates/default/public/slides/theme/white-contrast.css +362 -0
  113. package/templates/default/public/slides/theme/white.css +359 -0
  114. package/templates/default/public/slides/theme/white_contrast_compact_verbatim_headers.css +360 -0
  115. package/templates/default/public/test-complete.html +43 -0
  116. package/templates/default/public/test-mermaid.html +124 -0
  117. package/templates/default/src/config/index.ts +114 -0
  118. package/templates/default/src/content.config.ts +96 -0
  119. package/templates/default/src/pages/[...slug].astro +27 -0
  120. package/templates/default/src/pages/archives/[year]/[month]/page/[page].astro +176 -0
  121. package/templates/default/src/pages/archives/[year]/[month].astro +158 -0
  122. package/templates/default/src/pages/archives/index.astro +210 -0
  123. package/templates/default/src/pages/categories/[category]/page/[page].astro +218 -0
  124. package/templates/default/src/pages/categories/[category].astro +198 -0
  125. package/templates/default/src/pages/categories/index.astro +190 -0
  126. package/templates/default/src/pages/container-test.astro +79 -0
  127. package/templates/default/src/pages/mermaid-direct.html +78 -0
  128. package/templates/default/src/pages/posts/[...slug].astro +335 -0
  129. package/templates/default/src/pages/posts/index.astro +541 -0
  130. package/templates/default/src/pages/posts/page/[page].astro +146 -0
  131. package/templates/default/src/pages/rss.xml.ts +28 -0
  132. package/templates/default/src/pages/search-index.json.ts +21 -0
  133. package/templates/default/src/pages/search.astro +50 -0
  134. package/templates/default/src/pages/slides/[...slug].astro +54 -0
  135. package/templates/default/src/pages/slides/index.astro +135 -0
  136. package/templates/default/src/pages/tags/[tag]/page/[page].astro +211 -0
  137. package/templates/default/src/pages/tags/[tag].astro +191 -0
  138. package/templates/default/src/pages/tags/index.astro +167 -0
  139. package/templates/default/tailwind.config.mjs +78 -0
  140. package/templates/default/tsconfig.json +9 -0
@@ -0,0 +1,350 @@
1
+ ---
2
+ title: Markdown 基础语法
3
+ description: 标准 Markdown 语法快速参考
4
+ pubDate: 2025-12-11
5
+ author: Astro Blog
6
+ categories:
7
+ - 博客教程
8
+ tags:
9
+ - Markdown
10
+ - 语法
11
+ ---
12
+
13
+ # Markdown 基础语法
14
+
15
+ 本文回顾 Markdown 的基础语法,帮助你快速上手文章写作。
16
+
17
+ ## 标题
18
+
19
+ 使用 `#` 号创建标题,`#` 数量表示标题级别:
20
+
21
+ ```markdown
22
+ # 一级标题
23
+ ## 二级标题
24
+ ### 三级标题
25
+ #### 四级标题
26
+ ##### 五级标题
27
+ ###### 六级标题
28
+ ```
29
+
30
+ ::: tip 建议
31
+ - 文章正文从二级标题 `##` 开始
32
+ - 一级标题 `#` 用于文章主标题
33
+ - 保持标题层级的连贯性
34
+ :::
35
+
36
+ ## 段落与换行
37
+
38
+ **段落**:空行分隔
39
+
40
+ ```markdown
41
+ 这是第一段。
42
+
43
+ 这是第二段。
44
+ ```
45
+
46
+ **换行**:行尾两个空格,或使用 `<br>`
47
+
48
+ ```markdown
49
+ 第一行
50
+ 第二行
51
+
52
+ 或者
53
+
54
+ 第一行<br>第二行
55
+ ```
56
+
57
+ ## 文本样式
58
+
59
+ | 样式 | 语法 | 效果 |
60
+ |:---|:---|:---|
61
+ | 粗体 | `**粗体**` | **粗体** |
62
+ | 斜体 | `*斜体*` | *斜体* |
63
+ | 粗斜体 | `***粗斜体***` | ***粗斜体*** |
64
+ | 删除线 | `~~删除线~~` | ~~删除线~~ |
65
+ | 行内代码 | `` `code` `` | `code` |
66
+
67
+ ## 列表
68
+
69
+ ### 无序列表
70
+
71
+ ```markdown
72
+ - 项目一
73
+ - 项目二
74
+ - 子项目 2.1
75
+ - 子项目 2.2
76
+ - 项目三
77
+ ```
78
+
79
+ 效果:
80
+
81
+ - 项目一
82
+ - 项目二
83
+ - 子项目 2.1
84
+ - 子项目 2.2
85
+ - 项目三
86
+
87
+ ### 有序列表
88
+
89
+ ```markdown
90
+ 1. 第一步
91
+ 2. 第二步
92
+ 3. 第三步
93
+ 1. 子步骤 3.1
94
+ 2. 子步骤 3.2
95
+ ```
96
+
97
+ 效果:
98
+
99
+ 1. 第一步
100
+ 2. 第二步
101
+ 3. 第三步
102
+ 1. 子步骤 3.1
103
+ 2. 子步骤 3.2
104
+
105
+ ### 任务列表
106
+
107
+ ```markdown
108
+ - [x] 已完成任务
109
+ - [ ] 未完成任务
110
+ - [ ] 待办事项
111
+ ```
112
+
113
+ 效果:
114
+
115
+ - [x] 已完成任务
116
+ - [ ] 未完成任务
117
+ - [ ] 待办事项
118
+
119
+ ## 链接
120
+
121
+ ### 基本链接
122
+
123
+ ```markdown
124
+ [链接文字](https://example.com)
125
+ [带标题的链接](https://example.com "鼠标悬停提示")
126
+ ```
127
+
128
+ 效果:[链接文字](https://example.com)
129
+
130
+ ### 内部链接
131
+
132
+ ```markdown
133
+ [查看快速开始](./01-quick-start)
134
+ [返回首页](/)
135
+ [锚点链接](#标题)
136
+ ```
137
+
138
+ ### 自动链接
139
+
140
+ ```markdown
141
+ <https://example.com>
142
+ <email@example.com>
143
+ ```
144
+
145
+ ## 图片
146
+
147
+ ### 基本语法
148
+
149
+ ```markdown
150
+ ![替代文字](/images/example.jpg)
151
+ ![带标题的图片](/images/example.jpg "图片标题")
152
+ ```
153
+
154
+ ### 图片存放位置
155
+
156
+ 将图片放在 `public/images/` 目录下:
157
+
158
+ ```
159
+ public/
160
+ └── images/
161
+ ├── posts/
162
+ │ └── my-article/
163
+ │ └── screenshot.png
164
+ └── logo.png
165
+ ```
166
+
167
+ 引用方式:
168
+
169
+ ```markdown
170
+ ![截图](/images/posts/my-article/screenshot.png)
171
+ ```
172
+
173
+ ::: tip 图片命名建议
174
+ - 使用有意义的文件名
175
+ - 使用小写字母和连字符
176
+ - 按文章组织图片目录
177
+ :::
178
+
179
+ ## 引用
180
+
181
+ ```markdown
182
+ > 这是一段引用文字。
183
+ > 可以有多行。
184
+ >
185
+ > > 嵌套引用
186
+ ```
187
+
188
+ 效果:
189
+
190
+ > 这是一段引用文字。
191
+ > 可以有多行。
192
+ >
193
+ > > 嵌套引用
194
+
195
+ ## 代码
196
+
197
+ ### 行内代码
198
+
199
+ ```markdown
200
+ 使用 `console.log()` 输出日志。
201
+ ```
202
+
203
+ 效果:使用 `console.log()` 输出日志。
204
+
205
+ ### 代码块
206
+
207
+ ````markdown
208
+ ```javascript
209
+ function hello(name) {
210
+ console.log(`Hello, ${name}!`);
211
+ }
212
+ ```
213
+ ````
214
+
215
+ 效果:
216
+
217
+ ```javascript
218
+ function hello(name) {
219
+ console.log(`Hello, ${name}!`);
220
+ }
221
+ ```
222
+
223
+ 详见 [代码块与高亮](./05-code-blocks)。
224
+
225
+ ## 表格
226
+
227
+ ```markdown
228
+ | 左对齐 | 居中对齐 | 右对齐 |
229
+ |:-------|:--------:|-------:|
230
+ | 内容1 | 内容2 | 内容3 |
231
+ | 内容4 | 内容5 | 内容6 |
232
+ ```
233
+
234
+ 效果:
235
+
236
+ | 左对齐 | 居中对齐 | 右对齐 |
237
+ |:-------|:--------:|-------:|
238
+ | 内容1 | 内容2 | 内容3 |
239
+ | 内容4 | 内容5 | 内容6 |
240
+
241
+ ::: info 对齐方式
242
+ - `:---` 左对齐
243
+ - `:---:` 居中对齐
244
+ - `---:` 右对齐
245
+ :::
246
+
247
+ ## 分隔线
248
+
249
+ ```markdown
250
+ ---
251
+
252
+ ***
253
+
254
+ ___
255
+ ```
256
+
257
+ 效果:
258
+
259
+ ---
260
+
261
+ ## 脚注
262
+
263
+ ```markdown
264
+ 这是一段带脚注的文字[^1]。
265
+
266
+ [^1]: 这是脚注的内容。
267
+ ```
268
+
269
+ ## 转义字符
270
+
271
+ 使用反斜杠 `\` 转义特殊字符:
272
+
273
+ ```markdown
274
+ \*不是斜体\*
275
+ \# 不是标题
276
+ \[不是链接\]
277
+ ```
278
+
279
+ 效果:\*不是斜体\*
280
+
281
+ ## HTML 支持
282
+
283
+ Markdown 中可以直接使用 HTML:
284
+
285
+ ```markdown
286
+ <details>
287
+ <summary>点击展开</summary>
288
+
289
+ 这是隐藏的内容。
290
+
291
+ </details>
292
+
293
+ <kbd>Ctrl</kbd> + <kbd>C</kbd>
294
+ ```
295
+
296
+ 效果:
297
+
298
+ <details>
299
+ <summary>点击展开</summary>
300
+
301
+ 这是隐藏的内容。
302
+
303
+ </details>
304
+
305
+ 快捷键:<kbd>Ctrl</kbd> + <kbd>C</kbd>
306
+
307
+ ## 最佳实践
308
+
309
+ ### 1. 保持简洁
310
+
311
+ ```markdown
312
+ # 好的写法
313
+ 使用 **重点** 标记关键词。
314
+
315
+ # 避免过度使用
316
+ 使用 ***非常非常*** **重要的** *关键* ~~词~~。
317
+ ```
318
+
319
+ ### 2. 合理使用列表
320
+
321
+ ```markdown
322
+ # 适合用列表
323
+ 功能特点:
324
+ - 快速
325
+ - 简单
326
+ - 强大
327
+
328
+ # 不适合用列表(改用段落)
329
+ 这是一个关于...的说明,它包含了...的内容。
330
+ ```
331
+
332
+ ### 3. 代码与说明配合
333
+
334
+ ```markdown
335
+ 使用 `map()` 方法遍历数组:
336
+
337
+ ```javascript
338
+ const doubled = [1, 2, 3].map(x => x * 2);
339
+ ```
340
+
341
+ 这会返回 `[2, 4, 6]`。
342
+ ```
343
+
344
+ ## 下一步
345
+
346
+ 掌握基础语法后,学习本博客的增强功能:
347
+
348
+ - [容器语法](./04-containers) - 提示框、警告框等
349
+ - [代码块与高亮](./05-code-blocks) - 代码展示最佳实践
350
+ - [Mermaid 图表](./06-mermaid) - 绘制流程图等
@@ -0,0 +1,331 @@
1
+ ---
2
+ title: 容器语法
3
+ description: 使用提示框、警告框等容器增强文章表现力
4
+ pubDate: 2025-12-11
5
+ author: Astro Blog
6
+ categories:
7
+ - 博客教程
8
+ tags:
9
+ - 容器
10
+ - Markdown
11
+ ---
12
+
13
+ # 容器语法
14
+
15
+ 容器是本博客的特色功能,用于创建醒目的提示框、警告框等,让文章更加清晰易读。
16
+
17
+ ## 基本语法
18
+
19
+ ```markdown
20
+ ::: 类型 可选标题
21
+ 容器内容
22
+ :::
23
+ ```
24
+
25
+ ## 容器类型
26
+
27
+ 本博客支持 6 种容器类型:
28
+
29
+ ### tip - 提示
30
+
31
+ ```markdown
32
+ ::: tip
33
+ 这是一个提示信息。
34
+ :::
35
+
36
+ ::: tip 自定义标题
37
+ 这是带自定义标题的提示。
38
+ :::
39
+ ```
40
+
41
+ ::: tip
42
+ 这是一个提示信息。
43
+ :::
44
+
45
+ ::: tip 自定义标题
46
+ 这是带自定义标题的提示。
47
+ :::
48
+
49
+ ### info - 信息
50
+
51
+ ```markdown
52
+ ::: info
53
+ 这是一条信息说明。
54
+ :::
55
+
56
+ ::: info 补充说明
57
+ 关于这个功能的更多信息...
58
+ :::
59
+ ```
60
+
61
+ ::: info
62
+ 这是一条信息说明。
63
+ :::
64
+
65
+ ::: info 补充说明
66
+ 关于这个功能的更多信息...
67
+ :::
68
+
69
+ ### note - 注意
70
+
71
+ ```markdown
72
+ ::: note
73
+ 请注意这一点。
74
+ :::
75
+
76
+ ::: note 注意事项
77
+ 使用时需要注意以下几点...
78
+ :::
79
+ ```
80
+
81
+ ::: note
82
+ 请注意这一点。
83
+ :::
84
+
85
+ ::: note 注意事项
86
+ 使用时需要注意以下几点...
87
+ :::
88
+
89
+ ### warning - 警告
90
+
91
+ ```markdown
92
+ ::: warning
93
+ 这是一条警告信息。
94
+ :::
95
+
96
+ ::: warning 版本兼容性
97
+ 此功能仅在 v2.0 以上版本可用。
98
+ :::
99
+ ```
100
+
101
+ ::: warning
102
+ 这是一条警告信息。
103
+ :::
104
+
105
+ ::: warning 版本兼容性
106
+ 此功能仅在 v2.0 以上版本可用。
107
+ :::
108
+
109
+ ### danger - 危险
110
+
111
+ ```markdown
112
+ ::: danger
113
+ 危险操作,请谨慎!
114
+ :::
115
+
116
+ ::: danger 数据丢失风险
117
+ 此操作将永久删除数据,无法恢复!
118
+ :::
119
+ ```
120
+
121
+ ::: danger
122
+ 危险操作,请谨慎!
123
+ :::
124
+
125
+ ::: danger 数据丢失风险
126
+ 此操作将永久删除数据,无法恢复!
127
+ :::
128
+
129
+ ### details - 详情(可折叠)
130
+
131
+ ```markdown
132
+ ::: details
133
+ 这是可以折叠的内容。
134
+ :::
135
+
136
+ ::: details 点击查看详情
137
+ 这里是隐藏的详细内容。
138
+
139
+ 可以包含多段文字。
140
+ :::
141
+ ```
142
+
143
+ ::: details
144
+ 这是可以折叠的内容。
145
+ :::
146
+
147
+ ::: details 点击查看详情
148
+ 这里是隐藏的详细内容。
149
+
150
+ 可以包含多段文字。
151
+ :::
152
+
153
+ ## 容器内容
154
+
155
+ ### 支持多行文本
156
+
157
+ ```markdown
158
+ ::: tip 多行内容
159
+ 第一行内容。
160
+
161
+ 第二行内容。
162
+
163
+ 第三行内容。
164
+ :::
165
+ ```
166
+
167
+ ::: tip 多行内容
168
+ 第一行内容。
169
+
170
+ 第二行内容。
171
+
172
+ 第三行内容。
173
+ :::
174
+
175
+ ### 支持列表
176
+
177
+ ```markdown
178
+ ::: info 功能特点
179
+ - 特点一:快速响应
180
+ - 特点二:简单易用
181
+ - 特点三:功能强大
182
+ :::
183
+ ```
184
+
185
+ ::: info 功能特点
186
+ - 特点一:快速响应
187
+ - 特点二:简单易用
188
+ - 特点三:功能强大
189
+ :::
190
+
191
+ ### 支持代码
192
+
193
+ ```markdown
194
+ ::: tip 代码示例
195
+ 使用以下代码:
196
+ \`\`\`javascript
197
+ console.log('Hello');
198
+ \`\`\`
199
+ :::
200
+ ```
201
+
202
+ ::: tip 代码示例
203
+ 使用以下代码:
204
+ ```javascript
205
+ console.log('Hello');
206
+ ```
207
+ :::
208
+
209
+ ### 支持链接和格式
210
+
211
+ ```markdown
212
+ ::: note 参考资料
213
+ 更多信息请查看 [官方文档](https://example.com)。
214
+
215
+ 重点内容用 **粗体** 标记。
216
+ :::
217
+ ```
218
+
219
+ ::: note 参考资料
220
+ 更多信息请查看 [官方文档](https://example.com)。
221
+
222
+ 重点内容用 **粗体** 标记。
223
+ :::
224
+
225
+ ## 使用场景
226
+
227
+ ### 教程中的提示
228
+
229
+ ::: tip 快捷键
230
+ 使用 `Ctrl + S` 保存文件。
231
+ :::
232
+
233
+ ### API 文档中的注意事项
234
+
235
+ ::: warning 废弃警告
236
+ `oldFunction()` 已废弃,请使用 `newFunction()` 代替。
237
+ :::
238
+
239
+ ### 操作指南中的警告
240
+
241
+ ::: danger 破坏性操作
242
+ 执行此命令前请确保已备份数据:
243
+ ```bash
244
+ rm -rf /data/*
245
+ ```
246
+ :::
247
+
248
+ ### 补充说明
249
+
250
+ ::: details 实现原理
251
+ 这个功能基于以下技术实现:
252
+
253
+ 1. 使用 remark-directive 解析自定义语法
254
+ 2. 通过 remark-containers 插件转换为 HTML
255
+ 3. 使用 Tailwind CSS 进行样式化
256
+
257
+ 代码实现位于 `src/plugins/remark-containers.mjs`。
258
+ :::
259
+
260
+ ## 样式对照表
261
+
262
+ | 类型 | 颜色 | 图标 | 适用场景 |
263
+ |:---|:---|:---|:---|
264
+ | tip | 蓝色 | 💡 | 有用的建议、技巧 |
265
+ | info | 蓝色 | ℹ️ | 补充信息、说明 |
266
+ | note | 灰色 | 📝 | 注意事项、备注 |
267
+ | warning | 黄色 | ⚠️ | 警告、注意 |
268
+ | danger | 红色 | 🚨 | 危险操作、严重警告 |
269
+ | details | 灰色 | 📋 | 可折叠的详细内容 |
270
+
271
+ ## 最佳实践
272
+
273
+ ### 1. 选择合适的类型
274
+
275
+ ```markdown
276
+ <!-- 好:选择合适的类型 -->
277
+ ::: tip 性能提示
278
+ 启用缓存可以提升 50% 的加载速度。
279
+ :::
280
+
281
+ <!-- 不好:类型与内容不匹配 -->
282
+ ::: danger 性能提示
283
+ 启用缓存可以提升 50% 的加载速度。
284
+ :::
285
+ ```
286
+
287
+ ### 2. 保持内容简洁
288
+
289
+ ```markdown
290
+ <!-- 好:简洁明了 -->
291
+ ::: warning
292
+ Node.js 版本需要 >= 18.0
293
+ :::
294
+
295
+ <!-- 不好:内容过长 -->
296
+ ::: warning
297
+ 这是一个非常长的警告信息,包含了很多不必要的内容...
298
+ (应该拆分或简化)
299
+ :::
300
+ ```
301
+
302
+ ### 3. 添加有意义的标题
303
+
304
+ ```markdown
305
+ <!-- 好:标题说明内容 -->
306
+ ::: info 环境要求
307
+ - Node.js >= 18.0
308
+ - npm >= 9.0
309
+ :::
310
+
311
+ <!-- 一般:使用默认标题 -->
312
+ ::: info
313
+ - Node.js >= 18.0
314
+ - npm >= 9.0
315
+ :::
316
+ ```
317
+
318
+ ### 4. 避免过度使用
319
+
320
+ 一篇文章中不要使用过多的容器,否则会分散读者注意力。建议:
321
+
322
+ - 每个章节最多 2-3 个容器
323
+ - 只在确实需要强调的地方使用
324
+ - details 容器适合放置参考信息
325
+
326
+ ## 下一步
327
+
328
+ 继续学习其他增强功能:
329
+
330
+ - [代码块与高亮](./05-code-blocks) - 代码展示最佳实践
331
+ - [Mermaid 图表](./06-mermaid) - 绘制各类图表