hexo-theme-stellar 1.44.0 → 2.0.0-rc.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 (377) hide show
  1. package/CHANGELOG.md +63 -5
  2. package/CONTRIBUTING.md +29 -120
  3. package/README.md +66 -73
  4. package/README_EN.md +66 -73
  5. package/_config.yml +890 -743
  6. package/_data/icons.yml +43 -171
  7. package/_data/widgets.yml +1 -1
  8. package/assets/icon-v2-x512.webp +0 -0
  9. package/languages/en.yml +59 -2
  10. package/languages/zh-CN.yml +59 -2
  11. package/languages/zh-TW.yml +59 -2
  12. package/layout/404.ejs +7 -4
  13. package/layout/_partial/comments/artalk/layout.ejs +3 -2
  14. package/layout/_partial/comments/beaudar/layout.ejs +2 -2
  15. package/layout/_partial/comments/giscus/layout.ejs +2 -5
  16. package/layout/_partial/comments/layout.ejs +11 -40
  17. package/layout/_partial/comments/twikoo/layout.ejs +3 -2
  18. package/layout/_partial/comments/utterances/layout.ejs +2 -2
  19. package/layout/_partial/comments/waline/layout.ejs +3 -2
  20. package/layout/_partial/components/collection-item.ejs +30 -13
  21. package/layout/_partial/components/collection.ejs +2 -2
  22. package/layout/_partial/cover/index.ejs +5 -2
  23. package/layout/_partial/cover/wiki_cover.ejs +39 -28
  24. package/layout/_partial/dropdown.ejs +26 -14
  25. package/layout/_partial/head.ejs +96 -69
  26. package/layout/_partial/main/article/contributors.ejs +12 -9
  27. package/layout/_partial/main/article/post_footer.ejs +47 -0
  28. package/layout/_partial/main/article/post_read_next.ejs +22 -0
  29. package/layout/_partial/main/article/post_related.ejs +14 -0
  30. package/layout/_partial/main/article/post_tags.ejs +12 -0
  31. package/layout/_partial/main/article/share.ejs +55 -0
  32. package/layout/_partial/main/footer.ejs +11 -10
  33. package/layout/_partial/main/{navbar/nav_tabs_blog.ejs → listing_nav/blog.ejs} +21 -18
  34. package/layout/_partial/main/listing_nav/wiki.ejs +56 -0
  35. package/layout/_partial/main/navbar/article_banner.ejs +39 -35
  36. package/layout/_partial/main/navbar/breadcrumb/blog.ejs +15 -28
  37. package/layout/_partial/main/navbar/breadcrumb/note.ejs +12 -5
  38. package/layout/_partial/main/navbar/breadcrumb/wiki.ejs +15 -11
  39. package/layout/_partial/main/navbar/dateinfo.ejs +28 -12
  40. package/layout/_partial/main/navbar/ghinfo.ejs +5 -3
  41. package/layout/_partial/main/notebook/note_card.ejs +12 -17
  42. package/layout/_partial/main/notebook/note_tags.ejs +3 -4
  43. package/layout/_partial/main/notebook/notebook_card.ejs +11 -4
  44. package/layout/_partial/main/pin_slider.ejs +48 -43
  45. package/layout/_partial/main/post_list/archive_item.ejs +8 -4
  46. package/layout/_partial/main/post_list/latest_post_card.ejs +10 -4
  47. package/layout/_partial/main/post_list/post_card.ejs +39 -90
  48. package/layout/_partial/main/post_list/topic_card.ejs +7 -5
  49. package/layout/_partial/main/post_list/wiki_card.ejs +16 -13
  50. package/layout/_partial/menubtn.ejs +3 -3
  51. package/layout/_partial/primitives/item.ejs +8 -0
  52. package/layout/_partial/primitives/navigation.ejs +17 -0
  53. package/layout/_partial/primitives/region.ejs +16 -0
  54. package/layout/_partial/primitives/section.ejs +8 -0
  55. package/layout/_partial/primitives/shell.ejs +35 -0
  56. package/layout/_partial/regions/widgets.ejs +84 -0
  57. package/layout/_partial/scripts/defines.ejs +46 -76
  58. package/layout/_partial/scripts/runtime.ejs +55 -0
  59. package/layout/_partial/scripts.ejs +18 -42
  60. package/layout/_partial/search/dialog.ejs +33 -0
  61. package/layout/_partial/search/shortcut.ejs +1 -0
  62. package/layout/_partial/sidebar/brand.ejs +127 -0
  63. package/layout/_partial/sidebar/menu.ejs +59 -14
  64. package/layout/_partial/sidebar/search.ejs +58 -41
  65. package/layout/_partial/widgets/actions.ejs +25 -0
  66. package/layout/_partial/widgets/author.ejs +9 -5
  67. package/layout/_partial/widgets/components/linklist.ejs +1 -2
  68. package/layout/_partial/widgets/ghissues.ejs +7 -10
  69. package/layout/_partial/widgets/ghrepo.ejs +23 -16
  70. package/layout/_partial/widgets/ghuser.ejs +3 -3
  71. package/layout/_partial/widgets/recent.ejs +25 -21
  72. package/layout/_partial/widgets/related.ejs +25 -34
  73. package/layout/_partial/widgets/settings.ejs +17 -0
  74. package/layout/_partial/widgets/tagtree.ejs +18 -10
  75. package/layout/_partial/widgets/toc.ejs +17 -9
  76. package/layout/_partial/widgets/tree.ejs +12 -13
  77. package/layout/archive.ejs +20 -13
  78. package/layout/categories.ejs +4 -3
  79. package/layout/collection-preview.ejs +8 -9
  80. package/layout/index.ejs +32 -43
  81. package/layout/index_topic.ejs +6 -13
  82. package/layout/index_wiki.ejs +17 -34
  83. package/layout/layout.ejs +195 -65
  84. package/layout/notebooks.ejs +3 -3
  85. package/layout/notes.ejs +4 -4
  86. package/layout/page.ejs +95 -50
  87. package/layout/settings.ejs +109 -0
  88. package/layout/tags.ejs +4 -3
  89. package/{THIRD-PARTY-NOTICES.md → legal/THIRD-PARTY-NOTICES.md} +8 -4
  90. package/package.json +28 -6
  91. package/scripts/commands/stellar.js +55 -0
  92. package/scripts/events/index.js +15 -9
  93. package/scripts/events/lib/authors.js +9 -7
  94. package/scripts/events/lib/config-hot-reload.js +65 -0
  95. package/scripts/events/lib/config-schema.js +20 -0
  96. package/scripts/events/lib/config.js +22 -63
  97. package/scripts/events/lib/content-config.js +5 -0
  98. package/scripts/events/lib/doc_tree.js +99 -9
  99. package/scripts/events/lib/links.js +6 -3
  100. package/scripts/events/lib/notebooks.js +200 -8
  101. package/scripts/events/lib/utils.js +4 -4
  102. package/scripts/events/lib/version-check.js +57 -3
  103. package/scripts/filters/index.js +2 -27
  104. package/scripts/filters/lib/img_lazyload.js +4 -126
  105. package/scripts/filters/lib/img_onerror.js +14 -17
  106. package/scripts/filters/lib/page-view-model.js +152 -0
  107. package/scripts/generators/404.js +13 -8
  108. package/scripts/generators/author.js +16 -11
  109. package/scripts/generators/notebooks.js +68 -39
  110. package/scripts/generators/search.js +62 -67
  111. package/scripts/generators/settings.js +43 -0
  112. package/scripts/generators/stellar-icons.js +13 -5
  113. package/scripts/generators/topic.js +24 -13
  114. package/scripts/generators/wiki.js +49 -21
  115. package/scripts/helpers/ai_label.js +6 -12
  116. package/scripts/helpers/brand.js +17 -0
  117. package/scripts/helpers/browser_runtime_manifest.js +12 -0
  118. package/scripts/helpers/caption.js +8 -0
  119. package/scripts/helpers/category_color.js +13 -13
  120. package/scripts/helpers/collection.js +18 -0
  121. package/scripts/helpers/comments_model.js +14 -0
  122. package/scripts/helpers/extension_assets.js +8 -0
  123. package/scripts/helpers/json_ld.js +16 -7
  124. package/scripts/helpers/mdrender.js +3 -9
  125. package/scripts/helpers/menu.js +9 -0
  126. package/scripts/helpers/post_view_model.js +23 -0
  127. package/scripts/helpers/regions.js +37 -0
  128. package/scripts/helpers/scrollreveal.js +7 -7
  129. package/scripts/helpers/search_domain.js +34 -0
  130. package/scripts/helpers/service_provider.js +9 -0
  131. package/scripts/helpers/settings.js +16 -0
  132. package/scripts/helpers/share_action.js +8 -0
  133. package/scripts/helpers/stellar_config.js +12 -0
  134. package/scripts/helpers/stellar_data.js +8 -0
  135. package/scripts/helpers/stellar_info.js +21 -16
  136. package/scripts/helpers/stellar_inject.js +9 -0
  137. package/scripts/helpers/ui_classes.js +12 -0
  138. package/scripts/lib/ai_label.js +14 -11
  139. package/scripts/lib/brand.js +41 -0
  140. package/scripts/lib/browser-runtime.js +115 -0
  141. package/scripts/lib/caption.js +21 -0
  142. package/scripts/lib/collection-pipeline/adapters/notebook.js +62 -0
  143. package/scripts/lib/collection-pipeline/adapters/post.js +20 -0
  144. package/scripts/lib/collection-pipeline/adapters/topic.js +82 -0
  145. package/scripts/lib/collection-pipeline/adapters/wiki.js +20 -0
  146. package/scripts/lib/collection-pipeline/index.js +169 -0
  147. package/scripts/lib/collection-pipeline/registry.js +27 -0
  148. package/scripts/lib/collection-pipeline/shared.js +164 -0
  149. package/scripts/lib/comments.js +60 -0
  150. package/scripts/lib/config-inject.js +20 -0
  151. package/scripts/lib/config-schema.js +1095 -0
  152. package/scripts/lib/content-config.js +157 -0
  153. package/scripts/lib/content-defaults.js +56 -0
  154. package/scripts/lib/content-membership.js +233 -0
  155. package/scripts/lib/contribution-contract.js +165 -0
  156. package/scripts/lib/contribution-registry.js +429 -0
  157. package/scripts/lib/doc_tree.js +46 -44
  158. package/scripts/lib/doctor.js +296 -0
  159. package/scripts/lib/front-matter.js +29 -0
  160. package/scripts/lib/hero-effect-registry.js +262 -0
  161. package/scripts/lib/html-images.js +128 -0
  162. package/scripts/lib/internal-constants.js +152 -0
  163. package/scripts/lib/layout-config.js +62 -0
  164. package/scripts/lib/mdrender_html.js +36 -23
  165. package/scripts/lib/menu.js +36 -0
  166. package/scripts/lib/model-schema.js +90 -0
  167. package/scripts/lib/models/index.js +1542 -0
  168. package/scripts/lib/new-note.js +172 -0
  169. package/scripts/lib/page-view-model-registry.js +103 -0
  170. package/scripts/lib/regions.js +132 -0
  171. package/scripts/lib/runtime-data.js +23 -0
  172. package/scripts/lib/safe-path.js +44 -0
  173. package/scripts/lib/search-domain.js +59 -0
  174. package/scripts/lib/seo.js +10 -10
  175. package/scripts/lib/service-provider.js +12 -0
  176. package/scripts/lib/settings.js +16 -0
  177. package/scripts/lib/share-services.js +96 -0
  178. package/scripts/lib/source-config.js +27 -0
  179. package/scripts/lib/theme-metadata.js +22 -0
  180. package/scripts/lib/ui-capabilities.js +32 -0
  181. package/scripts/lib/widget-registry.js +150 -0
  182. package/scripts/lib/wiki_readme.js +15 -11
  183. package/scripts/schema/config-rules.js +290 -0
  184. package/scripts/schema/config-schema.js +163 -0
  185. package/scripts/schema/content-config-rules.js +264 -0
  186. package/scripts/schema/content-config-schema.js +321 -0
  187. package/scripts/schema/model-schema.js +971 -0
  188. package/scripts/schema/schema-utils.js +48 -0
  189. package/scripts/tags/index.js +2 -3
  190. package/scripts/tags/lib/albums.js +6 -6
  191. package/scripts/tags/lib/banner.js +10 -4
  192. package/scripts/tags/lib/box.js +1 -1
  193. package/scripts/tags/lib/button.js +1 -1
  194. package/scripts/tags/lib/chat.js +9 -31
  195. package/scripts/tags/lib/checkbox.js +6 -1
  196. package/scripts/tags/lib/copy.js +4 -1
  197. package/scripts/tags/lib/dropdown.js +6 -4
  198. package/scripts/tags/lib/emoji.js +5 -10
  199. package/scripts/tags/lib/friends.js +4 -4
  200. package/scripts/tags/lib/gallery.js +7 -7
  201. package/scripts/tags/lib/ghcard.js +5 -3
  202. package/scripts/tags/lib/gist.js +16 -0
  203. package/scripts/tags/lib/grid.js +4 -2
  204. package/scripts/tags/lib/hashtag.js +1 -1
  205. package/scripts/tags/lib/icon.js +1 -1
  206. package/scripts/tags/lib/image.js +1 -1
  207. package/scripts/tags/lib/link.js +6 -3
  208. package/scripts/tags/lib/mark.js +8 -3
  209. package/scripts/tags/lib/md.js +1 -1
  210. package/scripts/tags/lib/note.js +1 -1
  211. package/scripts/tags/lib/okr.js +18 -1
  212. package/scripts/tags/lib/posters.js +6 -6
  213. package/scripts/tags/lib/quot.js +15 -5
  214. package/scripts/tags/lib/rating.js +7 -4
  215. package/scripts/tags/lib/sites.js +8 -6
  216. package/scripts/tags/lib/tip.js +6 -6
  217. package/scripts/tags/lib/toc.js +2 -2
  218. package/scripts/tags/lib/vote.js +8 -5
  219. package/source/css/_appearances/_mixins.styl +258 -0
  220. package/source/css/_appearances/card.styl +30 -0
  221. package/source/css/_appearances/flat.styl +44 -0
  222. package/source/css/_appearances/glass.styl +138 -0
  223. package/source/css/_appearances/minimal.styl +325 -0
  224. package/source/css/_common/base.styl +5 -9
  225. package/source/css/_common/blockquote.styl +0 -1
  226. package/source/css/_common/button.styl +1 -1
  227. package/source/css/_common/device.styl +24 -42
  228. package/source/css/_common/dropdown.styl +20 -14
  229. package/source/css/_common/highlight.styl +5 -12
  230. package/source/css/_common/icon.styl +38 -0
  231. package/source/css/_common/input.styl +33 -0
  232. package/source/css/_common/loading.styl +2 -2
  233. package/source/css/_common/svg.styl +0 -8
  234. package/source/css/_components/collection.styl +21 -64
  235. package/source/css/_components/layout.styl +524 -84
  236. package/source/css/_components/list.styl +36 -22
  237. package/source/css/_components/main.styl +16 -19
  238. package/source/css/_components/md.styl +8 -13
  239. package/source/css/_components/pages/article-indent.styl +1 -1
  240. package/source/css/_components/pages/article-story.styl +7 -6
  241. package/source/css/_components/pages/article-tech.styl +5 -5
  242. package/source/css/_components/pages/collection-preview.styl +1 -5
  243. package/source/css/_components/pages/settings.styl +184 -0
  244. package/source/css/_components/partial/article-banner.styl +2 -2
  245. package/source/css/_components/partial/article-footer.styl +0 -32
  246. package/source/css/_components/partial/article-share.styl +48 -0
  247. package/source/css/_components/partial/article-tags.styl +1 -1
  248. package/source/css/_components/partial/cover.styl +13 -13
  249. package/source/css/_components/partial/listing-nav.styl +68 -0
  250. package/source/css/_components/partial/paginator.styl +1 -1
  251. package/source/css/_components/pin-slider.styl +3 -3
  252. package/source/css/_components/sidebar/brand.styl +135 -0
  253. package/source/css/_components/sidebar/footer.styl +14 -31
  254. package/source/css/_components/sidebar/nav-area.styl +4 -0
  255. package/source/css/_components/sidebar/search.styl +176 -26
  256. package/source/css/_components/sidebar/sidebar.styl +76 -110
  257. package/source/css/_components/tag-plugins/banner.styl +16 -28
  258. package/source/css/_components/tag-plugins/checkbox.styl +7 -22
  259. package/source/css/_components/tag-plugins/copy.styl +3 -5
  260. package/source/css/_components/tag-plugins/gallery.styl +2 -2
  261. package/source/css/_components/tag-plugins/grid.styl +3 -0
  262. package/source/css/_components/tag-plugins/image.styl +2 -1
  263. package/source/css/_components/tag-plugins/link.styl +0 -1
  264. package/source/css/_components/tag-plugins/mark.styl +19 -4
  265. package/source/css/_components/tag-plugins/mdrender.styl +2 -2
  266. package/source/css/_components/tag-plugins/navbar.styl +23 -17
  267. package/source/css/_components/tag-plugins/note.styl +2 -2
  268. package/source/css/_components/tag-plugins/okr.styl +1 -2
  269. package/source/css/_components/tag-plugins/quot.styl +5 -0
  270. package/source/css/_components/tag-plugins/rating.styl +3 -2
  271. package/source/css/_components/tag-plugins/timeline.styl +1 -1
  272. package/source/css/_components/tag-plugins/tip.styl +1 -1
  273. package/source/css/_components/tag-plugins/vote.styl +3 -2
  274. package/source/css/_components/widgets/ghrepo.styl +2 -1
  275. package/source/css/_components/widgets/ghuser.styl +4 -6
  276. package/source/css/_components/widgets/settings.styl +49 -0
  277. package/source/css/_components/widgets/timeline.styl +2 -2
  278. package/source/css/_components/widgets/toc.styl +12 -33
  279. package/source/css/_components/widgets/widgets.styl +14 -19
  280. package/source/css/_components/wiki-card.styl +2 -2
  281. package/source/css/_custom.styl +26 -32
  282. package/source/css/_defines/func.styl +47 -37
  283. package/source/css/_defines/theme_base.styl +8 -10
  284. package/source/css/_plugins/card-hover.styl +1 -1
  285. package/source/css/_plugins/copycode.styl +16 -19
  286. package/source/css/_plugins/index.styl +3 -8
  287. package/source/css/_plugins/lazyload.styl +1 -1
  288. package/source/css/main.styl +12 -0
  289. package/source/js/main.js +302 -59
  290. package/source/js/plugins/adaptive-text.js +33 -16
  291. package/source/js/plugins/card-hover.js +2 -24
  292. package/source/js/plugins/copycode.js +10 -16
  293. package/source/js/plugins/voice.js +51 -48
  294. package/source/js/profile.js +316 -0
  295. package/source/js/runtime/asset-loader.js +61 -0
  296. package/source/js/runtime/extension-registry.js +149 -0
  297. package/source/js/runtime/extensions/card-hover.js +5 -0
  298. package/source/js/runtime/extensions/color-scheme-switch.js +101 -0
  299. package/source/js/runtime/extensions/comments.js +200 -0
  300. package/source/js/runtime/extensions/deferred-icons.js +53 -0
  301. package/source/js/{plugins → runtime/extensions}/dropdown.js +69 -30
  302. package/source/js/runtime/extensions/feature.js +200 -0
  303. package/source/js/runtime/extensions/hero-effect.js +179 -0
  304. package/source/js/runtime/extensions/reveal.js +80 -0
  305. package/source/js/runtime/extensions/search.js +23 -0
  306. package/source/js/{services.js → runtime/extensions/services.js} +67 -54
  307. package/source/js/runtime/extensions/settings.js +235 -0
  308. package/source/js/runtime/hero-effects/ferrofluid.js +385 -0
  309. package/source/js/{plugins → runtime/hero-effects}/galaxy.js +53 -177
  310. package/source/js/runtime/hero-effects/light-rays.js +293 -0
  311. package/source/js/runtime/index.js +75 -0
  312. package/source/js/runtime/legacy-request-adapter.js +47 -0
  313. package/source/js/runtime/request-cache.js +219 -0
  314. package/source/js/search/algolia-search.js +76 -51
  315. package/source/js/search/highlight.js +1 -1
  316. package/source/js/search/local-search.js +96 -57
  317. package/source/js/search/shortcut.js +31 -20
  318. package/source/js/services/friends_and_posts.js +6 -1
  319. package/source/js/services/rating.js +14 -6
  320. package/source/js/services/siteinfo.js +3 -7
  321. package/source/js/services/timeline.js +1 -1
  322. package/source/js/services/vote.js +7 -5
  323. package/source/js/services/weibo.js +1 -1
  324. package/source/js/utils.js +19 -444
  325. package/.claude/skills/stellar-theme-dev/SKILL.md +0 -51
  326. package/_data/chat_users.yml +0 -0
  327. package/layout/_partial/comments/artalk/script.ejs +0 -76
  328. package/layout/_partial/comments/beaudar/script.ejs +0 -33
  329. package/layout/_partial/comments/giscus/script.ejs +0 -31
  330. package/layout/_partial/comments/script.ejs +0 -3
  331. package/layout/_partial/comments/twikoo/script.ejs +0 -25
  332. package/layout/_partial/comments/utterances/script.ejs +0 -33
  333. package/layout/_partial/comments/waline/script.ejs +0 -43
  334. package/layout/_partial/main/article/article_footer.ejs +0 -164
  335. package/layout/_partial/main/article/article_tags.ejs +0 -16
  336. package/layout/_partial/main/article/read_next.ejs +0 -63
  337. package/layout/_partial/main/article/related_posts.ejs +0 -16
  338. package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +0 -52
  339. package/layout/_partial/scripts/bootstrap.ejs +0 -37
  340. package/layout/_partial/scripts/lazyload.ejs +0 -89
  341. package/layout/_partial/sidebar/grad-def.ejs +0 -26
  342. package/layout/_partial/sidebar/index_leftbar.ejs +0 -191
  343. package/layout/_partial/sidebar/index_rightbar.ejs +0 -94
  344. package/layout/_partial/sidebar/logo.ejs +0 -99
  345. package/layout/_plugins/adaptive_text.ejs +0 -11
  346. package/layout/_plugins/card_hover.ejs +0 -32
  347. package/layout/_plugins/copycode.ejs +0 -17
  348. package/layout/_plugins/fancybox.ejs +0 -53
  349. package/layout/_plugins/heti.ejs +0 -21
  350. package/layout/_plugins/index.ejs +0 -50
  351. package/layout/_plugins/mathjax.ejs +0 -49
  352. package/layout/_plugins/mermaid.ejs +0 -33
  353. package/layout/_plugins/preload.ejs +0 -9
  354. package/layout/_plugins/scrollreveal.ejs +0 -102
  355. package/layout/_plugins/search/algolia_search.ejs +0 -12
  356. package/layout/_plugins/search/local_search.ejs +0 -9
  357. package/layout/_plugins/swiper.ejs +0 -27
  358. package/layout/_plugins/tianli_gpt.ejs +0 -14
  359. package/scripts/commands/new-note.js +0 -49
  360. package/scripts/events/lib/merge_posts.js +0 -48
  361. package/scripts/events/lib/topic_tree.js +0 -48
  362. package/scripts/helpers/related_posts.js +0 -51
  363. package/scripts/helpers/subtitle.js +0 -8
  364. package/scripts/lib/notebooks.js +0 -181
  365. package/scripts/lib/subtitle.js +0 -28
  366. package/scripts/tags/lib/about.js +0 -48
  367. package/source/css/_components/page-transition.styl +0 -22
  368. package/source/css/_components/partial/navbar.styl +0 -51
  369. package/source/css/_components/sidebar/logo.styl +0 -111
  370. package/source/css/_components/tag-plugins/about.styl +0 -56
  371. package/source/css/_components/widgets/tree.styl +0 -0
  372. package/source/css/_plugins/scrollreveal.styl +0 -6
  373. package/source/css/_plugins/tianli_gpt.styl +0 -213
  374. package/source/css/plugins/mermaid.styl +0 -137
  375. package/source/js/icons.js +0 -60
  376. package/source/js/services/fcircle.js +0 -35
  377. package/source/js/theme.js +0 -61
