@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
@@ -1,162 +0,0 @@
1
- ---
2
- title: 快速开始
3
- description: 5分钟创建你的第一篇博客文章
4
- pubDate: 2025-12-11
5
- author: Astro Blog
6
- categories:
7
- - 博客教程
8
- tags:
9
- - 入门
10
- - 教程
11
- ---
12
-
13
- # 快速开始
14
-
15
- 本章将带你快速上手博客系统,从安装到发布第一篇文章。
16
-
17
- ## 环境准备
18
-
19
- 确保已安装以下工具:
20
-
21
- - **Node.js** 18.x 或更高版本
22
- - **npm** 或 **pnpm** 包管理器
23
-
24
- ```bash
25
- # 检查 Node.js 版本
26
- node --version
27
-
28
- # 检查 npm 版本
29
- npm --version
30
- ```
31
-
32
- ## 安装与运行
33
-
34
- ```bash
35
- # 安装依赖
36
- npm install
37
-
38
- # 启动开发服务器
39
- npm run dev
40
- ```
41
-
42
- 开发服务器启动后,访问 `http://localhost:4321` 即可预览博客。
43
-
44
- ::: tip 热更新
45
- 开发模式下修改文件会自动刷新页面,无需手动重启服务器。
46
- :::
47
-
48
- ## 目录结构
49
-
50
- ```
51
- content/posts/
52
- ├── blog_docs/ # 博客文档
53
- ├── tech/ # 技术文章
54
- │ ├── README.md # 目录首页
55
- │ └── article.md # 具体文章
56
- └── my-first-post.md # 根目录文章
57
- ```
58
-
59
- ::: note 目录组织
60
- - 相关主题文章放在同一目录
61
- - 每个目录可添加 `README.md` 作为首页
62
- - 访问目录路径会自动展示 README 内容
63
- :::
64
-
65
- ## 创建第一篇文章
66
-
67
- 在 `content/posts/` 目录下创建 `hello-world.md`:
68
-
69
- ```markdown
70
- ---
71
- title: Hello World
72
- description: 我的第一篇博客文章
73
- pubDate: 2025-01-01
74
- author: 你的名字
75
- tags:
76
- - 入门
77
- categories:
78
- - 随笔
79
- ---
80
-
81
- # Hello World
82
-
83
- 欢迎来到我的博客!
84
-
85
- ## 为什么开始写博客
86
-
87
- 写博客可以帮助我:
88
-
89
- 1. 整理和巩固知识
90
- 2. 分享经验和见解
91
- 3. 记录成长过程
92
-
93
- > 千里之行,始于足下。
94
- ```
95
-
96
- 保存后,访问 `http://localhost:4321/posts/hello-world` 即可查看。
97
-
98
- ## Frontmatter 基础
99
-
100
- 文章开头 `---` 之间的部分是 Frontmatter(元数据):
101
-
102
- ```yaml
103
- ---
104
- title: 文章标题 # 必填
105
- description: 文章描述 # 推荐,用于 SEO 和列表展示
106
- pubDate: 2025-01-01 # 推荐,发布日期
107
- author: 作者名 # 可选
108
- tags: # 可选,标签列表
109
- - 标签1
110
- - 标签2
111
- categories: # 可选,分类列表
112
- - 分类名
113
- draft: false # 可选,草稿状态
114
- star: false # 可选,星标/置顶
115
- ---
116
- ```
117
-
118
- ::: info 日期字段
119
- 支持 `pubDate` 和 `date` 两种写法,系统会自动识别。
120
- :::
121
-
122
- ## 添加图片
123
-
124
- 将图片放入 `public/images/` 目录,然后在文章中引用:
125
-
126
- ```markdown
127
- ![图片描述](/images/my-image.png)
128
- ```
129
-
130
- ## 构建部署
131
-
132
- ```bash
133
- # 构建生产版本
134
- npm run build
135
-
136
- # 本地预览构建结果
137
- npm run preview
138
- ```
139
-
140
- 构建产物在 `dist/` 目录,可部署到任何静态托管服务。
141
-
142
- ## 常见问题
143
-
144
- ### 文章不显示?
145
-
146
- 检查以下几点:
147
-
148
- 1. Frontmatter 格式正确(`---` 标记完整)
149
- 2. `title` 字段存在且非空
150
- 3. `draft` 不是 `true`
151
-
152
- ### URL 路径规则
153
-
154
- - 文件路径决定 URL:`content/posts/tech/intro.md` → `/posts/tech/intro`
155
- - 路径自动转小写
156
- - `README.md` 对应目录路径:`content/posts/tech/README.md` → `/posts/tech`
157
-
158
- ## 下一步
159
-
160
- - [Frontmatter 配置](./02-frontmatter) - 了解所有配置项
161
- - [Markdown 基础](./03-markdown-basic) - 复习 Markdown 语法
162
- - [容器语法](./04-containers) - 使用提示框等组件
@@ -1,277 +0,0 @@
1
- ---
2
- title: Frontmatter 配置
3
- description: 文章元数据配置完整指南
4
- pubDate: 2025-12-11
5
- author: Astro Blog
6
- categories:
7
- - 博客教程
8
- tags:
9
- - 配置
10
- - Frontmatter
11
- ---
12
-
13
- # Frontmatter 配置
14
-
15
- Frontmatter 是文章开头 `---` 之间的 YAML 格式元数据,用于定义文章的标题、日期、标签等信息。
16
-
17
- ## 完整字段列表
18
-
19
- ```yaml
20
- ---
21
- # 基础字段(必填/推荐)
22
- title: 文章标题 # 必填
23
- description: 文章描述 # 推荐,用于 SEO 和列表展示
24
- pubDate: 2025-01-01 # 推荐,发布日期
25
-
26
- # 分类与标签
27
- tags: # 可选,标签列表
28
- - 标签1
29
- - 标签2
30
- categories: # 可选,分类列表
31
- - 分类名
32
-
33
- # 作者与来源
34
- author: 作者名 # 可选,默认使用站点配置
35
-
36
- # 显示控制
37
- image: /images/cover.jpg # 可选,封面图片
38
- icon: ri:article-line # 可选,侧边栏图标
39
- draft: false # 可选,草稿不会发布
40
- star: false # 可选,星标/推荐文章
41
- index: true # 可选,是否加入索引
42
-
43
- # 时间相关
44
- updatedDate: 2025-01-02 # 可选,最后更新日期
45
- ---
46
- ```
47
-
48
- ## 字段详解
49
-
50
- ### title(标题)
51
-
52
- **必填字段**,显示在页面、列表和 SEO 中。
53
-
54
- ```yaml
55
- title: 深入理解 JavaScript 闭包
56
- ```
57
-
58
- ::: warning 特殊字符
59
- 标题包含冒号、引号等特殊字符时,需用引号包裹:
60
- ```yaml
61
- title: "Vue 3: 新特性详解"
62
- ```
63
- :::
64
-
65
- ### description(描述)
66
-
67
- 用于 SEO 和文章列表展示,建议 50-160 字符。
68
-
69
- ```yaml
70
- description: 本文详细介绍 JavaScript 闭包的概念、原理和实际应用
71
- ```
72
-
73
- ### pubDate / date(发布日期)
74
-
75
- 系统同时支持 `pubDate` 和 `date` 两种写法:
76
-
77
- ```yaml
78
- pubDate: 2025-01-01
79
- # 或
80
- date: 2025-01-01
81
- ```
82
-
83
- 支持的格式:
84
-
85
- ```yaml
86
- pubDate: 2025-01-01 # 仅日期
87
- pubDate: 2025-01-01T10:30:00 # ISO 格式
88
- pubDate: 2025-01-01 10:30 # 简写格式
89
- ```
90
-
91
- ### tags(标签)
92
-
93
- 用于文章分类和标签云展示:
94
-
95
- ```yaml
96
- tags:
97
- - JavaScript
98
- - 前端
99
- - 教程
100
- ```
101
-
102
- 也支持行内数组格式:
103
-
104
- ```yaml
105
- tags: [JavaScript, 前端, 教程]
106
- ```
107
-
108
- ::: tip 标签建议
109
- - 3-5 个标签为宜
110
- - 使用有意义的关键词
111
- - 同类文章使用统一标签
112
- :::
113
-
114
- ### categories(分类)
115
-
116
- 宏观的内容分类,与标签不同:
117
-
118
- ```yaml
119
- categories:
120
- - 技术教程
121
- ```
122
-
123
- 系统同时支持 `categories` 和 `category` 两种写法,也支持单个字符串:
124
-
125
- ```yaml
126
- category: 技术教程
127
- # 等同于
128
- categories:
129
- - 技术教程
130
- ```
131
-
132
- ### author(作者)
133
-
134
- 文章作者,不填则使用站点配置中的默认作者:
135
-
136
- ```yaml
137
- author: 张三
138
- ```
139
-
140
- ### image(封面图)
141
-
142
- 文章封面图片,用于列表展示和社交分享:
143
-
144
- ```yaml
145
- image: /images/posts/my-cover.jpg
146
- ```
147
-
148
- 图片放置于 `public/images/` 目录。
149
-
150
- ### icon(图标)
151
-
152
- 侧边栏和列表中显示的图标,支持多种格式:
153
-
154
- ```yaml
155
- icon: ri:vue-line # Remix Icon
156
- icon: fa:code # Font Awesome
157
- icon: bi:terminal # Bootstrap Icons
158
- ```
159
-
160
- 详见 [图标系统](./09-icons)。
161
-
162
- ### draft(草稿)
163
-
164
- 设为 `true` 时文章不会发布:
165
-
166
- ```yaml
167
- draft: true
168
- ```
169
-
170
- 草稿文章:
171
- - 不在列表中显示
172
- - 不会构建到生产环境
173
- - 开发环境可通过 URL 直接访问预览
174
-
175
- ### star(星标)
176
-
177
- 标记推荐文章:
178
-
179
- ```yaml
180
- star: true
181
- ```
182
-
183
- 星标文章可用于首页精选展示。
184
-
185
- ### updatedDate(更新日期)
186
-
187
- 文章最后更新时间,显示在文章底部:
188
-
189
- ```yaml
190
- updatedDate: 2025-01-15
191
- ```
192
-
193
- ## 实际示例
194
-
195
- ### 技术教程
196
-
197
- ```yaml
198
- ---
199
- title: Vue 3 组合式 API 指南
200
- description: 全面掌握 Vue 3 Composition API
201
- pubDate: 2025-01-01
202
- updatedDate: 2025-01-10
203
- author: 张三
204
- tags:
205
- - Vue
206
- - Vue 3
207
- - 前端
208
- categories:
209
- - 技术教程
210
- image: /images/vue3-guide.jpg
211
- ---
212
- ```
213
-
214
- ### 系列文章首页
215
-
216
- ```yaml
217
- ---
218
- title: TypeScript 入门教程
219
- description: 从零开始学习 TypeScript
220
- pubDate: 2025-01-01
221
- categories:
222
- - 教程系列
223
- star: true
224
- ---
225
- ```
226
-
227
- ### 草稿文章
228
-
229
- ```yaml
230
- ---
231
- title: 正在撰写的文章
232
- pubDate: 2025-01-01
233
- draft: true
234
- ---
235
- ```
236
-
237
- ## 常见问题
238
-
239
- ### YAML 解析错误
240
-
241
- ```yaml
242
- # 错误:冒号后需要空格
243
- title:标题
244
-
245
- # 正确
246
- title: 标题
247
- ```
248
-
249
- ### 日期格式问题
250
-
251
- ```yaml
252
- # 错误
253
- date: 12-01-2025 # 格式不对
254
- date: 2025/01/01 # 斜杠不支持
255
-
256
- # 正确
257
- date: 2025-01-01 # YYYY-MM-DD
258
- ```
259
-
260
- ### 列表格式问题
261
-
262
- ```yaml
263
- # 错误
264
- tags: JavaScript, Vue # 逗号分隔不行
265
-
266
- # 正确
267
- tags:
268
- - JavaScript
269
- - Vue
270
- # 或
271
- tags: [JavaScript, Vue]
272
- ```
273
-
274
- ## 下一步
275
-
276
- - [Markdown 基础](./03-markdown-basic) - 学习文章内容写作
277
- - [图标系统](./09-icons) - 了解 icon 字段的使用