@jet-w/astro-blog 0.1.6 → 0.2.1

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 (122) hide show
  1. package/dist/chunk-6D3XRDNY.js +145 -0
  2. package/dist/chunk-A2E2VSAQ.js +246 -0
  3. package/dist/{chunk-GYLSY3OJ.js → chunk-TJTPX2WP.js} +1 -1
  4. package/dist/config/index.d.ts +3 -47
  5. package/dist/config/index.js +18 -2
  6. package/dist/i18n-PgMCFBw0.d.ts +222 -0
  7. package/dist/index.d.ts +204 -7
  8. package/dist/index.js +255 -3
  9. package/dist/integration.d.ts +9 -1
  10. package/dist/integration.js +2 -1
  11. package/dist/{sidebar-DNdiCKBw.d.ts → sidebar-Da-W_4Lr.d.ts} +1 -1
  12. package/dist/utils/sidebar.d.ts +1 -1
  13. package/package.json +1 -1
  14. package/src/components/blog/FloatingToc.vue +11 -3
  15. package/src/components/blog/Hero.astro +17 -2
  16. package/src/components/blog/NavigationTabs.vue +46 -15
  17. package/src/components/blog/PostCard.astro +28 -10
  18. package/src/components/blog/RelatedPosts.astro +23 -7
  19. package/src/components/blog/TableOfContents.astro +10 -4
  20. package/src/components/blog/TagCloud.astro +4 -3
  21. package/src/components/home/FeaturedPostsSection.astro +22 -6
  22. package/src/components/home/QuickNavSection.astro +33 -4
  23. package/src/components/home/RecentPostsSection.astro +22 -6
  24. package/src/components/home/StatsSection.astro +24 -6
  25. package/src/components/layout/Footer.astro +36 -20
  26. package/src/components/layout/Header.astro +75 -17
  27. package/src/components/layout/Sidebar.astro +40 -25
  28. package/src/components/ui/LanguageSwitcher.vue +183 -0
  29. package/src/components/ui/SearchBox.vue +13 -5
  30. package/src/components/ui/SearchInterface.vue +49 -25
  31. package/src/layouts/BaseLayout.astro +77 -52
  32. package/src/layouts/PageLayout.astro +22 -27
  33. package/src/layouts/SlidesLayout.astro +14 -2
  34. package/src/pages/archives/[year]/[month].astro +36 -17
  35. package/src/pages/archives/index.astro +36 -20
  36. package/src/pages/categories/[category].astro +33 -16
  37. package/src/pages/categories/index.astro +37 -14
  38. package/src/pages/posts/[...slug].astro +125 -18
  39. package/src/pages/posts/index.astro +59 -37
  40. package/src/pages/posts/page/[page].astro +65 -27
  41. package/src/pages/rss.xml.ts +18 -6
  42. package/src/pages/search.astro +50 -14
  43. package/src/pages/slides/index.astro +25 -6
  44. package/src/pages/tags/[tag].astro +32 -15
  45. package/src/pages/tags/index.astro +39 -16
  46. package/src/plugins/remark-containers.mjs +351 -322
  47. package/src/plugins/remark-protect-code.mjs +69 -0
  48. package/src/styles/global.css +35 -1
  49. package/templates/default/.claude/ralph-loop.local.md +48 -0
  50. package/templates/default/astro.config.mjs +33 -4
  51. package/templates/default/content/posts/blog_docs_en/01.get-started/01-intro.md +81 -0
  52. package/templates/default/content/posts/blog_docs_en/01.get-started/02-install.md +137 -0
  53. package/templates/default/content/posts/blog_docs_en/01.get-started/03-create-post.md +176 -0
  54. package/templates/default/content/posts/blog_docs_en/01.get-started/04-structure.md +173 -0
  55. package/templates/default/content/posts/blog_docs_en/01.get-started/05-deploy.md +208 -0
  56. package/templates/default/content/posts/blog_docs_en/01.get-started/README.md +52 -0
  57. package/templates/default/content/posts/blog_docs_en/02.guide/02-containers.md +245 -0
  58. package/templates/default/content/posts/blog_docs_en/02.guide/03-code-blocks.md +207 -0
  59. package/templates/default/content/posts/blog_docs_en/02.guide/03-mermaid.md +194 -0
  60. package/templates/default/content/posts/blog_docs_en/02.guide/04-icons.md +229 -0
  61. package/templates/default/content/posts/blog_docs_en/02.guide/06-latex.md +233 -0
  62. package/templates/default/content/posts/blog_docs_en/02.guide/07-video.md +184 -0
  63. package/templates/default/content/posts/blog_docs_en/02.guide/08-slides.md +359 -0
  64. package/templates/default/content/posts/blog_docs_en/02.guide/README.md +213 -0
  65. package/templates/default/content/posts/blog_docs_en/03.config/01-site.md +208 -0
  66. package/templates/default/content/posts/blog_docs_en/03.config/02-sidebar.md +240 -0
  67. package/templates/default/content/posts/blog_docs_en/03.config/03-i18n.md +349 -0
  68. package/templates/default/content/posts/blog_docs_en/03.config/README.md +85 -0
  69. package/templates/default/content/posts/blog_docs_en/README.md +79 -0
  70. package/templates/default/content/posts/blog_docs_zh/01.get-started/01-intro.md +81 -0
  71. package/templates/default/content/posts/blog_docs_zh/01.get-started/02-install.md +137 -0
  72. package/templates/default/content/posts/blog_docs_zh/01.get-started/03-create-post.md +176 -0
  73. package/templates/default/content/posts/blog_docs_zh/01.get-started/04-structure.md +173 -0
  74. package/templates/default/content/posts/blog_docs_zh/01.get-started/05-deploy.md +208 -0
  75. package/templates/default/content/posts/blog_docs_zh/01.get-started/README.md +52 -0
  76. package/templates/default/content/posts/blog_docs_zh/02.guide/02-containers.md +245 -0
  77. package/templates/default/content/posts/blog_docs_zh/02.guide/03-code-blocks.md +206 -0
  78. package/templates/default/content/posts/blog_docs_zh/02.guide/03-mermaid.md +194 -0
  79. package/templates/default/content/posts/blog_docs_zh/02.guide/04-icons.md +229 -0
  80. package/templates/default/content/posts/blog_docs_zh/02.guide/06-latex.md +233 -0
  81. package/templates/default/content/posts/blog_docs_zh/02.guide/07-video.md +184 -0
  82. package/templates/default/content/posts/blog_docs_zh/02.guide/08-slides.md +359 -0
  83. package/templates/default/content/posts/blog_docs_zh/02.guide/README.md +213 -0
  84. package/templates/default/content/posts/blog_docs_zh/03.config/01-site.md +208 -0
  85. package/templates/default/content/posts/blog_docs_zh/03.config/02-sidebar.md +240 -0
  86. package/templates/default/content/posts/blog_docs_zh/03.config/03-i18n.md +348 -0
  87. package/templates/default/content/posts/blog_docs_zh/03.config/README.md +85 -0
  88. package/templates/default/content/posts/blog_docs_zh/README.md +78 -0
  89. package/templates/default/package-lock.json +9667 -0
  90. package/templates/default/package.json +1 -1
  91. package/templates/default/src/config/footer.ts +14 -11
  92. package/templates/default/src/config/locales/en/footer.ts +17 -0
  93. package/templates/default/src/config/locales/en/index.ts +20 -0
  94. package/templates/default/src/config/locales/en/menu.ts +14 -0
  95. package/templates/default/src/config/locales/en/sidebar.ts +34 -0
  96. package/templates/default/src/config/locales/en/site.ts +7 -0
  97. package/templates/default/src/config/locales/en/ui.ts +29 -0
  98. package/templates/default/src/config/locales/index.ts +7 -0
  99. package/templates/default/src/config/locales/zh-CN/footer.ts +17 -0
  100. package/templates/default/src/config/locales/zh-CN/index.ts +20 -0
  101. package/templates/default/src/config/locales/zh-CN/menu.ts +14 -0
  102. package/templates/default/src/config/locales/zh-CN/sidebar.ts +34 -0
  103. package/templates/default/src/config/locales/zh-CN/site.ts +7 -0
  104. package/templates/default/src/config/locales/zh-CN/ui.ts +29 -0
  105. package/templates/default/src/config/sidebar.ts +10 -12
  106. package/templates/default/src/config/site.ts +2 -2
  107. package/templates/default/src/content.config.ts +15 -3
  108. package/templates/default/src/env.d.ts +7 -0
  109. package/dist/chunk-MQXPSOYB.js +0 -124
  110. package/templates/default/content/posts/blog_docs/01-quick-start.md +0 -162
  111. package/templates/default/content/posts/blog_docs/02-frontmatter.md +0 -277
  112. package/templates/default/content/posts/blog_docs/03-markdown-basic.md +0 -350
  113. package/templates/default/content/posts/blog_docs/04-containers.md +0 -331
  114. package/templates/default/content/posts/blog_docs/05-code-blocks.md +0 -388
  115. package/templates/default/content/posts/blog_docs/06-mermaid.md +0 -431
  116. package/templates/default/content/posts/blog_docs/07-video.md +0 -243
  117. package/templates/default/content/posts/blog_docs/08-latex.md +0 -382
  118. package/templates/default/content/posts/blog_docs/09-icons.md +0 -326
  119. package/templates/default/content/posts/blog_docs/10-sidebar.md +0 -445
  120. package/templates/default/content/posts/blog_docs/11-config.md +0 -334
  121. package/templates/default/content/posts/blog_docs/12-slides.mdx +0 -552
  122. package/templates/default/content/posts/blog_docs/README.md +0 -151