package/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.0-rc.2
4
+
5
+ > 发布日期:2026-09-07
6
+
7
+ 本节记录从公开候选 `2.0.0-rc.1` 到 `2.0.0-rc.2` 最终文件树的净变化。
8
+
9
+ ### 新功能
10
+
11
+ - Notebook 列表、设置页与错误页的专属配置统一收敛到 `profiles`;404 页新增默认关闭的评论区,可独立覆盖标题、线程、Provider 与参数。
12
+ - 可信页面注入补全 `head_begin/head_end/body_begin/body_end` 四个位置,站点主题配置与页面 Front Matter 使用同一合并顺序和原样输出语义。
13
+
14
+ ### 修复与工程变化
15
+
16
+ - 将 `hexo-front-matter` 声明为主题直接依赖,避免源码配置与 `stellar new note` 依赖 Hexo 宿主的传递依赖。
17
+ - 重构中英文 README,明确 npm、源码与 Blueprint 三种安装入口,并补充随 npm 包分发的 Stellar 图标、项目描述、关键词和作者元数据。
18
+
19
+ ### 升级注意(配置变更与破坏性改动)
20
+
21
+ - 从 RC1 升级时,将顶层 `notebook` 移到 `profiles.notebook`,将 `settings.about` 移到 `profiles.settings.about`,将 `error_page.image` 移到 `profiles.error.image`。
22
+ - `profiles.notebook_index` 更名为 `profiles.notebooks`,`profiles.note_index` 更名为 `profiles.notebook`;Note 内容页继续使用 `profiles.note`。
23
+ - `inject` 内容会作为可信 HTML 原样输出;只应配置维护者完全信任的内容,站点级内容在前、页面 Front Matter 在后。
24
+
25
+ Full Changelog: [2.0.0-rc.1...2.0.0-rc.2](https://github.com/xaoxuu/hexo-theme-stellar/compare/2.0.0-rc.1...2.0.0-rc.2)
26
+
27
+ ## 2.0.0-rc.1
28
+
29
+ > 发布日期:2026-09-07
30
+
31
+ 本节记录从最近公开版本 `1.44.0` 到当前候选文件树的净变化;开发期间已经被替换的中间方案不属于迁移契约。
32
+
33
+ ### 新功能
34
+
35
+ - 配置、Collection YAML 与页面 Front Matter 采用声明式严格 Schema;默认配置、校验、JavaScript 投影和 Reference 由同一字段事实生成,Doctor 在构建前给出带来源和字段路径的诊断。
36
+ - 新增 Post、Topic、Wiki、Notebook、Note 与索引页共享的 Collection/PageViewModel 管线,并以 `listed/searchable` 分离聚合展示和搜索收录。
37
+ - 页面外壳统一为 Topbar、Leftbar、Rightbar Region,Brand、Menu、Widget、Footer 和 13 个 Profile 使用结构化配置与明确的覆盖语义。
38
+ - 新增 `card/glass/minimal/flat` 外观预设、明暗模式切换、颜色/渐变/排版/形状/背景设置,以及独立设置页。
39
+ - 浏览器功能改为原生 ESM Runtime Manifest 和按 DOM 命中加载的 Extension;搜索、评论、Feature、数据服务及请求缓存拥有明确生命周期。
40
+ - Wiki Hero 支持 `ferrofluid`、`galaxy`、`light-rays` 三种可选背景效果,效果与静态图片可叠加;标签目录新增 `gist`。
41
+ - 新增 `hexo stellar doctor` 与 `hexo stellar new note`;目录驱动的完整 Blueprint 改由 Stellar Examples 仓库维护。
42
+
43
+ ### 行为、样式与工程变化
44
+
45
+ - Article 与 Notebook 的列表、横幅、许可、分享、标签和排序默认值收敛到内容模型;Collection 内容默认关闭分享,Notebook 与其它 Collection 使用一致的覆盖规则。
46
+ - 侧栏集合、Navbar、Dropdown、Grid、文章卡片、下载按钮和 Topbar 对齐使用统一的 UI capability、形状与状态反馈。
47
+ - 运行环境升级为 Node.js 22+、Hexo 8+;构建、包集成、性能、知识库、贡献注册表和复用规则各自拥有独立门禁。
48
+ - 发布流程原子同步 `package.json`、`package-lock.json` 与安装知识库的版本,并把未跟踪文件纳入工作区门禁,避免候选包、锁文件或临时产物漂移;稳定版写入 npm `latest`,RC 写入 `rc` dist-tag。
49
+ - 主题仓库只保留长期指南、当前知识库和阶段审计;单次方案、迁移中间态及已被最终实现取代的测试/兼容残留不进入发布文件树。
50
+
51
+ ### 升级注意(配置变更与破坏性改动)
52
+
53
+ - v1 的 `logo/menubar/site_tree/style/tag_plugins/plugins/data_services` 等结构不会被兼容读取;请按[公开迁移说明](https://xaoxuu.com/wiki/stellar/migration/v1-to-v2/)逐项迁移到 `topbar/leftbar/rightbar/footer/profiles/appearance/tags/features/services`。
54
+ - Collection 与 Front Matter 需要迁移为 `collection/route/navigation/listing/visibility/banner/article/comments/render/seo` 等分组字段;未知字段、错误类型与非法枚举会在构建早期失败。
55
+ - `about`、`users` 标签以及对应的 `chat_users.yml`、`fcircle` 适配器已移除;`tip` 改为单标签 `{% tip 词句 pop:注解 %}`,`quot` 支持直接图标键与 `color`。
56
+ - 浏览器后处理必须原样保留 `public/js/runtime/**/*.js` 的 ESM 语义、相对 import 与 JavaScript MIME 类型。
57
+ - v2 当前源码从仓库 `main` 安装并需要执行 `npm install --prefix themes/stellar`;npm 包是否为 v2 以实际公开版本为准。
58
+
59
+ Full Changelog: [1.44.0...main](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.44.0...main)
60
+
3
61
  ## 1.44.0
4
62
 
5
63
  > 发布日期:2026-08-21
@@ -104,18 +162,18 @@ Full Changelog: [1.42.0...1.42.1](https://github.com/xaoxuu/hexo-theme-stellar/c
104
162
  ### 重构
105
163
  - 移除已失效的 auto_banner(Unsplash 自动横幅)与 `poster` 配置
106
164
  - 页面横幅上块重构为显式两行结构(面包屑 + 阅读时长/AI 标签 + 日期行)
107
- - 评论数图标统一使用 `default:tocomment`,移除 `weibo:comment`
165
+ - 评论数图标统一使用 `default:to-comment`,移除 `weibo:comment`
108
166
 
109
167
  ### 其他
110
168
  - 移除知识库合并版 `知识库全量.md`,知识库以领域页面为唯一事实源
111
- - 新增 AI 规范引用一致性检查(check-spec-refs)与发版前提交登记完整性检查(随 `npm run check` 执行)
169
+ - 新增 AI 规范引用一致性检查与发版前提交登记完整性检查(随 `npm run check` 执行)
112
170
 
113
171
  ### 升级注意(配置变更与破坏性改动)
114
172
  - 移除 `article.auto_banner`(Unsplash 自动横幅已失效)与文章 front-matter `poster`(`headline` / `topic` / `caption`);`poster.color` / `banner_info.color` 显式文字颜色不再生效,由自适应文字颜色接管
115
173
  - 新增 `article.card_style`(`hero` 默认 / `classic`):未显式设置的站点保持 hero 卡片样式
116
174
  - 新增 `plugins.adaptive_text`(默认 `enable: true`):页面存在 `[data-text-adaptive]` 元素时才按需加载,文字颜色默认随背景自适应
117
175
  - 删除间距令牌 `--gap-margin` / `--gap-padding` / `--gap-max`,替换为 `--gap-base`(组件内部间距)与 `--gap-page`(页面级留白);引用旧令牌的自定义 CSS 需迁移
118
- - `weibo:comment` 图标已移除,评论数图标统一使用 `default:tocomment`;自定义中引用了 `weibo:comment` 的站点请改用 `default:tocomment`
176
+ - `weibo:comment` 图标已移除,评论数图标统一使用 `default:to-comment`;自定义中引用了 `weibo:comment` 的站点请改用 `default:to-comment`
119
177
  - 知识库合并版 `知识库全量.md` 移除(RAG 可直接索引领域页面)
120
178
 
121
179
  Full Changelog: [1.41.0...main](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.41.0...main)
@@ -290,7 +348,7 @@ Full Changelog: [1.37.0...1.38.0](https://github.com/xaoxuu/hexo-theme-stellar/c
290
348
 
291
349
  ### 其他
292
350
  - CHANGELOG.md 历史数据一次性从 GitHub Releases API 同步入库(76 个版本,统一格式)
293
- - 新增发版流程文档(docs/guides/release-process.md)与设计记录(docs/designs/2026-08-09-release-automation.md)
351
+ - 新增发版流程文档(docs/guides/release-process.md)并完善发布自动化记录
294
352
 
295
353
  Full Changelog: [1.36.0...1.37.0](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.36.0...1.37.0)
296
354
 
@@ -336,7 +394,7 @@ Full Changelog: [1.35.0...1.36.0](https://github.com/xaoxuu/hexo-theme-stellar/c
336
394
  - 统一 URL 路径规范化逻辑,修复 canonical 标签路径不一致的问题
337
395
  - 修复 wiki 文档树中索引页(index)的路径匹配错误
338
396
  - 发版脚本迁移为 Node CLI(release.js),支持版本校验、dry-run 预览与二次确认
339
- - 完善仓库 AI 协作规范(AGENTS.md、issue 处理规则),重组 docs 目录(designs/、guides/、audits/)
397
+ - 完善仓库 AI 协作规范(AGENTS.md、issue 处理规则),重组 docs 中的长期指南与审计记录
340
398
  - 优化 npm 发布忽略规则(.npmignore)
341
399
 
342
400
  Full Changelog: [1.34.0...1.35.0](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.34.0...1.35.0)
package/CONTRIBUTING.md CHANGED
@@ -1,155 +1,64 @@
1
1
  # 贡献指南
2
2
 
3
- 感谢你考虑为 [Stellar](https://github.com/xaoxuu/hexo-theme-stellar) 贡献代码或文档!Stellar 是一个功能强大的综合型 Hexo 主题,内置博客、知识库、专栏、笔记四大系统,并提供丰富的标签组件与动态数据组件。
3
+ 感谢你考虑为 [Stellar](https://github.com/xaoxuu/hexo-theme-stellar) 贡献代码或文档。本指南只保留贡献者需要的入口;工程规则以 [AGENTS.md](AGENTS.md) 为准,主题使用方法见 [Wiki 文档](https://xaoxuu.com/wiki/stellar/)。
4
4
 
5
- 本指南面向开发者,描述从环境准备、开发、验证到提交 PR 的完整流程;主题仓库的 AI 协作规范(唯一权威)见 [AGENTS.md](AGENTS.md)。使用上的问题请先查阅 [Wiki 文档](https://xaoxuu.com/wiki/stellar/)。
6
-
7
- ## 仓库与职责边界
5
+ ## 仓库边界
8
6
 
9
7
  | 仓库 | 职责 |
10
- |------|------|
11
- | [hexo-theme-stellar](https://github.com/xaoxuu/hexo-theme-stellar) | 主题代码(`layout/`、`scripts/`、`source/`)、国际化(`languages/`)、主题文档(`docs/`)、版本发布 |
12
- | [xaoxuu.com 主工程](https://github.com/xaoxuu/xaoxuu.com) | 博客站点,以 git submodule 方式引用本主题;只更新子模块指针,不包含主题源码 |
13
- | [hexo-theme-stellar-docs](https://github.com/xaoxuu/hexo-theme-stellar-docs) | Wiki 文档内容(对应 xaoxuu.com/wiki/stellar/) |
14
- | [hexo-theme-stellar-examples](https://github.com/xaoxuu/hexo-theme-stellar-examples) | 官方示例工程(`blog` 博客场景、`docs` 文档场景),用于集成开发与验证 |
15
-
16
- 主题无法单独运行,开发调试需要在主工程或官方 demo 工程中集成。
8
+ | --- | --- |
9
+ | [hexo-theme-stellar](https://github.com/xaoxuu/hexo-theme-stellar) | 主题代码、默认配置、国际化、主题工程文档与版本发布 |
10
+ | [hexo-theme-stellar-examples](https://github.com/xaoxuu/hexo-theme-stellar-examples) | 官方博客与文档场景,用于需要宿主环境的集成验证 |
17
11
 
18
- ## 环境准备
12
+ 主题仓库不维护具体站点的内容、配置、版本引用或部署规则。只有任务需要宿主页面且仓库内证据不足时,才使用示例工程或任务指定的消费站点。
19
13
 
20
- ```yaml
21
- Hexo: 6.3.0 ~ latest(已验证至 8.1.2)
22
- hexo-cli: 4.3.0 ~ latest
23
- node: >= 22 # 建议选择 LTS 版本
24
- npm: >= 10
25
- ```
14
+ ## 准备环境
26
15
 
27
- 推荐使用官方 demo 工程集成开发:
16
+ 公开兼容范围以 [README.md](README.md) 为准,当前开发命令以 [package.json](package.json) 为准,CI 使用的 Node.js 版本以 [.github/workflows/ci.yml](.github/workflows/ci.yml) 为准,避免在多处复制版本矩阵。
28
17
 
29
- 1. Fork 本仓库并克隆到本地。
30
- 2. 克隆 [hexo-theme-stellar-examples](https://github.com/xaoxuu/hexo-theme-stellar-examples),将你的主题副本放到 `blog/themes/stellar`(或 `docs/themes/stellar`)。
31
- 3. 在 demo 工程中执行 `npm install`,然后按需 `npx hexo generate` / `npx gulp minify` 构建验证。
32
-
33
- 也可以使用 git submodule 将主题挂载到自己的博客或主工程:
18
+ 需要宿主环境时,推荐克隆官方示例工程,将主题副本放入 `blog/themes/stellar` 或 `docs/themes/stellar`,在对应示例目录安装依赖并构建。也可以把主题作为 submodule 挂载到自己的 Hexo 站点:
34
19
 
35
20
  ```bash
36
21
  git submodule add https://github.com/<your-name>/hexo-theme-stellar.git themes/stellar
37
22
  ```
38
23
 
39
- ## 开发流程
40
-
41
- 每个功能或修复请按以下顺序推进,产物保留在仓库中。
42
-
43
- ### 1. 方案
44
-
45
- 在 `docs/designs/{YYYY-MM-DD}-{功能简称}/` 下创建方案文档(模板见 `docs/designs/_template/`),包含 `spec.md` / `plan.md` / `checklist.md`,写明:
46
-
47
- - 要解决的问题或新增的能力
48
- - 技术方案和实现思路
49
- - 影响范围(涉及哪些文件 / 模块)
50
- - 需要同步的知识库页面与文档
51
-
52
- ### 2. 实施
24
+ ## 开发与验证
53
25
 
54
- 新增功能覆盖全部相关维度:
26
+ 开始前阅读 [AGENTS.md](AGENTS.md),确认任务边界和最低充分验证级别。常用专项指南:
55
27
 
56
- | 维度 | 目录 | 说明 |
57
- |------|------|------|
58
- | 模板 | `layout/` | EJS 模板与可复用 partial |
59
- | 服务端脚本 | `scripts/` | Hexo 标签 / 辅助函数 / 过滤器 |
60
- | 样式 | `source/css/` | Stylus 样式 |
61
- | 浏览器脚本 | `source/js/` | ES2015+ 源码(Gulp Babel 转译输出) |
62
- | 国际化 | `languages/` | 新增文案时同步 |
63
- | 文档 | `docs/` | 方案 + 执行计划 + 测试记录 + 知识库同步 |
28
+ - 新增或重构标签插件:[标签插件开发规范](docs/guides/tag-plugins-style-guide.md)
29
+ - 修改配置、内容 profile、组件、Extension 或语言文案:[贡献架构指南](docs/guides/contribution-architecture.md)
64
30
 
65
- ### 3. 文档与知识库同步
31
+ 公开 v2 文档按[入门](https://xaoxuu.com/wiki/stellar/start/install/)、[配置参考](https://xaoxuu.com/wiki/stellar/reference/theme/)和[行为参考](https://xaoxuu.com/wiki/stellar/reference/behavior/)组织。维护使用方迁移说明时核对 [AI 迁移契约](https://xaoxuu.com/wiki/stellar/migration/ai/);旧公开入口由文档仓库的映射表和消费站点跳转实现承接。
66
32
 
67
- 涉及主题代码、配置或行为变化时,必须同步更新 `docs/knowledge/` 并在 `docs/knowledge/VERIFICATION.md` 登记;涉及逻辑变更(API、配置项、行为变化)同时更新仓库 Wiki。
33
+ 先运行最接近改动的检查;需要全仓证据时运行 `npm run check`。所有可用脚本及其当前组合以 `package.json` 为准。宿主构建、视觉检查和分发验收只在任务影响这些契约时补充。
68
34
 
69
- ## 编码规范摘要
35
+ 机器契约与直接测试随实现更新;知识库、CHANGELOG 和版本级 `VERIFICATION.md` 在发版准备时按最终净变化集中同步。
70
36
 
71
- 完整规范见 `AGENTS.md` §4,核心要求:
72
-
73
- - **EJS 模板**:`<%- %>` 输出非转义 HTML;变量声明用 `var`(IE8 兼容);2 空格缩进;HTML 属性双引号;复杂逻辑提取到 `helpers/`
74
- - **Node 脚本**:CommonJS(`require()` / `module.exports`);文件头 `/* global hexo */` + `'use strict';`;2 空格缩进、双引号、分号结尾
75
- - **Stylus 样式**:类名和文件名 `kebab-case`;变量在 `_defines/`,通用样式在 `_common/`,组件在 `_components/`;2 空格缩进
76
- - **浏览器 JS**:ES2015+ 语法;避免直接操作 DOM,使用主题工具函数
77
- - **不引入新构建系统**,保持 Hexo 原生 + Gulp 后处理;CSS 兼容 IE8,JS 兼容 ES2015+
78
- - 新增或重构标签插件时,先阅读 `docs/guides/tag-plugins-style-guide.md`
79
-
80
- ## 测试与验证
81
-
82
- 在主题仓库根目录执行:
83
-
84
- ```bash
85
- npm run lint # ESLint
86
- npm test # node:test 单测
87
- python3 docs/knowledge/tools/verify.py # 知识库硬事实核查
88
- npm run check # 一键执行 lint + 单测 + 知识库核查
89
- ```
90
-
91
- 修改 `scripts/` 后**必须**在主工程(xaoxuu.com)执行全量验证:
92
-
93
- ```bash
94
- npm run g # hexo clean && hexo generate && npx gulp minify
95
- ```
96
-
97
- > `npm run s`(本地按需渲染)不能替代全量验证。UI 方面(样式、模板、前端交互)改动量不大时无需执行自检流程,除非用户明确要求。
98
-
99
- 新增 / 修改纯函数时请补充单元测试。
100
-
101
- ## 提交规范
102
-
103
- 使用 Conventional Commits,一次提交对应一个需求点(逻辑相似的需求可以合并):
104
-
105
- ```
106
- <type>(<scope>): <description>
107
- ```
108
-
109
- `type` 白名单(完整规则以 `ci/check-commit-msg.js` 为准):`feat` / `fix` / `refactor` / `perf` / `style` / `docs` / `chore` / `content` / `release`。
110
-
111
- - 任务完成后**不自动提交**:改动保留在工作区供审查
112
- - 只有明确要求时才 push
113
- - 发版流程除外(见下文)
37
+ 跨域架构、迁移、兼容、发布计划或其它需要持久化的设计方案统一使用 GitHub issue,正文应包含问题、决策、影响范围和验收标准;具体约定见 [Issue tracker](docs/agents/issue-tracker.md)。仓库不接收单次设计方案或其本地归档。
114
38
 
115
39
  ## 提交 Pull Request
116
40
 
117
- 按 [PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) 填写 PR:
118
-
119
- - **变更说明**:描述解决的问题或新增能力,附相关 issue 编号(如有)
120
- - **改动范围**:勾选涉及维度(`layout/`、`scripts/`、`source/css/`、`source/js/`、`languages/`、`docs/`)
121
- - **验证清单**:确认 lint / 单测 / 全量构建 / 知识库同步等已通过
41
+ 按 [PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) 描述:
122
42
 
123
- CI 会在 PR 上强制执行以下检查,全部通过后才可合并:
43
+ - 解决的问题、行为变化和相关 issue;
44
+ - 受影响的公开契约或内部模块;
45
+ - 实际执行的验证及结果;
46
+ - 尚需人工确认的页面、兼容性或发布事项。
124
47
 
125
- | 检查 | 内容 |
126
- |------|------|
127
- | Lint | ESLint |
128
- | Unit tests | node:test 单测 |
129
- | Conventional Commits | 提交信息符合规范 |
130
- | Skill mirror sync | `.agents/` 与 `.claude/` 技能镜像一致 |
131
- | Spec refs | AGENTS.md 章节引用与关键措辞一致性 |
132
- | Integration build | 官方 demo 全量构建(hexo generate)+ Gulp minify |
133
- | Knowledge base verify | `docs/knowledge/tools/verify.py` 硬事实核查 |
48
+ 提交信息使用 Conventional Commits,具体允许格式以 `ci/check-commit-msg.js` 为准。CI 的当前作业与触发条件以 [.github/workflows/ci.yml](.github/workflows/ci.yml) 为准。
134
49
 
135
50
  ## 发版
136
51
 
137
- 发版由维护者(或明确授权的贡献者)执行,一键全自动:
138
-
139
- ```bash
140
- npm run release -- <version> --yes
141
- ```
142
-
143
- 发版前需在 `CHANGELOG.md` 准备好对应版本的非空章节(H2 版本号 + H3 分类),脚本校验通过后自动更新版本号、推送并触发 CI 完成 npm 发布、tag 与 GitHub Release。完整流程见 [docs/guides/release-process.md](docs/guides/release-process.md)。
52
+ 发版由维护者或明确授权的贡献者执行。准备 CHANGELOG、确认版本并运行脚本的完整流程见 [发版流程](docs/guides/release-process.md);普通贡献不要提前维护发布快照。
144
53
 
145
54
  ## 社区与支持
146
55
 
147
- - [Issues](https://github.com/xaoxuu/hexo-theme-stellar/issues):技术问题答疑、BUG 反馈
148
- - [Discussions](https://github.com/xaoxuu/hexo-theme-stellar/discussions):论坛、相关话题讨论
149
- - [探索号](https://xaoxuu.com/wiki/stellar/articles/):文章收录
150
- - [社区支持页面](https://xaoxuu.com/wiki/stellar/contributors/):开发者列表、社区渠道与提问建议
56
+ - [Issues](https://github.com/xaoxuu/hexo-theme-stellar/issues)BUG 反馈与技术问题
57
+ - [Discussions](https://github.com/xaoxuu/hexo-theme-stellar/discussions):社区讨论
58
+ - [探索号](https://xaoxuu.com/wiki/stellar/support/articles/):文章收录
59
+ - [社区支持页面](https://xaoxuu.com/wiki/stellar/support/contributors/):贡献者与交流渠道
151
60
 
152
- 无论在什么渠道提问,建议先学习[「提问的智慧」](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md),描述清楚问题现象、尝试过程与报错信息,能帮助大家更高效地解决你的问题。
61
+ 提问时请说明现象、复现步骤、尝试过程与报错信息。
153
62
 
154
63
  ## 许可
155
64
 
package/README.md CHANGED
@@ -1,113 +1,106 @@
1
- # Stellar - 每个人的独立博客
1
+ <div align="center">
2
+ <img src="assets/icon-v2-x512.webp" width="160" alt="Stellar">
3
+ <h1>Stellar</h1>
4
+ <p>每个人的独立博客</p>
5
+ <p>基于 Hexo 的全能个人知识库,开箱即用,内置海量标签和动态数据组件。可用于个人博客、项目文档、知识库、专栏、笔记等。</p>
6
+ <p><a href="README.md">简体中文</a> · <a href="README_EN.md">English</a></p>
7
+ <p>
8
+ <a href="https://github.com/xaoxuu/hexo-theme-stellar/releases"><img src="https://img.shields.io/github/v/release/xaoxuu/hexo-theme-stellar" alt="release"></a>
9
+ <a href="https://www.npmjs.com/package/hexo-theme-stellar"><img src="https://img.shields.io/npm/v/hexo-theme-stellar" alt="npm"></a>
10
+ <a href="https://www.npmjs.com/package/hexo-theme-stellar"><img src="https://img.shields.io/npm/dm/hexo-theme-stellar" alt="npm downloads"></a>
11
+ <a href="https://github.com/xaoxuu/hexo-theme-stellar"><img src="https://img.shields.io/github/stars/xaoxuu/hexo-theme-stellar" alt="stars"></a>
12
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/xaoxuu/hexo-theme-stellar" alt="license"></a>
13
+ </p>
14
+ <p>
15
+ <a href="https://xaoxuu.com/wiki/stellar/start/install/">创建第一个博客</a> ·
16
+ <a href="https://xaoxuu.com/wiki/stellar/support/examples/">站点示例</a> ·
17
+ <a href="https://xaoxuu.com/wiki/stellar/">完整文档</a>
18
+ </p>
19
+ </div>
2
20
 
3
- [简体中文](README.md) · [English](README_EN.md)
21
+ ## 在纷繁中建立秩序
4
22
 
5
- [![npm](https://img.shields.io/npm/v/hexo-theme-stellar)](https://www.npmjs.com/package/hexo-theme-stellar)
6
- [![license](https://img.shields.io/github/license/xaoxuu/hexo-theme-stellar)](https://github.com/xaoxuu/hexo-theme-stellar/blob/main/LICENSE)
7
- [![stars](https://img.shields.io/github/stars/xaoxuu/hexo-theme-stellar)](https://github.com/xaoxuu/hexo-theme-stellar)
8
- [![npm downloads](https://img.shields.io/npm/dm/hexo-theme-stellar)](https://www.npmjs.com/package/hexo-theme-stellar)
9
- [![release](https://img.shields.io/github/v/release/xaoxuu/hexo-theme-stellar)](https://github.com/xaoxuu/hexo-theme-stellar/releases)
23
+ > 真正的简约不止删繁就简,而是在纷繁中建立秩序。
10
24
 
11
- Stellar 是一个「博客 + 知识库一体」的 Hexo 主题:简约商务美学之下,内置博客、Wiki、专栏、笔记四大内容系统与丰富的标签、动态数据组件,开箱即用。
25
+ ### 完善的内容组织体系
12
26
 
13
- 可以只把它当作一个轻博客主题使用——安装启用即可写文章;Wiki 知识库、专栏、笔记与动态数据组件都按需启用,随着你的内容需求自然生长。
27
+ 从普通文章开始。项目需要稳定的文档目录时,用 Wiki;文章逐渐形成系列时,收进专栏;零散知识需要长期积累时,放进笔记本。它们共享同一套导航、搜索、侧栏与阅读体验,没有启用的内容系统不会增加额外负担。
14
28
 
15
- ## 为什么选择 Stellar
29
+ ### 灵活的排版与表达方式
16
30
 
17
- ### 四大内容系统,一体化整合
31
+ 从外观预设、配色和字体,到分栏、选项卡、折叠块与图库,站点的样子和内容的表达方式都可以按需组合。本地搜索可以直接定位到相关章节,响应式布局会在窄屏上把主要空间留给正文。
18
32
 
19
- - **博客系统**:支持技术 / 生活两种文章布局,分类、标签、分页与相关文章一应俱全;只想写博客时,它就是一个开箱即用的轻博客。
20
- - **Wiki 文档系统**:既可以展示多个项目文档,也可以作为个人知识库,项目树、小节与层级导航开箱即用。
21
- - **专栏系统**:系列文章集中管理,提供沉浸式的连续阅读体验。
22
- - **笔记本系统**:三层架构与标签树导航,方便地梳理、归档和检索笔记。
33
+ ### 静态页面,也能常看常新
23
34
 
24
- 四套系统与动态数据组件一体化整合,无需拼装多个插件。
35
+ 手写内容沉淀观点,外部数据保持新鲜。远程内容、社区数据和外部服务可以按需加载,与静态正文保持解耦;经常变化的数据不必每次都随整站重新生成。
25
36
 
26
- ### 富表达标签组件
37
+ ## 站点示例
27
38
 
28
- 内置大量灵活而强大的标签组件——提示框、折叠、标签页、时间线、图库、图标、表情、高亮、OKR、聊天、表格等,互相之间可以自由混搭嵌套,让内容表达不再受 Markdown 语法限制。详见[标签组件文档](https://xaoxuu.com/wiki/stellar/tag-plugins/)。
39
+ [Stellar Examples](https://github.com/xaoxuu/hexo-theme-stellar-examples/) 提供可以直接运行的示例站,适合先体验接近自己目标的站点,再逐步替换内容与配置。更多真实站点见[站点示例](https://xaoxuu.com/wiki/stellar/support/examples/)。
29
40
 
30
- ### 动态数据组件
41
+ ## 开始使用
31
42
 
32
- 静态博客也能拥有动态能力,内容更新无需重新部署:
33
-
34
- - **动态时间线**:像发朋友圈一样发布短文,也可以订阅他人的时间线。
35
- - **自动化友链**:自动检测友链状态、打标签、订阅友链文章。
36
- - **远程 Markdown 渲染**:例如直接渲染项目仓库的 README,避免重复维护。
37
- - **GitHub 仓库 / 贡献者卡片、评分、投票、最新评论**等数据组件,按需加载,不拖慢首屏。
38
- - **社区文化**:可以订阅「探索号」时间线数据源,获取社区用户的宝贵经验分享。
43
+ ### 环境要求
39
44
 
40
- ### 体验与性能
45
+ - Node.js 22 或更高版本
46
+ - Hexo 8 或更高版本
41
47
 
42
- - **模块化设计**:内置多种高复用性小组件,左右侧边栏自由搭配,布局随心。
43
- - **设计令牌驱动的样式系统**:统一的设计语言、深色模式与移动端响应式适配。
44
- - **图片懒加载**按原图比例预留占位,不会出现高度跳变,体验更佳。
45
- - 可选插件按需启用:代码高亮与复制、KaTeX / MathJax 数学渲染、Mermaid 图表、Fancybox 灯箱、Swiper 轮播等。
46
- - **本地搜索**:内置索引生成器,结果按章节展示,点击直达锚点并高亮关键词。
47
- - **SEO 完备**:JSON-LD 结构化数据、Open Graph、canonical 与克隆站检测,保护原创内容。
48
- - **一站多作者**:可以为不同文章指定不同作者,每位作者都有专属主页。
48
+ ### 从蓝图创建
49
49
 
50
- 以上功能都可以在[文档](https://xaoxuu.com/wiki/stellar/)中找到详细的使用方法。
50
+ 准备好 Git 和 npm 后,一条命令即可启动交互式蓝图安装器:
51
51
 
52
- ## 示例与展示
52
+ ```bash
53
+ sh -c "$(curl -fsSL https://github.com/xaoxuu/hexo-theme-stellar-examples/raw/main/install.sh)"
54
+ ```
53
55
 
54
- - 示例源码:[hexo-theme-stellar-examples](https://github.com/xaoxuu/hexo-theme-stellar-examples/)(`blog` 博客场景、`docs` 文档场景),可直接 fork 起步
55
- - 展示墙:[使用 Stellar 主题的博客](https://xaoxuu.com/wiki/stellar/examples/)
56
+ 安装器会读取示例仓库的 [`blueprints.json`](https://github.com/xaoxuu/hexo-theme-stellar-examples/blob/main/blueprints.json),展示当前可用的蓝图,并依次确认蓝图、项目目录、依赖安装和创建计划。
56
57
 
57
- [![Star History Chart](https://star-history.dera.page/svg?repos=xaoxuu/hexo-theme-stellar&type=date&legend=top-left)](https://star-history.dera.page/#xaoxuu/hexo-theme-stellar&type=date&legend=top-left)
58
+ ### npm 安装
58
59
 
59
- ## 快速开始
60
+ 在博客根目录安装 npm 当前提供的默认版本,并确认实际安装结果:
60
61
 
61
- ### 环境要求
62
-
63
- ```yaml
64
- Hexo: 6.3.0 ~ latest(已验证至 8.1.2)
65
- hexo-cli: 4.3.0 ~ latest
66
- node: >= 22 # 建议选择 LTS 版本
67
- npm: >= 10
62
+ ```bash
63
+ npm install hexo-theme-stellar
64
+ npm ls hexo-theme-stellar
68
65
  ```
69
66
 
70
- ### 安装
67
+ ### 跟随最新源码
71
68
 
72
- 在博客根目录执行:
69
+ 将官方仓库的 `main` 分支添加为子模块,并安装主题自身的依赖:
73
70
 
74
71
  ```bash
75
- npm install hexo-theme-stellar
72
+ git submodule add -b main https://github.com/xaoxuu/hexo-theme-stellar.git themes/stellar
73
+ npm install --prefix themes/stellar
76
74
  ```
77
75
 
78
- ### 配置
76
+ ### 启用并检查
79
77
 
80
- 编辑 `_config.yml`,启用主题:
78
+ 在博客 `_config.yml` 中启用主题:
81
79
 
82
80
  ```yaml
83
81
  theme: stellar
84
82
  ```
85
83
 
86
- ### 从轻博客开始
87
-
88
- 配置完成后即可发布文章。Wiki、专栏、笔记本与动态数据组件按需启用,文档中均有详细说明;也可以直接参考示例仓库的 `blog` 场景快速搭建。
89
-
90
- ## 使用文档
91
-
92
- 完整文档请见:https://xaoxuu.com/wiki/stellar/
84
+ 然后运行 Doctor 并生成站点:
93
85
 
94
- > AI 文档:https://deepwiki.com/xaoxuu/hexo-theme-stellar/
95
-
96
- - 更新日志:[CHANGELOG.md](https://github.com/xaoxuu/hexo-theme-stellar/blob/main/CHANGELOG.md) · [Releases](https://github.com/xaoxuu/hexo-theme-stellar/releases)
97
-
98
- ### 常用文档
86
+ ```bash
87
+ npx hexo stellar doctor
88
+ npx hexo generate
89
+ ```
99
90
 
100
- - [标签组件](https://xaoxuu.com/wiki/stellar/tag-plugins/)
101
- - [主题配置](https://xaoxuu.com/wiki/stellar/theme-settings/)
102
- - [Wiki 系统](https://xaoxuu.com/wiki/stellar/wiki-settings/)
103
- - [专栏与笔记](https://xaoxuu.com/wiki/stellar/topic/)
91
+ 完整步骤见[环境与安装](https://xaoxuu.com/wiki/stellar/start/install/)和[创建第一个站点](https://xaoxuu.com/wiki/stellar/start/first-site/)
104
92
 
105
- ## 反馈
93
+ ## 文档与社区
106
94
 
107
- - 提交 Issues:https://github.com/xaoxuu/hexo-theme-stellar/issues/
108
- - 参与讨论:https://github.com/xaoxuu/hexo-theme-stellar/discussions/
109
- - 贡献指南:[CONTRIBUTING.md](CONTRIBUTING.md) · [Wiki 贡献页](https://xaoxuu.com/wiki/stellar/contributors/)
95
+ - [配置自己的站点](https://xaoxuu.com/wiki/stellar/start/configuration/)
96
+ - [使用内容组件](https://xaoxuu.com/wiki/stellar/reference/tags/)
97
+ - [管理 Wiki、专栏与笔记本](https://xaoxuu.com/wiki/stellar/reference/collection/)
98
+ - [主题配置参考](https://xaoxuu.com/wiki/stellar/reference/theme/)
99
+ - [从 v1 迁移到 v2](https://xaoxuu.com/wiki/stellar/migration/v1-to-v2/)
100
+ - [Issues](https://github.com/xaoxuu/hexo-theme-stellar/issues/):反馈可以复现的问题
101
+ - [Discussions](https://github.com/xaoxuu/hexo-theme-stellar/discussions/):交流使用经验和想法
102
+ - [贡献指南](CONTRIBUTING.md):参与主题开发与文档维护
110
103
 
111
104
  ## 开源许可
112
105
 
113
- 本项目采用 [MIT License](LICENSE),Copyright (c) 2021 xaoxuu,永久开源、完全免费。
106
+ Stellar 使用 [MIT License](LICENSE),Copyright (c) 2021 xaoxuu,永久开源、完全免费。第三方组件及其许可证见[第三方授权声明](legal/THIRD-PARTY-NOTICES.md)。