hexo-theme-stellar 1.44.0 → 2.0.0-rc.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/CHANGELOG.md +39 -5
- package/CONTRIBUTING.md +29 -120
- package/README.md +60 -59
- package/README_EN.md +44 -74
- package/_config.yml +884 -744
- package/_data/icons.yml +43 -171
- package/_data/widgets.yml +1 -1
- package/languages/en.yml +59 -2
- package/languages/zh-CN.yml +59 -2
- package/languages/zh-TW.yml +59 -2
- package/layout/404.ejs +4 -4
- package/layout/_partial/comments/artalk/layout.ejs +3 -2
- package/layout/_partial/comments/beaudar/layout.ejs +2 -2
- package/layout/_partial/comments/giscus/layout.ejs +2 -5
- package/layout/_partial/comments/layout.ejs +11 -40
- package/layout/_partial/comments/twikoo/layout.ejs +3 -2
- package/layout/_partial/comments/utterances/layout.ejs +2 -2
- package/layout/_partial/comments/waline/layout.ejs +3 -2
- package/layout/_partial/components/collection-item.ejs +30 -13
- package/layout/_partial/components/collection.ejs +2 -2
- package/layout/_partial/cover/index.ejs +5 -2
- package/layout/_partial/cover/wiki_cover.ejs +39 -28
- package/layout/_partial/dropdown.ejs +26 -14
- package/layout/_partial/head.ejs +94 -67
- package/layout/_partial/main/article/contributors.ejs +12 -9
- package/layout/_partial/main/article/post_footer.ejs +47 -0
- package/layout/_partial/main/article/post_read_next.ejs +22 -0
- package/layout/_partial/main/article/post_related.ejs +14 -0
- package/layout/_partial/main/article/post_tags.ejs +12 -0
- package/layout/_partial/main/article/share.ejs +55 -0
- package/layout/_partial/main/footer.ejs +11 -10
- package/layout/_partial/main/{navbar/nav_tabs_blog.ejs → listing_nav/blog.ejs} +21 -18
- package/layout/_partial/main/listing_nav/wiki.ejs +56 -0
- package/layout/_partial/main/navbar/article_banner.ejs +39 -35
- package/layout/_partial/main/navbar/breadcrumb/blog.ejs +15 -28
- package/layout/_partial/main/navbar/breadcrumb/note.ejs +12 -5
- package/layout/_partial/main/navbar/breadcrumb/wiki.ejs +15 -11
- package/layout/_partial/main/navbar/dateinfo.ejs +28 -12
- package/layout/_partial/main/navbar/ghinfo.ejs +5 -3
- package/layout/_partial/main/notebook/note_card.ejs +12 -17
- package/layout/_partial/main/notebook/note_tags.ejs +3 -4
- package/layout/_partial/main/notebook/notebook_card.ejs +11 -4
- package/layout/_partial/main/pin_slider.ejs +48 -43
- package/layout/_partial/main/post_list/archive_item.ejs +8 -4
- package/layout/_partial/main/post_list/latest_post_card.ejs +10 -4
- package/layout/_partial/main/post_list/post_card.ejs +39 -90
- package/layout/_partial/main/post_list/topic_card.ejs +7 -5
- package/layout/_partial/main/post_list/wiki_card.ejs +16 -13
- package/layout/_partial/menubtn.ejs +3 -3
- package/layout/_partial/primitives/item.ejs +8 -0
- package/layout/_partial/primitives/navigation.ejs +17 -0
- package/layout/_partial/primitives/region.ejs +16 -0
- package/layout/_partial/primitives/section.ejs +8 -0
- package/layout/_partial/primitives/shell.ejs +34 -0
- package/layout/_partial/regions/widgets.ejs +84 -0
- package/layout/_partial/scripts/defines.ejs +46 -76
- package/layout/_partial/scripts/runtime.ejs +51 -0
- package/layout/_partial/scripts.ejs +18 -42
- package/layout/_partial/search/dialog.ejs +33 -0
- package/layout/_partial/search/shortcut.ejs +1 -0
- package/layout/_partial/sidebar/brand.ejs +127 -0
- package/layout/_partial/sidebar/menu.ejs +59 -14
- package/layout/_partial/sidebar/search.ejs +58 -41
- package/layout/_partial/widgets/actions.ejs +25 -0
- package/layout/_partial/widgets/author.ejs +9 -5
- package/layout/_partial/widgets/components/linklist.ejs +1 -2
- package/layout/_partial/widgets/ghissues.ejs +7 -10
- package/layout/_partial/widgets/ghrepo.ejs +23 -16
- package/layout/_partial/widgets/ghuser.ejs +3 -3
- package/layout/_partial/widgets/recent.ejs +25 -21
- package/layout/_partial/widgets/related.ejs +25 -34
- package/layout/_partial/widgets/settings.ejs +17 -0
- package/layout/_partial/widgets/tagtree.ejs +18 -10
- package/layout/_partial/widgets/toc.ejs +17 -9
- package/layout/_partial/widgets/tree.ejs +12 -13
- package/layout/archive.ejs +20 -13
- package/layout/categories.ejs +4 -3
- package/layout/collection-preview.ejs +8 -9
- package/layout/index.ejs +32 -43
- package/layout/index_topic.ejs +6 -13
- package/layout/index_wiki.ejs +17 -34
- package/layout/layout.ejs +192 -65
- package/layout/notebooks.ejs +3 -3
- package/layout/notes.ejs +4 -4
- package/layout/page.ejs +95 -50
- package/layout/settings.ejs +109 -0
- package/layout/tags.ejs +4 -3
- package/{THIRD-PARTY-NOTICES.md → legal/THIRD-PARTY-NOTICES.md} +8 -4
- package/package.json +15 -3
- package/scripts/commands/stellar.js +55 -0
- package/scripts/events/index.js +15 -9
- package/scripts/events/lib/authors.js +9 -7
- package/scripts/events/lib/config-hot-reload.js +65 -0
- package/scripts/events/lib/config-schema.js +20 -0
- package/scripts/events/lib/config.js +22 -63
- package/scripts/events/lib/content-config.js +5 -0
- package/scripts/events/lib/doc_tree.js +99 -9
- package/scripts/events/lib/links.js +6 -3
- package/scripts/events/lib/notebooks.js +200 -8
- package/scripts/events/lib/utils.js +4 -4
- package/scripts/events/lib/version-check.js +57 -3
- package/scripts/filters/index.js +2 -27
- package/scripts/filters/lib/img_lazyload.js +4 -126
- package/scripts/filters/lib/img_onerror.js +14 -17
- package/scripts/filters/lib/page-view-model.js +152 -0
- package/scripts/generators/404.js +13 -8
- package/scripts/generators/author.js +16 -11
- package/scripts/generators/notebooks.js +68 -39
- package/scripts/generators/search.js +62 -67
- package/scripts/generators/settings.js +43 -0
- package/scripts/generators/stellar-icons.js +13 -5
- package/scripts/generators/topic.js +24 -13
- package/scripts/generators/wiki.js +49 -21
- package/scripts/helpers/ai_label.js +6 -12
- package/scripts/helpers/brand.js +17 -0
- package/scripts/helpers/browser_runtime_manifest.js +12 -0
- package/scripts/helpers/caption.js +8 -0
- package/scripts/helpers/category_color.js +13 -13
- package/scripts/helpers/collection.js +18 -0
- package/scripts/helpers/comments_model.js +14 -0
- package/scripts/helpers/extension_assets.js +8 -0
- package/scripts/helpers/json_ld.js +16 -7
- package/scripts/helpers/mdrender.js +3 -9
- package/scripts/helpers/menu.js +9 -0
- package/scripts/helpers/post_view_model.js +23 -0
- package/scripts/helpers/regions.js +37 -0
- package/scripts/helpers/scrollreveal.js +7 -7
- package/scripts/helpers/search_domain.js +34 -0
- package/scripts/helpers/service_provider.js +9 -0
- package/scripts/helpers/settings.js +16 -0
- package/scripts/helpers/share_action.js +8 -0
- package/scripts/helpers/stellar_config.js +12 -0
- package/scripts/helpers/stellar_data.js +8 -0
- package/scripts/helpers/stellar_info.js +21 -16
- package/scripts/helpers/stellar_inject.js +9 -0
- package/scripts/helpers/ui_classes.js +12 -0
- package/scripts/lib/ai_label.js +14 -11
- package/scripts/lib/brand.js +41 -0
- package/scripts/lib/browser-runtime.js +115 -0
- package/scripts/lib/caption.js +21 -0
- package/scripts/lib/collection-pipeline/adapters/notebook.js +62 -0
- package/scripts/lib/collection-pipeline/adapters/post.js +20 -0
- package/scripts/lib/collection-pipeline/adapters/topic.js +82 -0
- package/scripts/lib/collection-pipeline/adapters/wiki.js +20 -0
- package/scripts/lib/collection-pipeline/index.js +169 -0
- package/scripts/lib/collection-pipeline/registry.js +27 -0
- package/scripts/lib/collection-pipeline/shared.js +164 -0
- package/scripts/lib/comments.js +60 -0
- package/scripts/lib/config-inject.js +20 -0
- package/scripts/lib/config-schema.js +1095 -0
- package/scripts/lib/content-config.js +157 -0
- package/scripts/lib/content-defaults.js +52 -0
- package/scripts/lib/content-membership.js +233 -0
- package/scripts/lib/contribution-contract.js +165 -0
- package/scripts/lib/contribution-registry.js +429 -0
- package/scripts/lib/doc_tree.js +46 -44
- package/scripts/lib/doctor.js +296 -0
- package/scripts/lib/front-matter.js +29 -0
- package/scripts/lib/hero-effect-registry.js +262 -0
- package/scripts/lib/html-images.js +128 -0
- package/scripts/lib/internal-constants.js +152 -0
- package/scripts/lib/layout-config.js +62 -0
- package/scripts/lib/mdrender_html.js +36 -23
- package/scripts/lib/menu.js +36 -0
- package/scripts/lib/model-schema.js +90 -0
- package/scripts/lib/models/index.js +1538 -0
- package/scripts/lib/new-note.js +172 -0
- package/scripts/lib/page-view-model-registry.js +103 -0
- package/scripts/lib/regions.js +132 -0
- package/scripts/lib/runtime-data.js +23 -0
- package/scripts/lib/safe-path.js +44 -0
- package/scripts/lib/search-domain.js +59 -0
- package/scripts/lib/seo.js +10 -10
- package/scripts/lib/service-provider.js +12 -0
- package/scripts/lib/settings.js +16 -0
- package/scripts/lib/share-services.js +96 -0
- package/scripts/lib/source-config.js +27 -0
- package/scripts/lib/theme-metadata.js +22 -0
- package/scripts/lib/ui-capabilities.js +32 -0
- package/scripts/lib/widget-registry.js +150 -0
- package/scripts/lib/wiki_readme.js +15 -11
- package/scripts/schema/config-rules.js +288 -0
- package/scripts/schema/config-schema.js +162 -0
- package/scripts/schema/content-config-rules.js +262 -0
- package/scripts/schema/content-config-schema.js +321 -0
- package/scripts/schema/model-schema.js +965 -0
- package/scripts/schema/schema-utils.js +48 -0
- package/scripts/tags/index.js +2 -3
- package/scripts/tags/lib/albums.js +6 -6
- package/scripts/tags/lib/banner.js +10 -4
- package/scripts/tags/lib/box.js +1 -1
- package/scripts/tags/lib/button.js +1 -1
- package/scripts/tags/lib/chat.js +9 -31
- package/scripts/tags/lib/checkbox.js +6 -1
- package/scripts/tags/lib/copy.js +4 -1
- package/scripts/tags/lib/dropdown.js +6 -4
- package/scripts/tags/lib/emoji.js +5 -10
- package/scripts/tags/lib/friends.js +4 -4
- package/scripts/tags/lib/gallery.js +7 -7
- package/scripts/tags/lib/ghcard.js +5 -3
- package/scripts/tags/lib/gist.js +16 -0
- package/scripts/tags/lib/grid.js +4 -2
- package/scripts/tags/lib/hashtag.js +1 -1
- package/scripts/tags/lib/icon.js +1 -1
- package/scripts/tags/lib/image.js +1 -1
- package/scripts/tags/lib/link.js +6 -3
- package/scripts/tags/lib/mark.js +8 -3
- package/scripts/tags/lib/md.js +1 -1
- package/scripts/tags/lib/note.js +1 -1
- package/scripts/tags/lib/okr.js +18 -1
- package/scripts/tags/lib/posters.js +6 -6
- package/scripts/tags/lib/quot.js +15 -5
- package/scripts/tags/lib/rating.js +7 -4
- package/scripts/tags/lib/sites.js +8 -6
- package/scripts/tags/lib/tip.js +6 -6
- package/scripts/tags/lib/toc.js +2 -2
- package/scripts/tags/lib/vote.js +8 -5
- package/source/css/_appearances/_mixins.styl +258 -0
- package/source/css/_appearances/card.styl +30 -0
- package/source/css/_appearances/flat.styl +44 -0
- package/source/css/_appearances/glass.styl +138 -0
- package/source/css/_appearances/minimal.styl +325 -0
- package/source/css/_common/base.styl +5 -9
- package/source/css/_common/blockquote.styl +0 -1
- package/source/css/_common/button.styl +1 -1
- package/source/css/_common/device.styl +24 -42
- package/source/css/_common/dropdown.styl +20 -14
- package/source/css/_common/highlight.styl +5 -12
- package/source/css/_common/icon.styl +38 -0
- package/source/css/_common/input.styl +33 -0
- package/source/css/_common/loading.styl +2 -2
- package/source/css/_common/svg.styl +0 -8
- package/source/css/_components/collection.styl +21 -64
- package/source/css/_components/layout.styl +524 -84
- package/source/css/_components/list.styl +36 -22
- package/source/css/_components/main.styl +16 -19
- package/source/css/_components/md.styl +8 -13
- package/source/css/_components/pages/article-indent.styl +1 -1
- package/source/css/_components/pages/article-story.styl +7 -6
- package/source/css/_components/pages/article-tech.styl +5 -5
- package/source/css/_components/pages/collection-preview.styl +1 -5
- package/source/css/_components/pages/settings.styl +184 -0
- package/source/css/_components/partial/article-banner.styl +2 -2
- package/source/css/_components/partial/article-footer.styl +0 -32
- package/source/css/_components/partial/article-share.styl +48 -0
- package/source/css/_components/partial/article-tags.styl +1 -1
- package/source/css/_components/partial/cover.styl +13 -13
- package/source/css/_components/partial/listing-nav.styl +68 -0
- package/source/css/_components/partial/paginator.styl +1 -1
- package/source/css/_components/pin-slider.styl +3 -3
- package/source/css/_components/sidebar/brand.styl +135 -0
- package/source/css/_components/sidebar/footer.styl +14 -31
- package/source/css/_components/sidebar/nav-area.styl +4 -0
- package/source/css/_components/sidebar/search.styl +176 -26
- package/source/css/_components/sidebar/sidebar.styl +76 -110
- package/source/css/_components/tag-plugins/banner.styl +16 -28
- package/source/css/_components/tag-plugins/checkbox.styl +7 -22
- package/source/css/_components/tag-plugins/copy.styl +3 -5
- package/source/css/_components/tag-plugins/gallery.styl +2 -2
- package/source/css/_components/tag-plugins/grid.styl +3 -0
- package/source/css/_components/tag-plugins/image.styl +2 -1
- package/source/css/_components/tag-plugins/link.styl +0 -1
- package/source/css/_components/tag-plugins/mark.styl +19 -4
- package/source/css/_components/tag-plugins/mdrender.styl +2 -2
- package/source/css/_components/tag-plugins/navbar.styl +23 -17
- package/source/css/_components/tag-plugins/note.styl +2 -2
- package/source/css/_components/tag-plugins/okr.styl +1 -2
- package/source/css/_components/tag-plugins/quot.styl +5 -0
- package/source/css/_components/tag-plugins/rating.styl +3 -2
- package/source/css/_components/tag-plugins/timeline.styl +1 -1
- package/source/css/_components/tag-plugins/tip.styl +1 -1
- package/source/css/_components/tag-plugins/vote.styl +3 -2
- package/source/css/_components/widgets/ghrepo.styl +2 -1
- package/source/css/_components/widgets/ghuser.styl +4 -6
- package/source/css/_components/widgets/settings.styl +49 -0
- package/source/css/_components/widgets/timeline.styl +2 -2
- package/source/css/_components/widgets/toc.styl +12 -33
- package/source/css/_components/widgets/widgets.styl +14 -19
- package/source/css/_components/wiki-card.styl +2 -2
- package/source/css/_custom.styl +26 -32
- package/source/css/_defines/func.styl +47 -37
- package/source/css/_defines/theme_base.styl +8 -10
- package/source/css/_plugins/card-hover.styl +1 -1
- package/source/css/_plugins/copycode.styl +16 -19
- package/source/css/_plugins/index.styl +3 -8
- package/source/css/_plugins/lazyload.styl +1 -1
- package/source/css/main.styl +12 -0
- package/source/js/main.js +302 -59
- package/source/js/plugins/adaptive-text.js +33 -16
- package/source/js/plugins/card-hover.js +2 -24
- package/source/js/plugins/copycode.js +10 -16
- package/source/js/plugins/voice.js +51 -48
- package/source/js/profile.js +316 -0
- package/source/js/runtime/asset-loader.js +61 -0
- package/source/js/runtime/extension-registry.js +149 -0
- package/source/js/runtime/extensions/card-hover.js +5 -0
- package/source/js/runtime/extensions/color-scheme-switch.js +101 -0
- package/source/js/runtime/extensions/comments.js +200 -0
- package/source/js/runtime/extensions/deferred-icons.js +53 -0
- package/source/js/{plugins → runtime/extensions}/dropdown.js +69 -30
- package/source/js/runtime/extensions/feature.js +200 -0
- package/source/js/runtime/extensions/hero-effect.js +179 -0
- package/source/js/runtime/extensions/reveal.js +80 -0
- package/source/js/runtime/extensions/search.js +23 -0
- package/source/js/{services.js → runtime/extensions/services.js} +67 -54
- package/source/js/runtime/extensions/settings.js +235 -0
- package/source/js/runtime/hero-effects/ferrofluid.js +385 -0
- package/source/js/{plugins → runtime/hero-effects}/galaxy.js +53 -177
- package/source/js/runtime/hero-effects/light-rays.js +293 -0
- package/source/js/runtime/index.js +75 -0
- package/source/js/runtime/legacy-request-adapter.js +47 -0
- package/source/js/runtime/request-cache.js +219 -0
- package/source/js/search/algolia-search.js +76 -51
- package/source/js/search/highlight.js +1 -1
- package/source/js/search/local-search.js +96 -57
- package/source/js/search/shortcut.js +31 -20
- package/source/js/services/friends_and_posts.js +6 -1
- package/source/js/services/rating.js +14 -6
- package/source/js/services/siteinfo.js +3 -7
- package/source/js/services/timeline.js +1 -1
- package/source/js/services/vote.js +7 -5
- package/source/js/services/weibo.js +1 -1
- package/source/js/utils.js +19 -444
- package/.claude/skills/stellar-theme-dev/SKILL.md +0 -51
- package/_data/chat_users.yml +0 -0
- package/layout/_partial/comments/artalk/script.ejs +0 -76
- package/layout/_partial/comments/beaudar/script.ejs +0 -33
- package/layout/_partial/comments/giscus/script.ejs +0 -31
- package/layout/_partial/comments/script.ejs +0 -3
- package/layout/_partial/comments/twikoo/script.ejs +0 -25
- package/layout/_partial/comments/utterances/script.ejs +0 -33
- package/layout/_partial/comments/waline/script.ejs +0 -43
- package/layout/_partial/main/article/article_footer.ejs +0 -164
- package/layout/_partial/main/article/article_tags.ejs +0 -16
- package/layout/_partial/main/article/read_next.ejs +0 -63
- package/layout/_partial/main/article/related_posts.ejs +0 -16
- package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +0 -52
- package/layout/_partial/scripts/bootstrap.ejs +0 -37
- package/layout/_partial/scripts/lazyload.ejs +0 -89
- package/layout/_partial/sidebar/grad-def.ejs +0 -26
- package/layout/_partial/sidebar/index_leftbar.ejs +0 -191
- package/layout/_partial/sidebar/index_rightbar.ejs +0 -94
- package/layout/_partial/sidebar/logo.ejs +0 -99
- package/layout/_plugins/adaptive_text.ejs +0 -11
- package/layout/_plugins/card_hover.ejs +0 -32
- package/layout/_plugins/copycode.ejs +0 -17
- package/layout/_plugins/fancybox.ejs +0 -53
- package/layout/_plugins/heti.ejs +0 -21
- package/layout/_plugins/index.ejs +0 -50
- package/layout/_plugins/mathjax.ejs +0 -49
- package/layout/_plugins/mermaid.ejs +0 -33
- package/layout/_plugins/preload.ejs +0 -9
- package/layout/_plugins/scrollreveal.ejs +0 -102
- package/layout/_plugins/search/algolia_search.ejs +0 -12
- package/layout/_plugins/search/local_search.ejs +0 -9
- package/layout/_plugins/swiper.ejs +0 -27
- package/layout/_plugins/tianli_gpt.ejs +0 -14
- package/scripts/commands/new-note.js +0 -49
- package/scripts/events/lib/merge_posts.js +0 -48
- package/scripts/events/lib/topic_tree.js +0 -48
- package/scripts/helpers/related_posts.js +0 -51
- package/scripts/helpers/subtitle.js +0 -8
- package/scripts/lib/notebooks.js +0 -181
- package/scripts/lib/subtitle.js +0 -28
- package/scripts/tags/lib/about.js +0 -48
- package/source/css/_components/page-transition.styl +0 -22
- package/source/css/_components/partial/navbar.styl +0 -51
- package/source/css/_components/sidebar/logo.styl +0 -111
- package/source/css/_components/tag-plugins/about.styl +0 -56
- package/source/css/_components/widgets/tree.styl +0 -0
- package/source/css/_plugins/scrollreveal.styl +0 -6
- package/source/css/_plugins/tianli_gpt.styl +0 -213
- package/source/css/plugins/mermaid.styl +0 -137
- package/source/js/icons.js +0 -60
- package/source/js/services/fcircle.js +0 -35
- package/source/js/theme.js +0 -61
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.0-rc.1
|
|
4
|
+
|
|
5
|
+
> 发布日期:2026-09-07
|
|
6
|
+
|
|
7
|
+
本节记录从最近公开版本 `1.44.0` 到当前候选文件树的净变化;开发期间已经被替换的中间方案不属于迁移契约。
|
|
8
|
+
|
|
9
|
+
### 新功能
|
|
10
|
+
|
|
11
|
+
- 配置、Collection YAML 与页面 Front Matter 采用声明式严格 Schema;默认配置、校验、JavaScript 投影和 Reference 由同一字段事实生成,Doctor 在构建前给出带来源和字段路径的诊断。
|
|
12
|
+
- 新增 Post、Topic、Wiki、Notebook、Note 与索引页共享的 Collection/PageViewModel 管线,并以 `listed/searchable` 分离聚合展示和搜索收录。
|
|
13
|
+
- 页面外壳统一为 Topbar、Leftbar、Rightbar Region,Brand、Menu、Widget、Footer 和 13 个 Profile 使用结构化配置与明确的覆盖语义。
|
|
14
|
+
- 新增 `card/glass/minimal/flat` 外观预设、明暗模式切换、颜色/渐变/排版/形状/背景设置,以及独立设置页。
|
|
15
|
+
- 浏览器功能改为原生 ESM Runtime Manifest 和按 DOM 命中加载的 Extension;搜索、评论、Feature、数据服务及请求缓存拥有明确生命周期。
|
|
16
|
+
- Wiki Hero 支持 `ferrofluid`、`galaxy`、`light-rays` 三种可选背景效果,效果与静态图片可叠加;标签目录新增 `gist`。
|
|
17
|
+
- 新增 `hexo stellar doctor` 与 `hexo stellar new note`;目录驱动的完整 Blueprint 改由 Stellar Examples 仓库维护。
|
|
18
|
+
|
|
19
|
+
### 行为、样式与工程变化
|
|
20
|
+
|
|
21
|
+
- Article 与 Notebook 的列表、横幅、许可、分享、标签和排序默认值收敛到内容模型;Collection 内容默认关闭分享,Notebook 与其它 Collection 使用一致的覆盖规则。
|
|
22
|
+
- 侧栏集合、Navbar、Dropdown、Grid、文章卡片、下载按钮和 Topbar 对齐使用统一的 UI capability、形状与状态反馈。
|
|
23
|
+
- 运行环境升级为 Node.js 22+、Hexo 8+;构建、包集成、性能、知识库、贡献注册表和复用规则各自拥有独立门禁。
|
|
24
|
+
- 发布流程原子同步 `package.json`、`package-lock.json` 与安装知识库的版本,并把未跟踪文件纳入工作区门禁,避免候选包、锁文件或临时产物漂移;稳定版写入 npm `latest`,RC 写入 `rc` dist-tag。
|
|
25
|
+
- 主题仓库只保留长期指南、当前知识库和阶段审计;单次方案、迁移中间态及已被最终实现取代的测试/兼容残留不进入发布文件树。
|
|
26
|
+
|
|
27
|
+
### 升级注意(配置变更与破坏性改动)
|
|
28
|
+
|
|
29
|
+
- 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`。
|
|
30
|
+
- Collection 与 Front Matter 需要迁移为 `collection/route/navigation/listing/visibility/banner/article/comments/render/seo` 等分组字段;未知字段、错误类型与非法枚举会在构建早期失败。
|
|
31
|
+
- `about`、`users` 标签以及对应的 `chat_users.yml`、`fcircle` 适配器已移除;`tip` 改为单标签 `{% tip 词句 pop:注解 %}`,`quot` 支持直接图标键与 `color`。
|
|
32
|
+
- 浏览器后处理必须原样保留 `public/js/runtime/**/*.js` 的 ESM 语义、相对 import 与 JavaScript MIME 类型。
|
|
33
|
+
- v2 当前源码从仓库 `main` 安装并需要执行 `npm install --prefix themes/stellar`;npm 包是否为 v2 以实际公开版本为准。
|
|
34
|
+
|
|
35
|
+
Full Changelog: [1.44.0...main](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.44.0...main)
|
|
36
|
+
|
|
3
37
|
## 1.44.0
|
|
4
38
|
|
|
5
39
|
> 发布日期:2026-08-21
|
|
@@ -104,18 +138,18 @@ Full Changelog: [1.42.0...1.42.1](https://github.com/xaoxuu/hexo-theme-stellar/c
|
|
|
104
138
|
### 重构
|
|
105
139
|
- 移除已失效的 auto_banner(Unsplash 自动横幅)与 `poster` 配置
|
|
106
140
|
- 页面横幅上块重构为显式两行结构(面包屑 + 阅读时长/AI 标签 + 日期行)
|
|
107
|
-
- 评论数图标统一使用 `default:
|
|
141
|
+
- 评论数图标统一使用 `default:to-comment`,移除 `weibo:comment`
|
|
108
142
|
|
|
109
143
|
### 其他
|
|
110
144
|
- 移除知识库合并版 `知识库全量.md`,知识库以领域页面为唯一事实源
|
|
111
|
-
- 新增 AI
|
|
145
|
+
- 新增 AI 规范引用一致性检查与发版前提交登记完整性检查(随 `npm run check` 执行)
|
|
112
146
|
|
|
113
147
|
### 升级注意(配置变更与破坏性改动)
|
|
114
148
|
- 移除 `article.auto_banner`(Unsplash 自动横幅已失效)与文章 front-matter `poster`(`headline` / `topic` / `caption`);`poster.color` / `banner_info.color` 显式文字颜色不再生效,由自适应文字颜色接管
|
|
115
149
|
- 新增 `article.card_style`(`hero` 默认 / `classic`):未显式设置的站点保持 hero 卡片样式
|
|
116
150
|
- 新增 `plugins.adaptive_text`(默认 `enable: true`):页面存在 `[data-text-adaptive]` 元素时才按需加载,文字颜色默认随背景自适应
|
|
117
151
|
- 删除间距令牌 `--gap-margin` / `--gap-padding` / `--gap-max`,替换为 `--gap-base`(组件内部间距)与 `--gap-page`(页面级留白);引用旧令牌的自定义 CSS 需迁移
|
|
118
|
-
- `weibo:comment` 图标已移除,评论数图标统一使用 `default:
|
|
152
|
+
- `weibo:comment` 图标已移除,评论数图标统一使用 `default:to-comment`;自定义中引用了 `weibo:comment` 的站点请改用 `default:to-comment`
|
|
119
153
|
- 知识库合并版 `知识库全量.md` 移除(RAG 可直接索引领域页面)
|
|
120
154
|
|
|
121
155
|
Full Changelog: [1.41.0...main](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.41.0...main)
|
|
@@ -290,7 +324,7 @@ Full Changelog: [1.37.0...1.38.0](https://github.com/xaoxuu/hexo-theme-stellar/c
|
|
|
290
324
|
|
|
291
325
|
### 其他
|
|
292
326
|
- CHANGELOG.md 历史数据一次性从 GitHub Releases API 同步入库(76 个版本,统一格式)
|
|
293
|
-
- 新增发版流程文档(docs/guides/release-process.md
|
|
327
|
+
- 新增发版流程文档(docs/guides/release-process.md)并完善发布自动化记录
|
|
294
328
|
|
|
295
329
|
Full Changelog: [1.36.0...1.37.0](https://github.com/xaoxuu/hexo-theme-stellar/compare/1.36.0...1.37.0)
|
|
296
330
|
|
|
@@ -336,7 +370,7 @@ Full Changelog: [1.35.0...1.36.0](https://github.com/xaoxuu/hexo-theme-stellar/c
|
|
|
336
370
|
- 统一 URL 路径规范化逻辑,修复 canonical 标签路径不一致的问题
|
|
337
371
|
- 修复 wiki 文档树中索引页(index)的路径匹配错误
|
|
338
372
|
- 发版脚本迁移为 Node CLI(release.js),支持版本校验、dry-run 预览与二次确认
|
|
339
|
-
- 完善仓库 AI 协作规范(AGENTS.md、issue 处理规则),重组 docs
|
|
373
|
+
- 完善仓库 AI 协作规范(AGENTS.md、issue 处理规则),重组 docs 中的长期指南与审计记录
|
|
340
374
|
- 优化 npm 发布忽略规则(.npmignore)
|
|
341
375
|
|
|
342
376
|
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)
|
|
3
|
+
感谢你考虑为 [Stellar](https://github.com/xaoxuu/hexo-theme-stellar) 贡献代码或文档。本指南只保留贡献者需要的入口;工程规则以 [AGENTS.md](AGENTS.md) 为准,主题使用方法见 [Wiki 文档](https://xaoxuu.com/wiki/stellar/)。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## 仓库与职责边界
|
|
5
|
+
## 仓库边界
|
|
8
6
|
|
|
9
7
|
| 仓库 | 职责 |
|
|
10
|
-
|
|
11
|
-
| [hexo-theme-stellar](https://github.com/xaoxuu/hexo-theme-stellar) |
|
|
12
|
-
| [
|
|
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
|
-
|
|
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
|
-
|
|
16
|
+
公开兼容范围以 [README.md](README.md) 为准,当前开发命令以 [package.json](package.json) 为准,CI 使用的 Node.js 版本以 [.github/workflows/ci.yml](.github/workflows/ci.yml) 为准,避免在多处复制版本矩阵。
|
|
28
17
|
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
+
先运行最接近改动的检查;需要全仓证据时运行 `npm run check`。所有可用脚本及其当前组合以 `package.json` 为准。宿主构建、视觉检查和分发验收只在任务影响这些契约时补充。
|
|
68
34
|
|
|
69
|
-
|
|
35
|
+
机器契约与直接测试随实现更新;知识库、CHANGELOG 和版本级 `VERIFICATION.md` 在发版准备时按最终净变化集中同步。
|
|
70
36
|
|
|
71
|
-
|
|
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)
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
61
|
+
提问时请说明现象、复现步骤、尝试过程与报错信息。
|
|
153
62
|
|
|
154
63
|
## 许可
|
|
155
64
|
|
package/README.md
CHANGED
|
@@ -2,112 +2,113 @@
|
|
|
2
2
|
|
|
3
3
|
[简体中文](README.md) · [English](README_EN.md)
|
|
4
4
|
|
|
5
|
+
一个博客,也是一套可以长期生长的内容系统。
|
|
6
|
+
|
|
7
|
+
从一篇文章开始。以后想加项目文档、专栏或笔记,仍然在同一个站点里写。
|
|
8
|
+
|
|
9
|
+
[创建第一个博客](https://xaoxuu.com/wiki/stellar/start/install/) · [蓝图与展示墙](https://xaoxuu.com/wiki/stellar/support/examples/) · [完整文档](https://xaoxuu.com/wiki/stellar/)
|
|
10
|
+
|
|
11
|
+
> Stellar v2 当前版本为 `2.0.0-rc.1`;是否已经公开发布,以 npm 页面和 GitHub Releases 为准。
|
|
12
|
+
|
|
5
13
|
[](https://www.npmjs.com/package/hexo-theme-stellar)
|
|
6
14
|
[](https://github.com/xaoxuu/hexo-theme-stellar/blob/main/LICENSE)
|
|
7
15
|
[](https://github.com/xaoxuu/hexo-theme-stellar)
|
|
8
16
|
[](https://www.npmjs.com/package/hexo-theme-stellar)
|
|
9
17
|
[](https://github.com/xaoxuu/hexo-theme-stellar/releases)
|
|
10
18
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
可以只把它当作一个轻博客主题使用——安装启用即可写文章;Wiki 知识库、专栏、笔记与动态数据组件都按需启用,随着你的内容需求自然生长。
|
|
14
|
-
|
|
15
|
-
## 为什么选择 Stellar
|
|
16
|
-
|
|
17
|
-
### 四大内容系统,一体化整合
|
|
19
|
+
## 内容多起来,也不用推倒重来
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
- **Wiki 文档系统**:既可以展示多个项目文档,也可以作为个人知识库,项目树、小节与层级导航开箱即用。
|
|
21
|
-
- **专栏系统**:系列文章集中管理,提供沉浸式的连续阅读体验。
|
|
22
|
-
- **笔记本系统**:三层架构与标签树导航,方便地梳理、归档和检索笔记。
|
|
21
|
+
普通文章照常发布。项目需要一套稳定目录时,用 Wiki;几篇文章写成了系列,收进专栏;零散知识想长期补充,放进笔记本。
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
博客、Wiki、专栏和笔记本共享同一套导航、搜索、侧栏与阅读体验。只写博客时,其它系统不会跑出来打扰你。
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
## 静态博客,也能放一些活的内容
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
动态时间线、自动友链、远程 README、GitHub 仓库与贡献者、评分和投票都可以按需接入。博客仍然是静态文件,但经常变化的内容不必每次都跟着整站重新部署。
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
远程服务不会挡住正文先显示。接口暂时不可用时,文章仍然可以读。
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
## 写作、检索和阅读是一件事
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
- **自动化友链**:自动检测友链状态、打标签、订阅友链文章。
|
|
36
|
-
- **远程 Markdown 渲染**:例如直接渲染项目仓库的 README,避免重复维护。
|
|
37
|
-
- **GitHub 仓库 / 贡献者卡片、评分、投票、最新评论**等数据组件,按需加载,不拖慢首屏。
|
|
38
|
-
- **社区文化**:可以订阅「探索号」时间线数据源,获取社区用户的宝贵经验分享。
|
|
33
|
+
提示框、折叠、标签页、图库、时间线、聊天和表格等内容组件可以互相组合。Markdown 表达不够时,不需要临时拼一套风格各异的插件。
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
本地搜索由主题生成索引,结果可以直接落到文章章节;桌面端目录和信息栏到了手机上会变成抽屉,把位置让给正文。
|
|
41
36
|
|
|
42
|
-
|
|
43
|
-
- **设计令牌驱动的样式系统**:统一的设计语言、深色模式与移动端响应式适配。
|
|
44
|
-
- **图片懒加载**按原图比例预留占位,不会出现高度跳变,体验更佳。
|
|
45
|
-
- 可选插件按需启用:代码高亮与复制、KaTeX / MathJax 数学渲染、Mermaid 图表、Fancybox 灯箱、Swiper 轮播等。
|
|
46
|
-
- **本地搜索**:内置索引生成器,结果按章节展示,点击直达锚点并高亮关键词。
|
|
47
|
-
- **SEO 完备**:JSON-LD 结构化数据、Open Graph、canonical 与克隆站检测,保护原创内容。
|
|
48
|
-
- **一站多作者**:可以为不同文章指定不同作者,每位作者都有专属主页。
|
|
37
|
+
[内容组件](https://xaoxuu.com/wiki/stellar/reference/tags/) · [站内搜索](https://xaoxuu.com/wiki/stellar/guides/search/) · [外观与排版](https://xaoxuu.com/wiki/stellar/guides/appearance/)
|
|
49
38
|
|
|
50
|
-
|
|
39
|
+
> 如果你只想写博客,它不会逼你理解这些系统;内容真的多起来时,它们已经在那里了。
|
|
51
40
|
|
|
52
|
-
##
|
|
41
|
+
## 选择一个起点
|
|
53
42
|
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
| 示例 | 适合什么样的站点 |
|
|
44
|
+
| --- | --- |
|
|
45
|
+
| 留白 · Light Blog | 安静写长文、随笔和生活记录 |
|
|
46
|
+
| 星迹 · Blog | 使用经典侧栏整理文章、分类与专栏 |
|
|
47
|
+
| 个人知识库 · Knowledge | 把博客、项目资料和长期主题放在一起 |
|
|
48
|
+
| 项目文档 · Docs | 给一个项目维护清晰的文档目录 |
|
|
56
49
|
|
|
57
|
-
[
|
|
50
|
+
示例源码在 [hexo-theme-stellar-examples](https://github.com/xaoxuu/hexo-theme-stellar-examples/)。
|
|
58
51
|
|
|
59
52
|
## 快速开始
|
|
60
53
|
|
|
61
54
|
### 环境要求
|
|
62
55
|
|
|
63
56
|
```yaml
|
|
64
|
-
Hexo:
|
|
57
|
+
Hexo: '>= 8'
|
|
65
58
|
hexo-cli: 4.3.0 ~ latest
|
|
66
|
-
node: >= 22
|
|
67
|
-
npm: >= 10
|
|
59
|
+
node: '>= 22'
|
|
60
|
+
npm: '>= 10'
|
|
68
61
|
```
|
|
69
62
|
|
|
70
|
-
###
|
|
63
|
+
### 使用最新源码
|
|
71
64
|
|
|
72
|
-
|
|
65
|
+
在博客根目录添加主题源码并安装依赖:
|
|
73
66
|
|
|
74
67
|
```bash
|
|
75
|
-
|
|
68
|
+
git submodule add -b main https://github.com/xaoxuu/hexo-theme-stellar.git themes/stellar
|
|
69
|
+
npm install --prefix themes/stellar
|
|
76
70
|
```
|
|
77
71
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
编辑 `_config.yml`,启用主题:
|
|
72
|
+
然后在博客 `_config.yml` 中启用主题:
|
|
81
73
|
|
|
82
74
|
```yaml
|
|
83
75
|
theme: stellar
|
|
84
76
|
```
|
|
85
77
|
|
|
86
|
-
|
|
78
|
+
运行 Doctor 和生成:
|
|
87
79
|
|
|
88
|
-
|
|
80
|
+
```bash
|
|
81
|
+
npx hexo stellar doctor
|
|
82
|
+
npx hexo generate
|
|
83
|
+
```
|
|
89
84
|
|
|
90
|
-
|
|
85
|
+
完整步骤见[环境与安装](https://xaoxuu.com/wiki/stellar/start/install/)和[创建第一个站点](https://xaoxuu.com/wiki/stellar/start/first-site/)。
|
|
91
86
|
|
|
92
|
-
|
|
87
|
+
### 使用 npm 公开稳定版
|
|
93
88
|
|
|
94
|
-
|
|
89
|
+
```bash
|
|
90
|
+
npm install hexo-theme-stellar
|
|
91
|
+
```
|
|
95
92
|
|
|
96
|
-
|
|
93
|
+
这条命令不保证安装到 v2。复制 v2 配置前,请先运行 `npm ls hexo-theme-stellar` 核对实际版本。
|
|
97
94
|
|
|
98
|
-
|
|
95
|
+
## 文档
|
|
99
96
|
|
|
100
|
-
- [
|
|
101
|
-
- [
|
|
102
|
-
- [Wiki
|
|
103
|
-
- [
|
|
97
|
+
- [从第一篇文章开始](https://xaoxuu.com/wiki/stellar/start/first-site/)
|
|
98
|
+
- [把博客变成自己的样子](https://xaoxuu.com/wiki/stellar/start/configuration/)
|
|
99
|
+
- [用 Wiki 写项目文档](https://xaoxuu.com/wiki/stellar/guides/wiki/)
|
|
100
|
+
- [把文章整理成专栏](https://xaoxuu.com/wiki/stellar/guides/topic/)
|
|
101
|
+
- [建立自己的笔记本](https://xaoxuu.com/wiki/stellar/guides/notebook/)
|
|
102
|
+
- [主题配置参考](https://xaoxuu.com/wiki/stellar/reference/theme/)
|
|
103
|
+
- [从 v1 迁移到 v2](https://xaoxuu.com/wiki/stellar/migration/v1-to-v2/)
|
|
104
104
|
|
|
105
|
-
##
|
|
105
|
+
## 社区
|
|
106
106
|
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
107
|
+
- [Issues](https://github.com/xaoxuu/hexo-theme-stellar/issues/):反馈可以复现的问题
|
|
108
|
+
- [Discussions](https://github.com/xaoxuu/hexo-theme-stellar/discussions/):交流使用经验和想法
|
|
109
|
+
- [蓝图与展示墙](https://xaoxuu.com/wiki/stellar/support/examples/):看看不同的人怎样使用 Stellar
|
|
110
|
+
- [贡献指南](CONTRIBUTING.md):参与主题开发与文档维护
|
|
110
111
|
|
|
111
112
|
## 开源许可
|
|
112
113
|
|
|
113
|
-
|
|
114
|
+
Stellar 使用 [MIT License](LICENSE),Copyright (c) 2021 xaoxuu,永久开源、完全免费。第三方组件及其许可证见[第三方授权声明](legal/THIRD-PARTY-NOTICES.md)。
|
package/README_EN.md
CHANGED
|
@@ -1,113 +1,83 @@
|
|
|
1
|
-
# Stellar
|
|
1
|
+
# Stellar — a blog that can grow with your work
|
|
2
2
|
|
|
3
3
|
[English](README_EN.md) · [简体中文](README.md)
|
|
4
4
|
|
|
5
|
+
Stellar can begin as a quiet personal blog and grow into a home for your articles, project documentation, series, and notes.
|
|
6
|
+
|
|
7
|
+
[See the examples](https://xaoxuu.com/wiki/stellar/support/examples/) · [Getting started](https://xaoxuu.com/wiki/stellar/start/install/) · [Chinese documentation](https://xaoxuu.com/wiki/stellar/)
|
|
8
|
+
|
|
9
|
+
> The current Stellar v2 version is `2.0.0-rc.1`. Check npm and GitHub Releases for its public availability.
|
|
10
|
+
|
|
5
11
|
[](https://www.npmjs.com/package/hexo-theme-stellar)
|
|
6
12
|
[](https://github.com/xaoxuu/hexo-theme-stellar/blob/main/LICENSE)
|
|
7
13
|
[](https://github.com/xaoxuu/hexo-theme-stellar)
|
|
8
14
|
[](https://www.npmjs.com/package/hexo-theme-stellar)
|
|
9
|
-
[](https://github.com/xaoxuu/hexo-theme-stellar/releases)
|
|
10
|
-
|
|
11
|
-
Stellar is a Hexo theme that unifies blogging and knowledge base in one place. Beneath its clean, business-style aesthetics lie four built-in content systems — Blog, Wiki, Topic, and Notebook — plus a rich collection of tag plugins and dynamic data widgets, ready to use out of the box for every kind of expression.
|
|
12
|
-
|
|
13
|
-
You can also use it as a lightweight blog theme from day one: install, enable, and start writing. Wiki, Topic, Notebook, and dynamic data widgets are all enabled on demand, growing naturally with your content needs.
|
|
14
|
-
|
|
15
|
-
## Why Stellar
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
## Four kinds of content, one site
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
- **Wiki**: Showcase multiple project documentations or use it as your personal knowledge base, with project trees, sections, and hierarchical navigation.
|
|
21
|
-
- **Topic**: Manage series of articles with an immersive, continuous reading experience.
|
|
22
|
-
- **Notebook**: A three-layer architecture with a tag tree to organize, archive, and retrieve notes with ease.
|
|
18
|
+
Publish regular blog posts as usual. Give a project its own Wiki when it needs stable navigation. Keep a series of posts together as a Topic, or collect smaller pieces of knowledge in a Notebook.
|
|
23
19
|
|
|
24
|
-
|
|
20
|
+
They share the same navigation, search, sidebars, and reading experience. If all you need is a blog, the other systems stay out of the way.
|
|
25
21
|
|
|
26
|
-
|
|
22
|
+
## A static site with room for live data
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
Timelines, link status, remote README files, GitHub repositories and contributors, ratings, and polls can load when they are needed. Your site remains static, while frequently changing data does not require a full rebuild.
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
The article remains readable when a remote service is unavailable.
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
## Writing, finding, and reading belong together
|
|
33
29
|
|
|
34
|
-
-
|
|
35
|
-
- **Automated friend links**: Automatically detect link status, tag links, and subscribe to friends' posts.
|
|
36
|
-
- **Remote Markdown rendering**: Render a project repository's README directly, avoiding duplicate maintenance.
|
|
37
|
-
- **GitHub repository / contributor cards, ratings, votes, latest comments**, and other data widgets — loaded on demand without slowing down the first screen.
|
|
38
|
-
- **Community culture**: Subscribe to the "Explorer" timeline data source to learn from the community.
|
|
30
|
+
Stellar includes content components for notes, folding sections, tabs, galleries, timelines, chat, tables, and more. Built-in local search can take a reader straight to a matching section. On smaller screens, navigation moves into drawers and leaves the page to the article.
|
|
39
31
|
|
|
40
|
-
|
|
32
|
+
## Choose a starting point
|
|
41
33
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- **Multi-author support**: Assign different authors to different posts, each with their own dedicated homepage.
|
|
34
|
+
| Example | A good fit for |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| Light Blog | Essays, personal notes, and distraction-free reading |
|
|
37
|
+
| Blog | A classic sidebar blog with categories and series |
|
|
38
|
+
| Knowledge | A personal site combining articles and long-lived knowledge |
|
|
39
|
+
| Docs | Documentation for a single project |
|
|
49
40
|
|
|
50
|
-
|
|
41
|
+
The source for these sites lives in the catalog-driven [hexo-theme-stellar-examples](https://github.com/xaoxuu/hexo-theme-stellar-examples/) repository.
|
|
51
42
|
|
|
52
|
-
##
|
|
43
|
+
## Use the latest source
|
|
53
44
|
|
|
54
|
-
|
|
55
|
-
- Showcase: [Blogs using Stellar](https://xaoxuu.com/wiki/stellar/examples/)
|
|
56
|
-
|
|
57
|
-
[](https://star-history.dera.page/#xaoxuu/hexo-theme-stellar&type=date&legend=top-left)
|
|
58
|
-
|
|
59
|
-
## Quick Start
|
|
60
|
-
|
|
61
|
-
### Requirements
|
|
62
|
-
|
|
63
|
-
```yaml
|
|
64
|
-
Hexo: 6.3.0 ~ latest (verified up to 8.1.2)
|
|
65
|
-
hexo-cli: 4.3.0 ~ latest
|
|
66
|
-
node: >= 22 # LTS recommended
|
|
67
|
-
npm: >= 10
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Install
|
|
71
|
-
|
|
72
|
-
In the root directory of your blog:
|
|
45
|
+
You need Node.js 22 or newer and Hexo 8 or newer. In the root of an existing Hexo site:
|
|
73
46
|
|
|
74
47
|
```bash
|
|
75
|
-
|
|
48
|
+
git submodule add -b main https://github.com/xaoxuu/hexo-theme-stellar.git themes/stellar
|
|
49
|
+
npm install --prefix themes/stellar
|
|
76
50
|
```
|
|
77
51
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Edit `_config.yml` and enable the theme:
|
|
52
|
+
Enable the theme in `_config.yml`:
|
|
81
53
|
|
|
82
54
|
```yaml
|
|
83
55
|
theme: stellar
|
|
84
56
|
```
|
|
85
57
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
Once configured, you can publish posts immediately. Wiki, Topic, Notebook, and dynamic widgets can be enabled on demand and are documented in detail; alternatively, start from the `blog` scenario in the example repository for a quick setup.
|
|
89
|
-
|
|
90
|
-
## Documentation
|
|
58
|
+
Then check and build the site:
|
|
91
59
|
|
|
92
|
-
|
|
60
|
+
```bash
|
|
61
|
+
npx hexo stellar doctor
|
|
62
|
+
npx hexo generate
|
|
63
|
+
```
|
|
93
64
|
|
|
94
|
-
|
|
65
|
+
The full v2 documentation is currently maintained in Chinese. The example repository provides an English quick start and complete runnable sites that can be explored without reading the whole reference.
|
|
95
66
|
|
|
96
|
-
|
|
67
|
+
## Stable npm release
|
|
97
68
|
|
|
98
|
-
|
|
69
|
+
```bash
|
|
70
|
+
npm install hexo-theme-stellar
|
|
71
|
+
```
|
|
99
72
|
|
|
100
|
-
-
|
|
101
|
-
- [Theme Settings](https://xaoxuu.com/wiki/stellar/theme-settings/)
|
|
102
|
-
- [Wiki System](https://xaoxuu.com/wiki/stellar/wiki-settings/)
|
|
103
|
-
- [Topic & Notebook](https://xaoxuu.com/wiki/stellar/topic/)
|
|
73
|
+
This command may still install v1. Run `npm ls hexo-theme-stellar` before using any v2 configuration.
|
|
104
74
|
|
|
105
|
-
##
|
|
75
|
+
## Community
|
|
106
76
|
|
|
107
|
-
- Issues
|
|
108
|
-
- Discussions
|
|
109
|
-
- Contributing
|
|
77
|
+
- [Issues](https://github.com/xaoxuu/hexo-theme-stellar/issues/) for reproducible problems
|
|
78
|
+
- [Discussions](https://github.com/xaoxuu/hexo-theme-stellar/discussions/) for ideas and usage questions
|
|
79
|
+
- [Contributing](CONTRIBUTING.md) for code and documentation work
|
|
110
80
|
|
|
111
81
|
## License
|
|
112
82
|
|
|
113
|
-
|
|
83
|
+
Stellar is free and open source under the [MIT License](LICENSE). Third-party licenses are listed in [THIRD-PARTY-NOTICES.md](legal/THIRD-PARTY-NOTICES.md).
|