@@ -0,0 +1,207 @@
1
+ ---
2
+ title: Code Blocks
3
+ description: Syntax highlighting, line numbers, and code display features
4
+ pubDate: 2025-01-01
5
+ author: jet-w
6
+ categories:
7
+ - Documentation
8
+ tags:
9
+ - Markdown
10
+ - Code
11
+ ---
12
+
13
+ # Code Blocks
14
+
15
+ Display code with beautiful syntax highlighting powered by Shiki.
16
+
17
+ ## Basic Code Blocks
18
+
19
+ Wrap code in triple backticks:
20
+
21
+ ````markdown
22
+ ```
23
+ Plain text code block
24
+ ```
25
+ ````
26
+
27
+ ## Syntax Highlighting
28
+
29
+ Specify the language after the backticks:
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
+ ## Supported Languages
46
+
47
+ Over 100 languages are supported:
48
+
49
+ | Language | Identifier |
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
+ ## Language Examples
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
+ # Install dependencies
125
+ npm install
126
+
127
+ # Build project
128
+ npm run build
129
+
130
+ # Deploy
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
+ ## Inline Code
148
+
149
+ Use single backticks for inline code:
150
+
151
+ ```markdown
152
+ Use `npm install` to install dependencies.
153
+ ```
154
+
155
+ Use `npm install` to install dependencies.
156
+
157
+ ## Code Block Features
158
+
159
+ ### Copy Button
160
+
161
+ All code blocks have a copy button that appears on hover.
162
+
163
+ ### Language Label
164
+
165
+ The language name is displayed in the header.
166
+
167
+ ### Collapsible Code
168
+
169
+ Long code blocks (15+ lines) are automatically collapsed with an "Expand" button.
170
+
171
+ ::: tip Try It
172
+ Scroll up to see the expand/collapse feature on longer code blocks.
173
+ :::
174
+
175
+ ## Code in Containers
176
+
177
+ Code works inside containers:
178
+
179
+ ::: tip Example
180
+ ```javascript
181
+ // This code is inside a tip container
182
+ console.log('Hello from a container!');
183
+ ```
184
+ :::
185
+
186
+ ## Diff Syntax
187
+
188
+ Show code changes:
189
+
190
+ ```diff
191
+ - const old = 'before';
192
+ + const new = 'after';
193
+ ```
194
+
195
+ ## Best Practices
196
+
197
+ ::: info Code Block Tips
198
+ 1. **Always specify the language** for proper highlighting
199
+ 2. **Keep examples focused** - show only relevant code
200
+ 3. **Add comments** to explain complex logic
201
+ 4. **Test your code** - ensure examples actually work
202
+
203
+ :::
204
+
205
+ ---
206
+
207
+ Continue to advanced features: [Mermaid Diagrams](../features/01-mermaid).
@@ -0,0 +1,194 @@
1
+ ---
2
+ title: Mermaid Diagrams
3
+ description: Create flowcharts, sequence diagrams, and more with Mermaid
4
+ pubDate: 2025-01-01
5
+ author: jet-w
6
+ categories:
7
+ - Documentation
8
+ tags:
9
+ - Mermaid
10
+ - Diagrams
11
+ ---
12
+
13
+ # Mermaid Diagrams
14
+
15
+ Create beautiful diagrams directly in Markdown using [Mermaid](https://mermaid.js.org).
16
+
17
+ ## Basic Syntax
18
+
19
+ Use a code block with `mermaid` language:
20
+
21
+ ````markdown
22
+ ```mermaid
23
+ graph TD
24
+ A[Start] --> B[End]
25
+ ```
26
+ ````
27
+
28
+ ## Flowchart
29
+
30
+ ### Basic Flow
31
+
32
+ ```mermaid
33
+ graph TD
34
+ A[Start] --> B{Decision}
35
+ B -->|Yes| C[Do Something]
36
+ B -->|No| D[Do Something Else]
37
+ C --> E[End]
38
+ D --> E
39
+ ```
40
+
41
+ ### Left to Right
42
+
43
+ ```mermaid
44
+ graph LR
45
+ A[Input] --> B[Process]
46
+ B --> C[Output]
47
+ ```
48
+
49
+ ### Node Shapes
50
+
51
+ ```mermaid
52
+ graph TD
53
+ A[Rectangle]
54
+ B(Rounded)
55
+ C([Stadium])
56
+ D[[Subroutine]]
57
+ E[(Database)]
58
+ F((Circle))
59
+ G{Diamond}
60
+ H{{Hexagon}}
61
+ ```
62
+
63
+ ## Sequence Diagram
64
+
65
+ ```mermaid
66
+ sequenceDiagram
67
+ participant User
68
+ participant Browser
69
+ participant Server
70
+ participant Database
71
+
72
+ User->>Browser: Enter URL
73
+ Browser->>Server: HTTP Request
74
+ Server->>Database: Query Data
75
+ Database-->>Server: Return Data
76
+ Server-->>Browser: HTTP Response
77
+ Browser-->>User: Display Page
78
+ ```
79
+
80
+ ## Class Diagram
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
+ ## State Diagram
102
+
103
+ ```mermaid
104
+ stateDiagram-v2
105
+ [*] --> Draft
106
+ Draft --> Review
107
+ Review --> Draft: Changes needed
108
+ Review --> Published
109
+ Published --> Archived
110
+ Archived --> [*]
111
+ ```
112
+
113
+ ## Gantt Chart
114
+
115
+ ```mermaid
116
+ gantt
117
+ title Project Timeline
118
+ dateFormat YYYY-MM-DD
119
+ section Planning
120
+ Requirements :a1, 2025-01-01, 7d
121
+ Design :a2, after a1, 5d
122
+ section Development
123
+ Backend :b1, after a2, 14d
124
+ Frontend :b2, after a2, 14d
125
+ section Testing
126
+ Testing :c1, after b1, 7d
127
+ Deployment :c2, after c1, 3d
128
+ ```
129
+
130
+ ## Pie Chart
131
+
132
+ ```mermaid
133
+ pie title Language Usage
134
+ "JavaScript" : 45
135
+ "TypeScript" : 30
136
+ "Python" : 15
137
+ "Other" : 10
138
+ ```
139
+
140
+ ## Entity Relationship
141
+
142
+ ```mermaid
143
+ erDiagram
144
+ USER ||--o{ POST : writes
145
+ USER ||--o{ COMMENT : writes
146
+ POST ||--o{ COMMENT : has
147
+ POST }|--|| CATEGORY : belongs_to
148
+ ```
149
+
150
+ ## Git Graph
151
+
152
+ ```mermaid
153
+ gitGraph
154
+ commit id: "Initial"
155
+ branch develop
156
+ checkout develop
157
+ commit id: "Feature A"
158
+ commit id: "Feature B"
159
+ checkout main
160
+ merge develop
161
+ commit id: "Release"
162
+ ```
163
+
164
+ ## Styling
165
+
166
+ ### Custom Colors
167
+
168
+ ```mermaid
169
+ graph TD
170
+ A[Start]:::green --> B{Check}:::yellow
171
+ B -->|Pass| C[Success]:::green
172
+ B -->|Fail| D[Error]:::red
173
+
174
+ classDef green fill:#90EE90
175
+ classDef yellow fill:#FFE4B5
176
+ classDef red fill:#FFB6C1
177
+ ```
178
+
179
+ ## Tips
180
+
181
+ ::: tip Best Practices
182
+ 1. **Keep it simple** - Complex diagrams become hard to read
183
+ 2. **Use meaningful labels** - Clear text improves understanding
184
+ 3. **Choose the right type** - Match diagram to your content
185
+ 4. **Test rendering** - Preview before publishing
186
+ :::
187
+
188
+ ::: info Learn More
189
+ Full documentation: [mermaid.js.org](https://mermaid.js.org/syntax/flowchart.html)
190
+ :::
191
+
192
+ ---
193
+
194
+ Next: [LaTeX Math](./02-latex) for mathematical formulas.
@@ -0,0 +1,229 @@
1
+ ---
2
+ title: Icons
3
+ description: Use icons from Font Awesome, Material, Remix, and Bootstrap
4
+ pubDate: 2025-01-01
5
+ author: jet-w
6
+ categories:
7
+ - Documentation
8
+ tags:
9
+ - Icons
10
+ - Design
11
+ ---
12
+
13
+ # Icons
14
+
15
+ Add visual elements with icons from multiple popular libraries.
16
+
17
+ ## Available Libraries
18
+
19
+ | Library | Prefix | Icons |
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
+ ### Solid Icons
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
+ ### Regular Icons
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
+ ### Brand Icons
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
+ ### Outlined Style
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
+ ### Rounded Style
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
+ ### Common Icons
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
+ ## Sizing
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 Sizing
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
+ ## Coloring
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
+ ## Animation
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
+ ## Common Use Cases
178
+
179
+ ### In Text
180
+
181
+ Use icons inline with text:
182
+
183
+ ```markdown
184
+ <i class="fas fa-check" style="color: green;"></i> Task completed
185
+
186
+ <i class="fas fa-times" style="color: red;"></i> Task failed
187
+
188
+ <i class="fas fa-info-circle" style="color: blue;"></i> Information
189
+ ```
190
+
191
+ <i class="fas fa-check" style="color: green;"></i> Task completed
192
+
193
+ <i class="fas fa-times" style="color: red;"></i> Task failed
194
+
195
+ <i class="fas fa-info-circle" style="color: blue;"></i> Information
196
+
197
+ ### In Lists
198
+
199
+ ```markdown
200
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> Feature A
201
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> Feature B
202
+ - <i class="ri-close-circle-fill" style="color: red;"></i> Not supported
203
+ ```
204
+
205
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> Feature A
206
+ - <i class="ri-checkbox-circle-fill" style="color: green;"></i> Feature B
207
+ - <i class="ri-close-circle-fill" style="color: red;"></i> Not supported
208
+
209
+ ## Icon Search
210
+
211
+ Find icons at:
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 Choosing Icons
219
+ 1. **Stay consistent** - Pick one library for most icons
220
+ 2. **Match your style** - Outlined vs filled, thin vs bold
221
+ 3. **Consider meaning** - Icons should be intuitive
222
+ 4. **Don't overuse** - Icons should enhance, not clutter
223
+ :::
224
+
225
+ ---
226
+
227
+ Next: [Slides](./05-slides) to create interactive presentations.
228
+
229
+ Or continue to [Configuration](../../config/) to customize your blog.