@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.
- package/dist/chunk-6D3XRDNY.js +145 -0
- package/dist/chunk-A2E2VSAQ.js +246 -0
- package/dist/{chunk-GYLSY3OJ.js → chunk-TJTPX2WP.js} +1 -1
- package/dist/config/index.d.ts +3 -47
- package/dist/config/index.js +18 -2
- package/dist/i18n-PgMCFBw0.d.ts +222 -0
- package/dist/index.d.ts +204 -7
- package/dist/index.js +255 -3
- package/dist/integration.d.ts +9 -1
- package/dist/integration.js +2 -1
- package/dist/{sidebar-DNdiCKBw.d.ts → sidebar-Da-W_4Lr.d.ts} +1 -1
- package/dist/utils/sidebar.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/blog/FloatingToc.vue +11 -3
- package/src/components/blog/Hero.astro +17 -2
- package/src/components/blog/NavigationTabs.vue +46 -15
- package/src/components/blog/PostCard.astro +28 -10
- package/src/components/blog/RelatedPosts.astro +23 -7
- package/src/components/blog/TableOfContents.astro +10 -4
- package/src/components/blog/TagCloud.astro +4 -3
- package/src/components/home/FeaturedPostsSection.astro +22 -6
- package/src/components/home/QuickNavSection.astro +33 -4
- package/src/components/home/RecentPostsSection.astro +22 -6
- package/src/components/home/StatsSection.astro +24 -6
- package/src/components/layout/Footer.astro +36 -20
- package/src/components/layout/Header.astro +75 -17
- package/src/components/layout/Sidebar.astro +40 -25
- package/src/components/ui/LanguageSwitcher.vue +183 -0
- package/src/components/ui/SearchBox.vue +13 -5
- package/src/components/ui/SearchInterface.vue +49 -25
- package/src/layouts/BaseLayout.astro +77 -52
- package/src/layouts/PageLayout.astro +22 -27
- package/src/layouts/SlidesLayout.astro +14 -2
- package/src/pages/archives/[year]/[month].astro +36 -17
- package/src/pages/archives/index.astro +36 -20
- package/src/pages/categories/[category].astro +33 -16
- package/src/pages/categories/index.astro +37 -14
- package/src/pages/posts/[...slug].astro +125 -18
- package/src/pages/posts/index.astro +59 -37
- package/src/pages/posts/page/[page].astro +65 -27
- package/src/pages/rss.xml.ts +18 -6
- package/src/pages/search.astro +50 -14
- package/src/pages/slides/index.astro +25 -6
- package/src/pages/tags/[tag].astro +32 -15
- package/src/pages/tags/index.astro +39 -16
- package/src/plugins/remark-containers.mjs +351 -322
- package/src/plugins/remark-protect-code.mjs +69 -0
- package/src/styles/global.css +35 -1
- package/templates/default/.claude/ralph-loop.local.md +48 -0
- package/templates/default/astro.config.mjs +33 -4
- package/templates/default/content/posts/blog_docs_en/01.get-started/01-intro.md +81 -0
- package/templates/default/content/posts/blog_docs_en/01.get-started/02-install.md +137 -0
- package/templates/default/content/posts/blog_docs_en/01.get-started/03-create-post.md +176 -0
- package/templates/default/content/posts/blog_docs_en/01.get-started/04-structure.md +173 -0
- package/templates/default/content/posts/blog_docs_en/01.get-started/05-deploy.md +208 -0
- package/templates/default/content/posts/blog_docs_en/01.get-started/README.md +52 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/02-containers.md +245 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/03-code-blocks.md +207 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/03-mermaid.md +194 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/04-icons.md +229 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/06-latex.md +233 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/07-video.md +184 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/08-slides.md +359 -0
- package/templates/default/content/posts/blog_docs_en/02.guide/README.md +213 -0
- package/templates/default/content/posts/blog_docs_en/03.config/01-site.md +208 -0
- package/templates/default/content/posts/blog_docs_en/03.config/02-sidebar.md +240 -0
- package/templates/default/content/posts/blog_docs_en/03.config/03-i18n.md +349 -0
- package/templates/default/content/posts/blog_docs_en/03.config/README.md +85 -0
- package/templates/default/content/posts/blog_docs_en/README.md +79 -0
- package/templates/default/content/posts/blog_docs_zh/01.get-started/01-intro.md +81 -0
- package/templates/default/content/posts/blog_docs_zh/01.get-started/02-install.md +137 -0
- package/templates/default/content/posts/blog_docs_zh/01.get-started/03-create-post.md +176 -0
- package/templates/default/content/posts/blog_docs_zh/01.get-started/04-structure.md +173 -0
- package/templates/default/content/posts/blog_docs_zh/01.get-started/05-deploy.md +208 -0
- package/templates/default/content/posts/blog_docs_zh/01.get-started/README.md +52 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/02-containers.md +245 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/03-code-blocks.md +206 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/03-mermaid.md +194 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/04-icons.md +229 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/06-latex.md +233 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/07-video.md +184 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/08-slides.md +359 -0
- package/templates/default/content/posts/blog_docs_zh/02.guide/README.md +213 -0
- package/templates/default/content/posts/blog_docs_zh/03.config/01-site.md +208 -0
- package/templates/default/content/posts/blog_docs_zh/03.config/02-sidebar.md +240 -0
- package/templates/default/content/posts/blog_docs_zh/03.config/03-i18n.md +348 -0
- package/templates/default/content/posts/blog_docs_zh/03.config/README.md +85 -0
- package/templates/default/content/posts/blog_docs_zh/README.md +78 -0
- package/templates/default/package-lock.json +9667 -0
- package/templates/default/package.json +1 -1
- package/templates/default/src/config/footer.ts +14 -11
- package/templates/default/src/config/locales/en/footer.ts +17 -0
- package/templates/default/src/config/locales/en/index.ts +20 -0
- package/templates/default/src/config/locales/en/menu.ts +14 -0
- package/templates/default/src/config/locales/en/sidebar.ts +34 -0
- package/templates/default/src/config/locales/en/site.ts +7 -0
- package/templates/default/src/config/locales/en/ui.ts +29 -0
- package/templates/default/src/config/locales/index.ts +7 -0
- package/templates/default/src/config/locales/zh-CN/footer.ts +17 -0
- package/templates/default/src/config/locales/zh-CN/index.ts +20 -0
- package/templates/default/src/config/locales/zh-CN/menu.ts +14 -0
- package/templates/default/src/config/locales/zh-CN/sidebar.ts +34 -0
- package/templates/default/src/config/locales/zh-CN/site.ts +7 -0
- package/templates/default/src/config/locales/zh-CN/ui.ts +29 -0
- package/templates/default/src/config/sidebar.ts +10 -12
- package/templates/default/src/config/site.ts +2 -2
- package/templates/default/src/content.config.ts +15 -3
- package/templates/default/src/env.d.ts +7 -0
- package/dist/chunk-MQXPSOYB.js +0 -124
- package/templates/default/content/posts/blog_docs/01-quick-start.md +0 -162
- package/templates/default/content/posts/blog_docs/02-frontmatter.md +0 -277
- package/templates/default/content/posts/blog_docs/03-markdown-basic.md +0 -350
- package/templates/default/content/posts/blog_docs/04-containers.md +0 -331
- package/templates/default/content/posts/blog_docs/05-code-blocks.md +0 -388
- package/templates/default/content/posts/blog_docs/06-mermaid.md +0 -431
- package/templates/default/content/posts/blog_docs/07-video.md +0 -243
- package/templates/default/content/posts/blog_docs/08-latex.md +0 -382
- package/templates/default/content/posts/blog_docs/09-icons.md +0 -326
- package/templates/default/content/posts/blog_docs/10-sidebar.md +0 -445
- package/templates/default/content/posts/blog_docs/11-config.md +0 -334
- package/templates/default/content/posts/blog_docs/12-slides.mdx +0 -552
- 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.
|