@jet-w/astro-blog 0.2.0 → 0.2.2

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 (121) hide show
  1. package/dist/{chunk-HVQKQN6B.js → chunk-6D3XRDNY.js} +1 -1
  2. package/dist/{chunk-ATRISB7B.js → chunk-A2E2VSAQ.js} +43 -3
  3. package/dist/chunk-DAH2XP4W.js +154 -0
  4. package/dist/{chunk-AZHCNNAC.js → chunk-PG43JO4O.js} +1 -153
  5. package/dist/chunk-PZICDGJG.js +69 -0
  6. package/dist/chunk-Z3O3JK56.js +186 -0
  7. package/dist/config/index.d.ts +2 -2
  8. package/dist/config/index.js +9 -7
  9. package/dist/{i18n-5H4W145i.d.ts → i18n-DYYPTq4o.d.ts} +21 -1
  10. package/dist/index.d.ts +10 -184
  11. package/dist/index.js +37 -210
  12. package/dist/integration.d.ts +2 -2
  13. package/dist/integration.js +2 -2
  14. package/dist/{sidebar-Da-W_4Lr.d.ts → sidebar-DNdiCKBw.d.ts} +1 -1
  15. package/dist/utils/i18n.d.ts +133 -0
  16. package/dist/utils/i18n.js +49 -0
  17. package/dist/utils/sidebar.d.ts +1 -1
  18. package/dist/utils/useI18n.d.ts +74 -0
  19. package/dist/utils/useI18n.js +15 -0
  20. package/package.json +9 -1
  21. package/src/components/blog/FloatingToc.vue +11 -3
  22. package/src/components/blog/Hero.astro +17 -2
  23. package/src/components/blog/NavigationTabs.vue +46 -15
  24. package/src/components/blog/PostCard.astro +28 -10
  25. package/src/components/blog/RelatedPosts.astro +23 -7
  26. package/src/components/blog/TableOfContents.astro +10 -4
  27. package/src/components/blog/TagCloud.astro +4 -3
  28. package/src/components/home/FeaturedPostsSection.astro +22 -6
  29. package/src/components/home/QuickNavSection.astro +33 -4
  30. package/src/components/home/RecentPostsSection.astro +22 -6
  31. package/src/components/home/StatsSection.astro +24 -6
  32. package/src/components/layout/Header.astro +9 -5
  33. package/src/components/layout/Sidebar.astro +14 -11
  34. package/src/components/ui/SearchBox.vue +13 -5
  35. package/src/components/ui/SearchInterface.vue +49 -25
  36. package/src/pages/archives/[year]/[month].astro +36 -17
  37. package/src/pages/archives/index.astro +36 -20
  38. package/src/pages/categories/[category].astro +33 -16
  39. package/src/pages/categories/index.astro +37 -14
  40. package/src/pages/posts/[...slug].astro +125 -18
  41. package/src/pages/posts/index.astro +59 -37
  42. package/src/pages/posts/page/[page].astro +65 -27
  43. package/src/pages/search.astro +50 -14
  44. package/src/pages/slides/index.astro +25 -6
  45. package/src/pages/tags/[tag].astro +32 -15
  46. package/src/pages/tags/index.astro +39 -16
  47. package/src/plugins/remark-containers.mjs +351 -322
  48. package/src/plugins/remark-protect-code.mjs +69 -0
  49. package/src/styles/global.css +35 -1
  50. package/templates/default/.claude/ralph-loop.local.md +48 -0
  51. package/templates/default/astro.config.mjs +13 -4
  52. package/templates/default/content/posts/blog_docs_en/{get-started → 01.get-started}/01-intro.md +1 -1
  53. package/templates/default/content/posts/blog_docs_en/{get-started → 01.get-started}/02-install.md +1 -1
  54. package/templates/default/content/posts/blog_docs_en/{get-started → 01.get-started}/03-create-post.md +1 -1
  55. package/templates/default/content/posts/blog_docs_en/{get-started → 01.get-started}/04-structure.md +1 -1
  56. package/templates/default/content/posts/blog_docs_en/01.get-started/05-deploy.md +208 -0
  57. package/templates/default/content/posts/blog_docs_en/{get-started → 01.get-started}/README.md +1 -1
  58. package/templates/default/content/posts/blog_docs_en/02.guide/02-containers.md +245 -0
  59. package/templates/default/content/posts/blog_docs_en/{guide/markdown → 02.guide}/03-code-blocks.md +2 -1
  60. package/templates/default/content/posts/blog_docs_en/{guide/features/01-mermaid.md → 02.guide/03-mermaid.md} +1 -1
  61. package/templates/default/content/posts/blog_docs_en/{guide/features → 02.guide}/04-icons.md +4 -2
  62. package/templates/default/content/posts/blog_docs_en/{guide/features/02-latex.md → 02.guide/06-latex.md} +1 -1
  63. package/templates/default/content/posts/blog_docs_en/{guide/features/03-video.md → 02.guide/07-video.md} +1 -1
  64. package/templates/default/content/posts/blog_docs_en/02.guide/08-slides.md +359 -0
  65. package/templates/default/content/posts/blog_docs_en/{guide/markdown → 02.guide}/README.md +22 -3
  66. package/templates/default/content/posts/blog_docs_en/{config → 03.config}/01-site.md +1 -1
  67. package/templates/default/content/posts/blog_docs_en/{config → 03.config}/02-sidebar.md +1 -1
  68. package/templates/default/content/posts/blog_docs_en/{config → 03.config}/03-i18n.md +88 -24
  69. package/templates/default/content/posts/blog_docs_en/{config → 03.config}/README.md +1 -1
  70. package/templates/default/content/posts/blog_docs_en/README.md +2 -1
  71. package/templates/default/content/posts/blog_docs_zh/01.get-started/01-intro.md +81 -0
  72. package/templates/default/content/posts/blog_docs_zh/01.get-started/02-install.md +137 -0
  73. package/templates/default/content/posts/blog_docs_zh/01.get-started/03-create-post.md +176 -0
  74. package/templates/default/content/posts/blog_docs_zh/01.get-started/04-structure.md +173 -0
  75. package/templates/default/content/posts/blog_docs_zh/01.get-started/05-deploy.md +208 -0
  76. package/templates/default/content/posts/blog_docs_zh/01.get-started/README.md +52 -0
  77. package/templates/default/content/posts/blog_docs_zh/02.guide/02-containers.md +245 -0
  78. package/templates/default/content/posts/blog_docs_zh/02.guide/03-code-blocks.md +206 -0
  79. package/templates/default/content/posts/blog_docs_zh/02.guide/03-mermaid.md +194 -0
  80. package/templates/default/content/posts/blog_docs_zh/02.guide/04-icons.md +229 -0
  81. package/templates/default/content/posts/blog_docs_zh/02.guide/06-latex.md +233 -0
  82. package/templates/default/content/posts/blog_docs_zh/02.guide/07-video.md +184 -0
  83. package/templates/default/content/posts/blog_docs_zh/02.guide/08-slides.md +359 -0
  84. package/templates/default/content/posts/blog_docs_zh/02.guide/README.md +213 -0
  85. package/templates/default/content/posts/blog_docs_zh/03.config/01-site.md +208 -0
  86. package/templates/default/content/posts/blog_docs_zh/03.config/02-sidebar.md +240 -0
  87. package/templates/default/content/posts/blog_docs_zh/03.config/03-i18n.md +348 -0
  88. package/templates/default/content/posts/blog_docs_zh/03.config/README.md +85 -0
  89. package/templates/default/content/posts/blog_docs_zh/README.md +78 -0
  90. package/templates/default/package.dev.json +31 -0
  91. package/templates/default/package.json +1 -1
  92. package/templates/default/src/config/locales/en/index.ts +5 -1
  93. package/templates/default/src/config/locales/en/menu.ts +3 -1
  94. package/templates/default/src/config/locales/en/sidebar.ts +18 -2
  95. package/templates/default/src/config/locales/en/site.ts +1 -1
  96. package/templates/default/src/config/locales/en/ui.ts +29 -0
  97. package/templates/default/src/config/locales/zh-CN/index.ts +5 -1
  98. package/templates/default/src/config/locales/zh-CN/menu.ts +7 -5
  99. package/templates/default/src/config/locales/zh-CN/sidebar.ts +22 -6
  100. package/templates/default/src/config/locales/zh-CN/site.ts +2 -2
  101. package/templates/default/src/config/locales/zh-CN/ui.ts +29 -0
  102. package/templates/default/src/config/site.ts +2 -2
  103. package/templates/default/src/content.config.ts +15 -3
  104. package/templates/default/content/posts/blog_docs/01-quick-start.md +0 -162
  105. package/templates/default/content/posts/blog_docs/02-frontmatter.md +0 -277
  106. package/templates/default/content/posts/blog_docs/03-markdown-basic.md +0 -350
  107. package/templates/default/content/posts/blog_docs/04-containers.md +0 -331
  108. package/templates/default/content/posts/blog_docs/05-code-blocks.md +0 -388
  109. package/templates/default/content/posts/blog_docs/06-mermaid.md +0 -431
  110. package/templates/default/content/posts/blog_docs/07-video.md +0 -243
  111. package/templates/default/content/posts/blog_docs/08-latex.md +0 -382
  112. package/templates/default/content/posts/blog_docs/09-icons.md +0 -326
  113. package/templates/default/content/posts/blog_docs/10-sidebar.md +0 -445
  114. package/templates/default/content/posts/blog_docs/11-config.md +0 -334
  115. package/templates/default/content/posts/blog_docs/12-i18n.md +0 -355
  116. package/templates/default/content/posts/blog_docs/12-slides.mdx +0 -552
  117. package/templates/default/content/posts/blog_docs/README.md +0 -152
  118. package/templates/default/content/posts/blog_docs_en/get-started/05-deploy.md +0 -197
  119. package/templates/default/content/posts/blog_docs_en/guide/README.md +0 -59
  120. package/templates/default/content/posts/blog_docs_en/guide/features/README.md +0 -51
  121. package/templates/default/content/posts/blog_docs_en/guide/markdown/02-containers.md +0 -226
@@ -0,0 +1,206 @@
1
+ ---
2
+ title: 代码块
3
+ description: 语法高亮、行号和代码显示功能
4
+ pubDate: 2025-01-01
5
+ author: jet-w
6
+ categories:
7
+ - 文档
8
+ tags:
9
+ - Markdown
10
+ - 代码
11
+ ---
12
+
13
+ # 代码块
14
+
15
+ 使用 Shiki 提供的精美语法高亮来展示代码。
16
+
17
+ ## 基本代码块
18
+
19
+ 用三个反引号包裹代码:
20
+
21
+ ````markdown
22
+ ```
23
+ 纯文本代码块
24
+ ```
25
+ ````
26
+
27
+ ## 语法高亮
28
+
29
+ 在反引号后指定语言:
30
+
31
+ ````markdown
32
+ ```javascript
33
+ function greet(name) {
34
+ return `Hello, ${name}!`;
35
+ }
36
+ ```
37
+ ````
38
+
39
+ ```javascript
40
+ function greet(name) {
41
+ return `Hello, ${name}!`;
42
+ }
43
+ ```
44
+
45
+ ## 支持的语言
46
+
47
+ 支持 100+ 种语言:
48
+
49
+ | 语言 | 标识符 |
50
+ |------|--------|
51
+ | JavaScript | `javascript`, `js` |
52
+ | TypeScript | `typescript`, `ts` |
53
+ | Python | `python`, `py` |
54
+ | HTML | `html` |
55
+ | CSS | `css` |
56
+ | JSON | `json` |
57
+ | Bash | `bash`, `sh` |
58
+ | Markdown | `markdown`, `md` |
59
+
60
+ ## 语言示例
61
+
62
+ ### JavaScript/TypeScript
63
+
64
+ ```typescript
65
+ interface User {
66
+ name: string;
67
+ age: number;
68
+ }
69
+
70
+ const user: User = {
71
+ name: 'Alice',
72
+ age: 25
73
+ };
74
+ ```
75
+
76
+ ### Python
77
+
78
+ ```python
79
+ def fibonacci(n):
80
+ if n <= 1:
81
+ return n
82
+ return fibonacci(n-1) + fibonacci(n-2)
83
+
84
+ print([fibonacci(i) for i in range(10)])
85
+ ```
86
+
87
+ ### HTML
88
+
89
+ ```html
90
+ <!DOCTYPE html>
91
+ <html>
92
+ <head>
93
+ <title>Hello</title>
94
+ </head>
95
+ <body>
96
+ <h1>Hello World</h1>
97
+ </body>
98
+ </html>
99
+ ```
100
+
101
+ ### CSS
102
+
103
+ ```css
104
+ .container {
105
+ display: flex;
106
+ justify-content: center;
107
+ align-items: center;
108
+ gap: 1rem;
109
+ }
110
+
111
+ .button {
112
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
113
+ color: white;
114
+ padding: 0.5rem 1rem;
115
+ border-radius: 0.25rem;
116
+ }
117
+ ```
118
+
119
+ ### Bash
120
+
121
+ ```bash
122
+ #!/bin/bash
123
+
124
+ # 安装依赖
125
+ npm install
126
+
127
+ # 构建项目
128
+ npm run build
129
+
130
+ # 部署
131
+ rsync -avz dist/ server:/var/www/blog/
132
+ ```
133
+
134
+ ### JSON
135
+
136
+ ```json
137
+ {
138
+ "name": "my-blog",
139
+ "version": "1.0.0",
140
+ "dependencies": {
141
+ "astro": "^5.0.0",
142
+ "vue": "^3.4.0"
143
+ }
144
+ }
145
+ ```
146
+
147
+ ## 行内代码
148
+
149
+ 使用单个反引号表示行内代码:
150
+
151
+ ```markdown
152
+ 使用 `npm install` 安装依赖。
153
+ ```
154
+
155
+ 使用 `npm install` 安装依赖。
156
+
157
+ ## 代码块功能
158
+
159
+ ### 复制按钮
160
+
161
+ 所有代码块在悬停时都会显示复制按钮。
162
+
163
+ ### 语言标签
164
+
165
+ 语言名称显示在头部。
166
+
167
+ ### 可折叠代码
168
+
169
+ 长代码块(15+ 行)会自动折叠,带有"展开"按钮。
170
+
171
+ ::: tip 试试看
172
+ 向上滚动查看较长代码块上的展开/折叠功能。
173
+ :::
174
+
175
+ ## 容器中的代码
176
+
177
+ 代码在容器中也能正常工作:
178
+
179
+ ::: tip 示例
180
+ ```javascript
181
+ // 这段代码在提示容器内
182
+ console.log('Hello from a container!');
183
+ ```
184
+ :::
185
+
186
+ ## Diff 语法
187
+
188
+ 展示代码变化:
189
+
190
+ ```diff
191
+ - const old = 'before';
192
+ + const new = 'after';
193
+ ```
194
+
195
+ ## 最佳实践
196
+
197
+ ::: info 代码块技巧
198
+ 1. **始终指定语言** 以获得正确的高亮
199
+ 2. **保持示例简洁** - 只展示相关代码
200
+ 3. **添加注释** 解释复杂逻辑
201
+ 4. **测试你的代码** - 确保示例真正有效
202
+ :::
203
+
204
+ ---
205
+
206
+ 继续学习高级功能:[Mermaid 图表](./03-mermaid)。
@@ -0,0 +1,194 @@
1
+ ---
2
+ title: Mermaid 图表
3
+ description: 使用 Mermaid 创建流程图、时序图等
4
+ pubDate: 2025-01-01
5
+ author: jet-w
6
+ categories:
7
+ - 文档
8
+ tags:
9
+ - Mermaid
10
+ - 图表
11
+ ---
12
+
13
+ # Mermaid 图表
14
+
15
+ 使用 [Mermaid](https://mermaid.js.org) 直接在 Markdown 中创建精美的图表。
16
+
17
+ ## 基本语法
18
+
19
+ 使用 `mermaid` 语言的代码块:
20
+
21
+ ````markdown
22
+ ```mermaid
23
+ graph TD
24
+ A[开始] --> B[结束]
25
+ ```
26
+ ````
27
+
28
+ ## 流程图
29
+
30
+ ### 基本流程
31
+
32
+ ```mermaid
33
+ graph TD
34
+ A[开始] --> B{决策}
35
+ B -->|是| C[执行操作]
36
+ B -->|否| D[执行其他操作]
37
+ C --> E[结束]
38
+ D --> E
39
+ ```
40
+
41
+ ### 从左到右
42
+
43
+ ```mermaid
44
+ graph LR
45
+ A[输入] --> B[处理]
46
+ B --> C[输出]
47
+ ```
48
+
49
+ ### 节点形状
50
+
51
+ ```mermaid
52
+ graph TD
53
+ A[矩形]
54
+ B(圆角)
55
+ C([体育场])
56
+ D[[子程序]]
57
+ E[(数据库)]
58
+ F((圆形))
59
+ G{菱形}
60
+ H{{六边形}}
61
+ ```
62
+
63
+ ## 时序图
64
+
65
+ ```mermaid
66
+ sequenceDiagram
67
+ participant 用户
68
+ participant 浏览器
69
+ participant 服务器
70
+ participant 数据库
71
+
72
+ 用户->>浏览器: 输入URL
73
+ 浏览器->>服务器: HTTP请求
74
+ 服务器->>数据库: 查询数据
75
+ 数据库-->>服务器: 返回数据
76
+ 服务器-->>浏览器: HTTP响应
77
+ 浏览器-->>用户: 显示页面
78
+ ```
79
+
80
+ ## 类图
81
+
82
+ ```mermaid
83
+ classDiagram
84
+ class Animal {
85
+ +String name
86
+ +int age
87
+ +makeSound()
88
+ }
89
+ class Dog {
90
+ +String breed
91
+ +bark()
92
+ }
93
+ class Cat {
94
+ +String color
95
+ +meow()
96
+ }
97
+ Animal <|-- Dog
98
+ Animal <|-- Cat
99
+ ```
100
+
101
+ ## 状态图
102
+
103
+ ```mermaid
104
+ stateDiagram-v2
105
+ [*] --> 草稿
106
+ 草稿 --> 审核中
107
+ 审核中 --> 草稿: 需要修改
108
+ 审核中 --> 已发布
109
+ 已发布 --> 已归档
110
+ 已归档 --> [*]
111
+ ```
112
+
113
+ ## 甘特图
114
+
115
+ ```mermaid
116
+ gantt
117
+ title 项目时间线
118
+ dateFormat YYYY-MM-DD
119
+ section 规划
120
+ 需求分析 :a1, 2025-01-01, 7d
121
+ 设计 :a2, after a1, 5d
122
+ section 开发
123
+ 后端开发 :b1, after a2, 14d
124
+ 前端开发 :b2, after a2, 14d
125
+ section 测试
126
+ 测试 :c1, after b1, 7d
127
+ 部署 :c2, after c1, 3d
128
+ ```
129
+
130
+ ## 饼图
131
+
132
+ ```mermaid
133
+ pie title 语言使用分布
134
+ "JavaScript" : 45
135
+ "TypeScript" : 30
136
+ "Python" : 15
137
+ "其他" : 10
138
+ ```
139
+
140
+ ## 实体关系图
141
+
142
+ ```mermaid
143
+ erDiagram
144
+ USER ||--o{ POST : 写
145
+ USER ||--o{ COMMENT : 写
146
+ POST ||--o{ COMMENT : 有
147
+ POST }|--|| CATEGORY : 属于
148
+ ```
149
+
150
+ ## Git 图
151
+
152
+ ```mermaid
153
+ gitGraph
154
+ commit id: "初始化"
155
+ branch develop
156
+ checkout develop
157
+ commit id: "功能A"
158
+ commit id: "功能B"
159
+ checkout main
160
+ merge develop
161
+ commit id: "发布"
162
+ ```
163
+
164
+ ## 样式
165
+
166
+ ### 自定义颜色
167
+
168
+ ```mermaid
169
+ graph TD
170
+ A[开始]:::green --> B{检查}:::yellow
171
+ B -->|通过| C[成功]:::green
172
+ B -->|失败| D[错误]:::red
173
+
174
+ classDef green fill:#90EE90
175
+ classDef yellow fill:#FFE4B5
176
+ classDef red fill:#FFB6C1
177
+ ```
178
+
179
+ ## 提示
180
+
181
+ ::: tip 最佳实践
182
+ 1. **保持简单** - 复杂的图表会变得难以阅读
183
+ 2. **使用有意义的标签** - 清晰的文字提高理解度
184
+ 3. **选择正确的类型** - 根据内容匹配图表类型
185
+ 4. **测试渲染** - 发布前预览效果
186
+ :::
187
+
188
+ ::: info 了解更多
189
+ 完整文档:[mermaid.js.org](https://mermaid.js.org/syntax/flowchart.html)
190
+ :::
191
+
192
+ ---
193
+
194
+ 下一步:[LaTeX 数学](./06-latex) 了解数学公式渲染。
@@ -0,0 +1,229 @@
1
+ ---
2
+ title: 图标
3
+ description: 使用 Font Awesome、Material、Remix 和 Bootstrap 图标
4
+ pubDate: 2025-01-01
5
+ author: jet-w
6
+ categories:
7
+ - 文档
8
+ tags:
9
+ - 图标
10
+ - 设计
11
+ ---
12
+
13
+ # 图标
14
+
15
+ 使用多个流行图标库为你的内容添加视觉元素。
16
+
17
+ ## 可用图标库
18
+
19
+ | 图标库 | 前缀 | 图标数量 |
20
+ |--------|------|----------|
21
+ | Font Awesome | `fa-` | 2000+ |
22
+ | Material Icons | `material-icons` | 2500+ |
23
+ | Remix Icon | `ri-` | 2400+ |
24
+ | Bootstrap Icons | `bi-` | 2000+ |
25
+ | Ionicons | `ion-` | 1300+ |
26
+
27
+ ## Font Awesome
28
+
29
+ ### 实心图标
30
+
31
+ ```html
32
+ <i class="fas fa-home"></i>
33
+ <i class="fas fa-star"></i>
34
+ <i class="fas fa-heart"></i>
35
+ <i class="fas fa-user"></i>
36
+ ```
37
+
38
+ <i class="fas fa-home"></i> <i class="fas fa-star"></i> <i class="fas fa-heart"></i> <i class="fas fa-user"></i>
39
+
40
+ ### 常规图标
41
+
42
+ ```html
43
+ <i class="far fa-star"></i>
44
+ <i class="far fa-heart"></i>
45
+ <i class="far fa-comment"></i>
46
+ ```
47
+
48
+ <i class="far fa-star"></i> <i class="far fa-heart"></i> <i class="far fa-comment"></i>
49
+
50
+ ### 品牌图标
51
+
52
+ ```html
53
+ <i class="fab fa-github"></i>
54
+ <i class="fab fa-twitter"></i>
55
+ <i class="fab fa-linkedin"></i>
56
+ ```
57
+
58
+ <i class="fab fa-github"></i> <i class="fab fa-twitter"></i> <i class="fab fa-linkedin"></i>
59
+
60
+ ## Material Icons
61
+
62
+ ```html
63
+ <span class="material-icons">home</span>
64
+ <span class="material-icons">favorite</span>
65
+ <span class="material-icons">settings</span>
66
+ ```
67
+
68
+ <span class="material-icons">home</span> <span class="material-icons">favorite</span> <span class="material-icons">settings</span>
69
+
70
+ ### 轮廓风格
71
+
72
+ ```html
73
+ <span class="material-icons-outlined">home</span>
74
+ <span class="material-icons-outlined">favorite</span>
75
+ ```
76
+
77
+ <span class="material-icons-outlined">home</span> <span class="material-icons-outlined">favorite</span>
78
+
79
+ ### 圆角风格
80
+
81
+ ```html
82
+ <span class="material-icons-round">home</span>
83
+ <span class="material-icons-round">favorite</span>
84
+ ```
85
+
86
+ <span class="material-icons-round">home</span> <span class="material-icons-round">favorite</span>
87
+
88
+ ## Remix Icon
89
+
90
+ ```html
91
+ <i class="ri-home-line"></i>
92
+ <i class="ri-home-fill"></i>
93
+ <i class="ri-star-line"></i>
94
+ <i class="ri-star-fill"></i>
95
+ ```
96
+
97
+ <i class="ri-home-line"></i> <i class="ri-home-fill"></i> <i class="ri-star-line"></i> <i class="ri-star-fill"></i>
98
+
99
+ ### 常用图标
100
+
101
+ ```html
102
+ <i class="ri-github-fill"></i>
103
+ <i class="ri-twitter-fill"></i>
104
+ <i class="ri-code-line"></i>
105
+ <i class="ri-terminal-box-line"></i>
106
+ ```
107
+
108
+ <i class="ri-github-fill"></i> <i class="ri-twitter-fill"></i> <i class="ri-code-line"></i> <i class="ri-terminal-box-line"></i>
109
+
110
+ ## Bootstrap Icons
111
+
112
+ ```html
113
+ <i class="bi bi-house"></i>
114
+ <i class="bi bi-star"></i>
115
+ <i class="bi bi-heart"></i>
116
+ <i class="bi bi-github"></i>
117
+ ```
118
+
119
+ <i class="bi bi-house"></i> <i class="bi bi-star"></i> <i class="bi bi-heart"></i> <i class="bi bi-github"></i>
120
+
121
+ ## Ionicons
122
+
123
+ ```html
124
+ <ion-icon name="home"></ion-icon>
125
+ <ion-icon name="star"></ion-icon>
126
+ <ion-icon name="heart"></ion-icon>
127
+ ```
128
+
129
+ <ion-icon name="home"></ion-icon> <ion-icon name="star"></ion-icon> <ion-icon name="heart"></ion-icon>
130
+
131
+ ## 尺寸
132
+
133
+ ### Font Awesome
134
+
135
+ ```html
136
+ <i class="fas fa-star fa-xs"></i>
137
+ <i class="fas fa-star fa-sm"></i>
138
+ <i class="fas fa-star"></i>
139
+ <i class="fas fa-star fa-lg"></i>
140
+ <i class="fas fa-star fa-2x"></i>
141
+ <i class="fas fa-star fa-3x"></i>
142
+ ```
143
+
144
+ <i class="fas fa-star fa-xs"></i> <i class="fas fa-star fa-sm"></i> <i class="fas fa-star"></i> <i class="fas fa-star fa-lg"></i> <i class="fas fa-star fa-2x"></i> <i class="fas fa-star fa-3x"></i>
145
+
146
+ ### CSS 尺寸
147
+
148
+ ```html
149
+ <i class="ri-star-fill" style="font-size: 24px;"></i>
150
+ <i class="ri-star-fill" style="font-size: 32px;"></i>
151
+ ```
152
+
153
+ <i class="ri-star-fill" style="font-size: 24px;"></i> <i class="ri-star-fill" style="font-size: 32px;"></i>
154
+
155
+ ## 颜色
156
+
157
+ ```html
158
+ <i class="fas fa-star" style="color: gold;"></i>
159
+ <i class="fas fa-heart" style="color: red;"></i>
160
+ <i class="fas fa-leaf" style="color: green;"></i>
161
+ ```
162
+
163
+ <i class="fas fa-star" style="color: gold;"></i> <i class="fas fa-heart" style="color: red;"></i> <i class="fas fa-leaf" style="color: green;"></i>
164
+
165
+ ## 动画
166
+
167
+ ### Font Awesome
168
+
169
+ ```html
170
+ <i class="fas fa-spinner fa-spin"></i>
171
+ <i class="fas fa-circle-notch fa-spin"></i>
172
+ <i class="fas fa-sync fa-spin"></i>
173
+ ```
174
+
175
+ <i class="fas fa-spinner fa-spin"></i> <i class="fas fa-circle-notch fa-spin"></i> <i class="fas fa-sync fa-spin"></i>
176
+
177
+ ## 常见用例
178
+
179
+ ### 在文本中使用
180
+
181
+ 将图标与文本内联使用:
182
+
183
+ ```markdown
184
+ <i class="fas fa-check" style="color: green;"></i> 任务已完成
185
+
186
+ <i class="fas fa-times" style="color: red;"></i> 任务失败
187
+
188
+ <i class="fas fa-info-circle" style="color: blue;"></i> 信息
189
+ ```
190
+
191
+ <i class="fas fa-check" style="color: green;"></i> 任务已完成
192
+
193
+ <i class="fas fa-times" style="color: red;"></i> 任务失败
194
+
195
+ <i class="fas fa-info-circle" style="color: blue;"></i> 信息
196
+
197
+ ### 在列表中使用
198
+
199
+ ```markdown
200
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> 功能 A
201
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> 功能 B
202
+ - <i class="ri-close-circle-fill" style="color: red;"></i> 不支持
203
+ ```
204
+
205
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> 功能 A
206
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> 功能 B
207
+ - <i class="ri-close-circle-fill" style="color: red;"></i> 不支持
208
+
209
+ ## 图标搜索
210
+
211
+ 在这些网站查找图标:
212
+ - [Font Awesome](https://fontawesome.com/icons)
213
+ - [Material Icons](https://fonts.google.com/icons)
214
+ - [Remix Icon](https://remixicon.com/)
215
+ - [Bootstrap Icons](https://icons.getbootstrap.com/)
216
+ - [Ionicons](https://ionic.io/ionicons)
217
+
218
+ ::: tip 选择图标
219
+ 1. **保持一致** - 大部分图标使用同一个库
220
+ 2. **匹配风格** - 轮廓 vs 实心,细线 vs 粗线
221
+ 3. **考虑含义** - 图标应该直观易懂
222
+ 4. **不要过度使用** - 图标应该增强而不是杂乱
223
+ :::
224
+
225
+ ---
226
+
227
+ 下一步:[幻灯片](./08-slides) 创建交互式演示文稿。
228
+
229
+ 或继续阅读 [配置](../03.config/) 自定义你的博客。