valaxy 0.15.11-alpha.0 → 0.15.11

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 (119) hide show
  1. package/LICENSE +21 -0
  2. package/bin/valaxy.cjs +0 -0
  3. package/bin/valaxy.mjs +0 -0
  4. package/client/composables/dark.ts +0 -2
  5. package/client/styles/common/transition.scss +22 -0
  6. package/package.json +8 -8
  7. package/client/.vite-ssg-temp/tbbjcbuyn2/CNAME +0 -1
  8. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/PressAlgoliaSearch-2943719f.js +0 -227
  9. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/ValaxyMain-26e77dc6.js +0 -752
  10. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/_...all_-080f97f3.js +0 -31
  11. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/_...all_-5084a1b0.js +0 -42
  12. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/addon-f5fa83e1.js +0 -172
  13. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/best-pratice-0231a551.js +0 -1105
  14. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/client-496183a0.js +0 -286
  15. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/community-1b33ec3b.js +0 -627
  16. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/components-7000ddd3.js +0 -2460
  17. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/deploy-59948619.js +0 -1071
  18. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/docs-26abd7f8.js +0 -490
  19. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/extend-975f8f72.js +0 -1851
  20. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/extend-acd7107b.js +0 -1444
  21. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/faq-62ed7bfd.js +0 -321
  22. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/features-8acbd53d.js +0 -2625
  23. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/gallery-832227a9.js +0 -244
  24. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/gallery-9077df38.js +0 -370
  25. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/getting-started-52c30f03.js +0 -3684
  26. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/hexo-7311896e.js +0 -969
  27. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/hooks-67450cb3.js +0 -517
  28. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/i18n-4cd1bb86.js +0 -4159
  29. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/i18n-e1165bc4.js +0 -676
  30. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-002f83fb.js +0 -768
  31. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-3dec2b83.js +0 -527
  32. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-43565e48.js +0 -424
  33. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-5f07432e.js +0 -563
  34. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-6024f010.js +0 -3294
  35. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-6f0d6ec7.js +0 -202
  36. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-78c510e0.js +0 -549
  37. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-839c338e.js +0 -4161
  38. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-d39a48fd.js +0 -1170
  39. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-e633613c.js +0 -1564
  40. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/katex-32f21e80.js +0 -6119
  41. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/logo-bd69f816.js +0 -180
  42. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/markdown-050f3269.js +0 -5895
  43. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/news-ecba2d88.js +0 -278
  44. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/page-d48f3caa.js +0 -752
  45. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/post-ac89eaf5.js +0 -1605
  46. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/route-block-c0a8bdd8.js +0 -4
  47. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/schema-org-f60b7dac.js +0 -477
  48. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/site-6caa6511.js +0 -286
  49. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/style-f415f7fa.css +0 -3742
  50. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/styles-cdaadad2.js +0 -548
  51. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/templates-c97584f2.js +0 -574
  52. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/theme-192f77ef.js +0 -172
  53. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/use-3c036a47.js +0 -669
  54. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/use-851c0307.js +0 -619
  55. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/vite-vue-f91b9792.js +0 -830
  56. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/vscode-bc411e64.js +0 -350
  57. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/why-c98bbe8e.js +0 -1131
  58. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/write-6a43d4d0.js +0 -4963
  59. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/write-6bc2b77c.js +0 -675
  60. package/client/.vite-ssg-temp/tbbjcbuyn2/favicon.svg +0 -33
  61. package/client/.vite-ssg-temp/tbbjcbuyn2/main.mjs +0 -6239
  62. package/client/.vite-ssg-temp/tbbjcbuyn2/valaxy-logo.png +0 -0
  63. package/client/.vite-ssg-temp/vp12eb5cgm/CNAME +0 -1
  64. package/client/.vite-ssg-temp/vp12eb5cgm/assets/PressAlgoliaSearch-2943719f.js +0 -227
  65. package/client/.vite-ssg-temp/vp12eb5cgm/assets/ValaxyMain-26e77dc6.js +0 -752
  66. package/client/.vite-ssg-temp/vp12eb5cgm/assets/_...all_-080f97f3.js +0 -31
  67. package/client/.vite-ssg-temp/vp12eb5cgm/assets/_...all_-5084a1b0.js +0 -42
  68. package/client/.vite-ssg-temp/vp12eb5cgm/assets/addon-f5fa83e1.js +0 -172
  69. package/client/.vite-ssg-temp/vp12eb5cgm/assets/best-pratice-0231a551.js +0 -1105
  70. package/client/.vite-ssg-temp/vp12eb5cgm/assets/client-496183a0.js +0 -286
  71. package/client/.vite-ssg-temp/vp12eb5cgm/assets/community-1b33ec3b.js +0 -627
  72. package/client/.vite-ssg-temp/vp12eb5cgm/assets/components-7000ddd3.js +0 -2460
  73. package/client/.vite-ssg-temp/vp12eb5cgm/assets/deploy-59948619.js +0 -1071
  74. package/client/.vite-ssg-temp/vp12eb5cgm/assets/docs-26abd7f8.js +0 -490
  75. package/client/.vite-ssg-temp/vp12eb5cgm/assets/extend-975f8f72.js +0 -1851
  76. package/client/.vite-ssg-temp/vp12eb5cgm/assets/extend-acd7107b.js +0 -1444
  77. package/client/.vite-ssg-temp/vp12eb5cgm/assets/faq-62ed7bfd.js +0 -321
  78. package/client/.vite-ssg-temp/vp12eb5cgm/assets/features-8acbd53d.js +0 -2625
  79. package/client/.vite-ssg-temp/vp12eb5cgm/assets/gallery-832227a9.js +0 -244
  80. package/client/.vite-ssg-temp/vp12eb5cgm/assets/gallery-9077df38.js +0 -370
  81. package/client/.vite-ssg-temp/vp12eb5cgm/assets/getting-started-bb7fc0a8.js +0 -3684
  82. package/client/.vite-ssg-temp/vp12eb5cgm/assets/hexo-7311896e.js +0 -969
  83. package/client/.vite-ssg-temp/vp12eb5cgm/assets/hooks-67450cb3.js +0 -517
  84. package/client/.vite-ssg-temp/vp12eb5cgm/assets/i18n-4cd1bb86.js +0 -4159
  85. package/client/.vite-ssg-temp/vp12eb5cgm/assets/i18n-e1165bc4.js +0 -676
  86. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-002f83fb.js +0 -768
  87. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-3dec2b83.js +0 -527
  88. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-43565e48.js +0 -424
  89. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-5f07432e.js +0 -563
  90. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-6024f010.js +0 -3294
  91. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-6f0d6ec7.js +0 -202
  92. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-78c510e0.js +0 -549
  93. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-839c338e.js +0 -4161
  94. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-d39a48fd.js +0 -1170
  95. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-e633613c.js +0 -1564
  96. package/client/.vite-ssg-temp/vp12eb5cgm/assets/katex-32f21e80.js +0 -6119
  97. package/client/.vite-ssg-temp/vp12eb5cgm/assets/logo-bd69f816.js +0 -180
  98. package/client/.vite-ssg-temp/vp12eb5cgm/assets/markdown-abdb17ca.js +0 -5895
  99. package/client/.vite-ssg-temp/vp12eb5cgm/assets/news-ecba2d88.js +0 -278
  100. package/client/.vite-ssg-temp/vp12eb5cgm/assets/page-d48f3caa.js +0 -752
  101. package/client/.vite-ssg-temp/vp12eb5cgm/assets/post-0ed0dfec.js +0 -1605
  102. package/client/.vite-ssg-temp/vp12eb5cgm/assets/route-block-c0a8bdd8.js +0 -4
  103. package/client/.vite-ssg-temp/vp12eb5cgm/assets/schema-org-f60b7dac.js +0 -477
  104. package/client/.vite-ssg-temp/vp12eb5cgm/assets/site-6caa6511.js +0 -286
  105. package/client/.vite-ssg-temp/vp12eb5cgm/assets/style-f415f7fa.css +0 -3742
  106. package/client/.vite-ssg-temp/vp12eb5cgm/assets/styles-cdaadad2.js +0 -548
  107. package/client/.vite-ssg-temp/vp12eb5cgm/assets/templates-c97584f2.js +0 -574
  108. package/client/.vite-ssg-temp/vp12eb5cgm/assets/theme-192f77ef.js +0 -172
  109. package/client/.vite-ssg-temp/vp12eb5cgm/assets/use-3c036a47.js +0 -669
  110. package/client/.vite-ssg-temp/vp12eb5cgm/assets/use-851c0307.js +0 -619
  111. package/client/.vite-ssg-temp/vp12eb5cgm/assets/vite-vue-f91b9792.js +0 -830
  112. package/client/.vite-ssg-temp/vp12eb5cgm/assets/vscode-bc411e64.js +0 -350
  113. package/client/.vite-ssg-temp/vp12eb5cgm/assets/why-c98bbe8e.js +0 -1131
  114. package/client/.vite-ssg-temp/vp12eb5cgm/assets/write-6a43d4d0.js +0 -4963
  115. package/client/.vite-ssg-temp/vp12eb5cgm/assets/write-6bc2b77c.js +0 -675
  116. package/client/.vite-ssg-temp/vp12eb5cgm/favicon.svg +0 -33
  117. package/client/.vite-ssg-temp/vp12eb5cgm/main.mjs +0 -6239
  118. package/client/.vite-ssg-temp/vp12eb5cgm/valaxy-logo.png +0 -0
  119. package/client/styles/common/view-transition.css +0 -21
@@ -1,1131 +0,0 @@
1
- import { _ as _export_sfc, a as _sfc_main$1 } from "../main.mjs";
2
- import { _ as __unplugin_components_0 } from "./ValaxyMain-26e77dc6.js";
3
- import { provide, mergeProps, withCtx, createTextVNode, createVNode, createCommentVNode, renderSlot, useSSRContext } from "vue";
4
- import { useRoute } from "vue-router";
5
- import { ssrRenderComponent, ssrRenderStyle, ssrRenderSlot } from "vue/server-renderer";
6
- import "vite-ssg";
7
- import "pinia";
8
- import "@vueuse/core";
9
- import "dayjs";
10
- import "dayjs/plugin/utc.js";
11
- import "dayjs/plugin/timezone.js";
12
- import "dayjs/locale/zh-cn.js";
13
- import "body-scroll-lock";
14
- import "@intlify/shared";
15
- import "@intlify/core-base";
16
- import "@vue/devtools-api";
17
- import "@unhead/schema-org";
18
- import "@unhead/vue";
19
- import "dayjs/plugin/relativeTime.js";
20
- import "defu";
21
- import "nprogress";
22
- import "medium-zoom";
23
- import "vanilla-lazyload";
24
- const __pageData = JSON.parse('{"title":"Why Valaxy","description":"","frontmatter":{"cover":"https://fastly.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp","title":"Why Valaxy","title_zh-CN":"为什么选 Valaxy","date":"2022-03-22T00:00:00.000Z","categories":["getting-started"],"tags":["valaxy","笔记"],"top":100,"end":false},"headers":[{"level":2,"title":"What is Valaxy?","slug":"what-is-valaxy","link":"#what-is-valaxy","children":[]},{"level":2,"title":"什么是 Valaxy?","slug":"什么是-valaxy","link":"#什么是-valaxy","children":[]},{"level":2,"title":"为什么是 Valaxy?","slug":"为什么是-valaxy","link":"#为什么是-valaxy","children":[]},{"level":2,"title":"Why Valaxy?","slug":"why-valaxy","link":"#why-valaxy","children":[]},{"level":2,"title":"Why not ...?","slug":"why-not","link":"#why-not","children":[]},{"level":2,"title":"为什么不是……?","slug":"为什么不是","link":"#为什么不是","children":[{"level":3,"title":"Hexo/Hugo/Jekyll","slug":"hexo-hugo-jekyll","link":"#hexo-hugo-jekyll","children":[]},{"level":3,"title":"VuePress/VitePress","slug":"vuepress-vitepress","link":"#vuepress-vitepress","children":[]},{"level":3,"title":"iles","slug":"iles","link":"#iles","children":[]}]},{"level":2,"title":"Thanks","slug":"thanks","link":"#thanks","children":[]}],"relativePath":"pages/guide/why.md","path":"C:\\\\Users\\\\me\\\\repos\\\\yyj\\\\valaxy\\\\docs\\\\pages\\\\guide\\\\why.md","lastUpdated":1696368478000}');
25
- const data = JSON.parse('{"title":"Why Valaxy","description":"","frontmatter":{"cover":"https://fastly.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp","title":"Why Valaxy","title_zh-CN":"为什么选 Valaxy","date":"2022-03-22T00:00:00.000Z","categories":["getting-started"],"tags":["valaxy","笔记"],"top":100,"end":false},"headers":[{"level":2,"title":"What is Valaxy?","slug":"what-is-valaxy","link":"#what-is-valaxy","children":[]},{"level":2,"title":"什么是 Valaxy?","slug":"什么是-valaxy","link":"#什么是-valaxy","children":[]},{"level":2,"title":"为什么是 Valaxy?","slug":"为什么是-valaxy","link":"#为什么是-valaxy","children":[]},{"level":2,"title":"Why Valaxy?","slug":"why-valaxy","link":"#why-valaxy","children":[]},{"level":2,"title":"Why not ...?","slug":"why-not","link":"#why-not","children":[]},{"level":2,"title":"为什么不是……?","slug":"为什么不是","link":"#为什么不是","children":[{"level":3,"title":"Hexo/Hugo/Jekyll","slug":"hexo-hugo-jekyll","link":"#hexo-hugo-jekyll","children":[]},{"level":3,"title":"VuePress/VitePress","slug":"vuepress-vitepress","link":"#vuepress-vitepress","children":[]},{"level":3,"title":"iles","slug":"iles","link":"#iles","children":[]}]},{"level":2,"title":"Thanks","slug":"thanks","link":"#thanks","children":[]}],"relativePath":"pages/guide/why.md","path":"C:\\\\Users\\\\me\\\\repos\\\\yyj\\\\valaxy\\\\docs\\\\pages\\\\guide\\\\why.md","lastUpdated":1696368478000}');
26
- const _sfc_main = {
27
- name: "pages/guide/why.md",
28
- data() {
29
- return { data, frontmatter: data.frontmatter, $frontmatter: data.frontmatter };
30
- },
31
- setup() {
32
- const route = useRoute();
33
- route.meta.frontmatter = Object.assign(route.meta.frontmatter, data.frontmatter);
34
- provide("pageData", data);
35
- }
36
- };
37
- function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
38
- const _component_ValaxyMain = __unplugin_components_0;
39
- const _component_AppLink = _sfc_main$1;
40
- _push(ssrRenderComponent(_component_ValaxyMain, mergeProps({
41
- frontmatter: $data.frontmatter,
42
- data: $data.data
43
- }, _attrs), {
44
- "main-content-md": withCtx((_, _push2, _parent2, _scopeId) => {
45
- if (_push2) {
46
- _push2(`<h2 lang="en" id="what-is-valaxy" tabindex="-1"${_scopeId}>What is Valaxy? `);
47
- _push2(ssrRenderComponent(_component_AppLink, {
48
- class: "header-anchor",
49
- href: "#what-is-valaxy",
50
- "aria-label": 'Permalink to "What is Valaxy? {lang="en"}"'
51
- }, {
52
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
53
- if (_push3) {
54
- _push3(`​`);
55
- } else {
56
- return [
57
- createTextVNode("​")
58
- ];
59
- }
60
- }),
61
- _: 1
62
- /* STABLE */
63
- }, _parent2, _scopeId));
64
- _push2(`</h2><div lang="en"${_scopeId}><p${_scopeId}>Valaxy aims to be a next generation of static blogging frameworks/generators.</p></div><h2 lang="zh-CN" id="什么是-valaxy" tabindex="-1"${_scopeId}>什么是 Valaxy? `);
65
- _push2(ssrRenderComponent(_component_AppLink, {
66
- class: "header-anchor",
67
- href: "#什么是-valaxy",
68
- "aria-label": 'Permalink to "什么是 Valaxy? {lang="zh-CN"}"'
69
- }, {
70
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
71
- if (_push3) {
72
- _push3(`​`);
73
- } else {
74
- return [
75
- createTextVNode("​")
76
- ];
77
- }
78
- }),
79
- _: 1
80
- /* STABLE */
81
- }, _parent2, _scopeId));
82
- _push2(`</h2><div lang="zh-CN"${_scopeId}><p${_scopeId}>Valaxy 的目标是成为新一代的静态博客框架/生成器。</p></div><div class="info custom-block"${_scopeId}><p class="custom-block-title"${_scopeId}><i class="icon i-carbon-information"${_scopeId}></i><span lang="en"${_scopeId}>INFO</span><span lang="zh-CN"${_scopeId}>信息</span></p><ul${_scopeId}><li${_scopeId}>V + galaxy = Valaxy <ul${_scopeId}><li${_scopeId}>V: it based on vue + vite</li><li${_scopeId}>galaxy: 我希望它可以像一个平台工具,承载大家的博客,如同银河系一般美丽</li><li${_scopeId}>xy: 有点像小云(Xiao Yun)的缩写(乌拉小云)</li><li${_scopeId}>val: 瓦尔(基里)- 女武神</li></ul></li></ul></div><p${_scopeId}>我的博客此前构建于 Hexo 之上,但随着现代前端框架的不断进步,Hexo 的工作流与开发体验已开始落后。 因此我决定基于 Vue 与 Vite 构建新的 `);
83
- _push2(ssrRenderComponent(_component_AppLink, {
84
- href: "https://github.com/YunYouJun/hexo-theme-yun/",
85
- target: "_blank",
86
- rel: "noreferrer"
87
- }, {
88
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
89
- if (_push3) {
90
- _push3(`hexo-theme-yun`);
91
- } else {
92
- return [
93
- createTextVNode("hexo-theme-yun")
94
- ];
95
- }
96
- }),
97
- _: 1
98
- /* STABLE */
99
- }, _parent2, _scopeId));
100
- _push2(`。</p><p${_scopeId}>此前我的目的是使用现代前端框架重构主题,但与 Hexo 的脱离也意味着我要重新完成 Hexo 本身做的一些渲染工作。 那么如果我这么做了,为什么不顺便开发一个专为博客打造的静态站点生成器呢? 因此,我决定将其叫做 Valaxy。</p><p${_scopeId}>这是重复造轮子吗?我认为不是。</p><h2 lang="zh-CN" id="为什么是-valaxy" tabindex="-1"${_scopeId}>为什么是 Valaxy? `);
101
- _push2(ssrRenderComponent(_component_AppLink, {
102
- class: "header-anchor",
103
- href: "#为什么是-valaxy",
104
- "aria-label": 'Permalink to "为什么是 Valaxy? {lang="zh-CN"}"'
105
- }, {
106
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
107
- if (_push3) {
108
- _push3(`​`);
109
- } else {
110
- return [
111
- createTextVNode("​")
112
- ];
113
- }
114
- }),
115
- _: 1
116
- /* STABLE */
117
- }, _parent2, _scopeId));
118
- _push2(`</h2><div lang="zh-CN"${_scopeId}><p${_scopeId}>构想新一代静态博客框架/生成器。</p><!-- more --><p${_scopeId}>「<strong${_scopeId}>告诉你两件好事吧</strong>」:</p><ul${_scopeId}><li${_scopeId}>第一它与 Hexo 相比开发体验和速度上都更胜一筹</li><li${_scopeId}>第二它与 VitePress/VuePress 相比拥有更多针对博客的集成功能,譬如文章列表钩子、自动路由与组件注册、可覆盖的布局与主题等。</li></ul><p${_scopeId}>我认为 Valaxy 最突出的优势在于它的热更新开发体验与可定制性,但你编写文章或博客配置时,你只需要保存,所有的变更将会即刻显示在页面上,几乎无需等待!</p><p${_scopeId}>此外,Valaxy 的主题还较少,但以 valaxy-theme-yun 为例,你可以覆盖主题中的<strong${_scopeId}>任何</strong>组件,来定制或编写你自己的主题。</p><p${_scopeId}>一味地讲述 Valaxy 的优点似乎有些难以理解。</p><p${_scopeId}>我将会把 Valaxy 与现有的 Hexo(流行的静态博客框架)与 VitePress/VuePress(流行的静态站点生成器)进行对比,并阐述 Valaxy 的优势。</p></div><h2 lang="en" id="why-valaxy" tabindex="-1"${_scopeId}>Why Valaxy? `);
119
- _push2(ssrRenderComponent(_component_AppLink, {
120
- class: "header-anchor",
121
- href: "#why-valaxy",
122
- "aria-label": 'Permalink to "Why Valaxy? {lang="en"}"'
123
- }, {
124
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
125
- if (_push3) {
126
- _push3(`​`);
127
- } else {
128
- return [
129
- createTextVNode("​")
130
- ];
131
- }
132
- }),
133
- _: 1
134
- /* STABLE */
135
- }, _parent2, _scopeId));
136
- _push2(`</h2><div lang="en"${_scopeId}><p${_scopeId}>Next Generation Static Blog Framework/Generator</p><!-- more --><p${_scopeId}>「Two things to tell you」, first, compared with Hexo, Valaxy is superior in both development experience and speed, second, compared with VitePress/VuePress, Valaxy has more integration features for blogs, such as article list hook, automatic routing and component registration, overlay layout and theme, etc.</p><p${_scopeId}>It seems hard to understand the advantages of Valaxy.</p><p${_scopeId}>I will compare Valaxy with the existing Hexo (popular static blog framework) and vitepress / vuepress (popular static site generator), and explain the advantages of Valaxy.</p></div><div class="language-ts"${_scopeId}><button title="Copy Code" class="copy"${_scopeId}></button><span class="lang"${_scopeId}>ts</span><pre class="shiki github-dark vp-code-dark"${_scopeId}><code${_scopeId}><span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>import</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>type</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> { UserConfig } </span><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>from</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#9ECBFF" })}"${_scopeId}>&#39;valaxy&#39;</span></span>
137
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>import</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>type</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> { UserThemeConfig } </span><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>from</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#9ECBFF" })}"${_scopeId}>&#39;valaxy-theme-yun&#39;</span></span>
138
- <span class="line"${_scopeId}></span>
139
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>export</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#F97583" })}"${_scopeId}>default</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#B392F0" })}"${_scopeId}>defineValaxyConfig</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}>&lt;</span><span style="${ssrRenderStyle({ "color": "#B392F0" })}"${_scopeId}>ThemeConfig</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}>&gt;({</span></span>
140
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> theme: </span><span style="${ssrRenderStyle({ "color": "#9ECBFF" })}"${_scopeId}>&#39;yun&#39;</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}>,</span></span>
141
- <span class="line"${_scopeId}></span>
142
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> themeConfig: {</span></span>
143
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> banner: {</span></span>
144
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> enable: </span><span style="${ssrRenderStyle({ "color": "#79B8FF" })}"${_scopeId}>true</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}>,</span></span>
145
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> title: </span><span style="${ssrRenderStyle({ "color": "#9ECBFF" })}"${_scopeId}>&#39;云游君的小站&#39;</span><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}>,</span></span>
146
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> },</span></span>
147
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}> },</span></span>
148
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#E1E4E8" })}"${_scopeId}>})</span></span></code></pre><pre class="shiki github-light vp-code-light"${_scopeId}><code${_scopeId}><span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>import</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>type</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> { UserConfig } </span><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>from</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#032F62" })}"${_scopeId}>&#39;valaxy&#39;</span></span>
149
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>import</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>type</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> { UserThemeConfig } </span><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>from</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#032F62" })}"${_scopeId}>&#39;valaxy-theme-yun&#39;</span></span>
150
- <span class="line"${_scopeId}></span>
151
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>export</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#D73A49" })}"${_scopeId}>default</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> </span><span style="${ssrRenderStyle({ "color": "#6F42C1" })}"${_scopeId}>defineValaxyConfig</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}>&lt;</span><span style="${ssrRenderStyle({ "color": "#6F42C1" })}"${_scopeId}>ThemeConfig</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}>&gt;({</span></span>
152
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> theme: </span><span style="${ssrRenderStyle({ "color": "#032F62" })}"${_scopeId}>&#39;yun&#39;</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}>,</span></span>
153
- <span class="line"${_scopeId}></span>
154
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> themeConfig: {</span></span>
155
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> banner: {</span></span>
156
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> enable: </span><span style="${ssrRenderStyle({ "color": "#005CC5" })}"${_scopeId}>true</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}>,</span></span>
157
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> title: </span><span style="${ssrRenderStyle({ "color": "#032F62" })}"${_scopeId}>&#39;云游君的小站&#39;</span><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}>,</span></span>
158
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> },</span></span>
159
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}> },</span></span>
160
- <span class="line"${_scopeId}><span style="${ssrRenderStyle({ "color": "#24292E" })}"${_scopeId}>})</span></span></code></pre></div><h2 lang="en" id="why-not" tabindex="-1"${_scopeId}>Why not ...? `);
161
- _push2(ssrRenderComponent(_component_AppLink, {
162
- class: "header-anchor",
163
- href: "#why-not",
164
- "aria-label": 'Permalink to "Why not ...? {lang="en"}"'
165
- }, {
166
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
167
- if (_push3) {
168
- _push3(`​`);
169
- } else {
170
- return [
171
- createTextVNode("​")
172
- ];
173
- }
174
- }),
175
- _: 1
176
- /* STABLE */
177
- }, _parent2, _scopeId));
178
- _push2(`</h2><h2 lang="zh-CN" id="为什么不是" tabindex="-1"${_scopeId}>为什么不是……? `);
179
- _push2(ssrRenderComponent(_component_AppLink, {
180
- class: "header-anchor",
181
- href: "#为什么不是",
182
- "aria-label": 'Permalink to "为什么不是……? {lang="zh-CN"}"'
183
- }, {
184
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
185
- if (_push3) {
186
- _push3(`​`);
187
- } else {
188
- return [
189
- createTextVNode("​")
190
- ];
191
- }
192
- }),
193
- _: 1
194
- /* STABLE */
195
- }, _parent2, _scopeId));
196
- _push2(`</h2><blockquote${_scopeId}><p${_scopeId}>Wordpress/Typecho 等是动态博客,因此不在考虑范围内。</p></blockquote><h3 id="hexo-hugo-jekyll" tabindex="-1"${_scopeId}>`);
197
- _push2(ssrRenderComponent(_component_AppLink, {
198
- href: "https://hexo.io/",
199
- target: "_blank",
200
- rel: "noreferrer"
201
- }, {
202
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
203
- if (_push3) {
204
- _push3(`Hexo`);
205
- } else {
206
- return [
207
- createTextVNode("Hexo")
208
- ];
209
- }
210
- }),
211
- _: 1
212
- /* STABLE */
213
- }, _parent2, _scopeId));
214
- _push2(`/`);
215
- _push2(ssrRenderComponent(_component_AppLink, {
216
- href: "https://gohugo.io/",
217
- target: "_blank",
218
- rel: "noreferrer"
219
- }, {
220
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
221
- if (_push3) {
222
- _push3(`Hugo`);
223
- } else {
224
- return [
225
- createTextVNode("Hugo")
226
- ];
227
- }
228
- }),
229
- _: 1
230
- /* STABLE */
231
- }, _parent2, _scopeId));
232
- _push2(`/Jekyll `);
233
- _push2(ssrRenderComponent(_component_AppLink, {
234
- class: "header-anchor",
235
- href: "#hexo-hugo-jekyll",
236
- "aria-label": 'Permalink to "[Hexo](https://hexo.io/)/[Hugo](https://gohugo.io/)/Jekyll"'
237
- }, {
238
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
239
- if (_push3) {
240
- _push3(`​`);
241
- } else {
242
- return [
243
- createTextVNode("​")
244
- ];
245
- }
246
- }),
247
- _: 1
248
- /* STABLE */
249
- }, _parent2, _scopeId));
250
- _push2(`</h3><p${_scopeId}>我非常需要现代前端框架提供的开发热重载与 PJAX 体验,以及 TypeScript 的类型提示,但 Hexo 似乎已经有些积重难返,基于此来做一些工作将会束手束脚。</p><p${_scopeId}>Hugo 也是很棒的静态站点生成器,但是我并没有使用 Go 的需求。当然在打包时所使用的 ESBuild 正是基于 Go 实现。但这并不需要我操心。</p><p${_scopeId}>Jekyll 算是元老,但同样我并不使用 Ruby,且它似乎并不便捷,也同样存在一些开发体验的问题。 GitHub 为其提供了原生支持是一大优势,但我打算类似使用 GitHub Actions 来达成该方面近乎一致的体验。</p><!-- 最后,我有一些尝试想要实现。见[重新构想博客框架(Todo)]。
251
- 譬如,可以提供一种主题商店,用户仅需在 GitHub Repo 中存放自己的文章。
252
- 在主题商店,填写自己的 Repo 地址,选中主题切换即可在线预览内容效果。(这完全可以做到,只需要动态纯前端获取 Markdown 内容并渲染即可)
253
- 而用户想要应对 SEO 时,则可再将其渲染为静态页面。我也将会为此提供一个一键可用的 GitHub Actions 脚本。 --><h3 id="vuepress-vitepress" tabindex="-1"${_scopeId}>VuePress/VitePress `);
254
- _push2(ssrRenderComponent(_component_AppLink, {
255
- class: "header-anchor",
256
- href: "#vuepress-vitepress",
257
- "aria-label": 'Permalink to "VuePress/VitePress"'
258
- }, {
259
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
260
- if (_push3) {
261
- _push3(`​`);
262
- } else {
263
- return [
264
- createTextVNode("​")
265
- ];
266
- }
267
- }),
268
- _: 1
269
- /* STABLE */
270
- }, _parent2, _scopeId));
271
- _push2(`</h3><p${_scopeId}>`);
272
- _push2(ssrRenderComponent(_component_AppLink, {
273
- href: "https://vitepress.dev/",
274
- target: "_blank",
275
- rel: "noreferrer"
276
- }, {
277
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
278
- if (_push3) {
279
- _push3(`VitePress`);
280
- } else {
281
- return [
282
- createTextVNode("VitePress")
283
- ];
284
- }
285
- }),
286
- _: 1
287
- /* STABLE */
288
- }, _parent2, _scopeId));
289
- _push2(` 几乎已成为了 VuePress 的继任者。</p><p${_scopeId}>但 VitePress 是一个很棒的静态站点生成器,它为文档打造,但缺少一些针对博客的定制便捷功能。 如:RSS、文件自动路由(vue-router)、插件(挂件)机制、文章列表/分类/标签钩子、自定义覆盖布局、覆盖组件、单页切换的 i18n、KaTeX 等。</p><h3 id="iles" tabindex="-1"${_scopeId}>`);
290
- _push2(ssrRenderComponent(_component_AppLink, {
291
- href: "https://github.com/ElMassimo/iles",
292
- target: "_blank",
293
- rel: "noreferrer"
294
- }, {
295
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
296
- if (_push3) {
297
- _push3(`iles`);
298
- } else {
299
- return [
300
- createTextVNode("iles")
301
- ];
302
- }
303
- }),
304
- _: 1
305
- /* STABLE */
306
- }, _parent2, _scopeId));
307
- _push2(` `);
308
- _push2(ssrRenderComponent(_component_AppLink, {
309
- class: "header-anchor",
310
- href: "#iles",
311
- "aria-label": 'Permalink to "[iles](https://github.com/ElMassimo/iles)"'
312
- }, {
313
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
314
- if (_push3) {
315
- _push3(`​`);
316
- } else {
317
- return [
318
- createTextVNode("​")
319
- ];
320
- }
321
- }),
322
- _: 1
323
- /* STABLE */
324
- }, _parent2, _scopeId));
325
- _push2(`</h3><div lang="zh-CN"${_scopeId}><p${_scopeId}>iles 与 Valaxy 的一些基础结构功能很相似,它相比 Vitepress 拥有更多功能,也很适合写一个拥有更多交互的文档。</p><p${_scopeId}>不过它的定位仍旧是静态站点生成器,这与 Valaxy 静态博客生成器的定位不同。</p><p${_scopeId}>因为 Valaxy 除此之外,还会提供文章列表、分页、标签、分类等更多面向博客的功能,并支持扩展与自定义博客主题。</p></div><div lang="en"${_scopeId}><p${_scopeId}>After completing the development of Valaxy&#39;s basic structures, I learned about iles from my group friend, which is very similar to many features I have archieved.</p><p${_scopeId}>It has more features than Vitepress and is also suitable for writing a document with more interaction.</p><p${_scopeId}>However, its positioning is still static site generator, which is different from that of Valaxy static blog generator.</p><p${_scopeId}>In addition, Valaxy also provides more blog oriented features such as article list, pagination, tag and category, and supports extension and customization of blog topics.</p></div><h2 id="thanks" tabindex="-1"${_scopeId}>Thanks `);
326
- _push2(ssrRenderComponent(_component_AppLink, {
327
- class: "header-anchor",
328
- href: "#thanks",
329
- "aria-label": 'Permalink to "Thanks"'
330
- }, {
331
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
332
- if (_push3) {
333
- _push3(`​`);
334
- } else {
335
- return [
336
- createTextVNode("​")
337
- ];
338
- }
339
- }),
340
- _: 1
341
- /* STABLE */
342
- }, _parent2, _scopeId));
343
- _push2(`</h2><p${_scopeId}>💗 Valaxy 的实现基于或参考了以下项目:</p><ul${_scopeId}><li${_scopeId}>`);
344
- _push2(ssrRenderComponent(_component_AppLink, {
345
- href: "https://github.com/vuejs/core",
346
- target: "_blank",
347
- rel: "noreferrer"
348
- }, {
349
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
350
- if (_push3) {
351
- _push3(`Vue`);
352
- } else {
353
- return [
354
- createTextVNode("Vue")
355
- ];
356
- }
357
- }),
358
- _: 1
359
- /* STABLE */
360
- }, _parent2, _scopeId));
361
- _push2(`</li><li${_scopeId}>`);
362
- _push2(ssrRenderComponent(_component_AppLink, {
363
- href: "https://github.com/vueuse/vueuse",
364
- target: "_blank",
365
- rel: "noreferrer"
366
- }, {
367
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
368
- if (_push3) {
369
- _push3(`VueUse`);
370
- } else {
371
- return [
372
- createTextVNode("VueUse")
373
- ];
374
- }
375
- }),
376
- _: 1
377
- /* STABLE */
378
- }, _parent2, _scopeId));
379
- _push2(`</li><li${_scopeId}>`);
380
- _push2(ssrRenderComponent(_component_AppLink, {
381
- href: "https://github.com/vitejs/vite",
382
- target: "_blank",
383
- rel: "noreferrer"
384
- }, {
385
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
386
- if (_push3) {
387
- _push3(`Vite`);
388
- } else {
389
- return [
390
- createTextVNode("Vite")
391
- ];
392
- }
393
- }),
394
- _: 1
395
- /* STABLE */
396
- }, _parent2, _scopeId));
397
- _push2(`</li><li${_scopeId}>`);
398
- _push2(ssrRenderComponent(_component_AppLink, {
399
- href: "https://github.com/vuejs/vitepress",
400
- target: "_blank",
401
- rel: "noreferrer"
402
- }, {
403
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
404
- if (_push3) {
405
- _push3(`VitePress`);
406
- } else {
407
- return [
408
- createTextVNode("VitePress")
409
- ];
410
- }
411
- }),
412
- _: 1
413
- /* STABLE */
414
- }, _parent2, _scopeId));
415
- _push2(`</li><li${_scopeId}>`);
416
- _push2(ssrRenderComponent(_component_AppLink, {
417
- href: "https://github.com/antfu/vitesse",
418
- target: "_blank",
419
- rel: "noreferrer"
420
- }, {
421
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
422
- if (_push3) {
423
- _push3(`Vitesse`);
424
- } else {
425
- return [
426
- createTextVNode("Vitesse")
427
- ];
428
- }
429
- }),
430
- _: 1
431
- /* STABLE */
432
- }, _parent2, _scopeId));
433
- _push2(`</li><li${_scopeId}>`);
434
- _push2(ssrRenderComponent(_component_AppLink, {
435
- href: "https://github.com/slidevjs/slidev",
436
- target: "_blank",
437
- rel: "noreferrer"
438
- }, {
439
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
440
- if (_push3) {
441
- _push3(`Slidev`);
442
- } else {
443
- return [
444
- createTextVNode("Slidev")
445
- ];
446
- }
447
- }),
448
- _: 1
449
- /* STABLE */
450
- }, _parent2, _scopeId));
451
- _push2(`</li></ul>`);
452
- } else {
453
- return [
454
- createVNode("h2", {
455
- lang: "en",
456
- id: "what-is-valaxy",
457
- tabindex: "-1"
458
- }, [
459
- createTextVNode("What is Valaxy? "),
460
- createVNode(_component_AppLink, {
461
- class: "header-anchor",
462
- href: "#what-is-valaxy",
463
- "aria-label": 'Permalink to "What is Valaxy? {lang="en"}"'
464
- }, {
465
- default: withCtx(() => [
466
- createTextVNode("​")
467
- ]),
468
- _: 1
469
- /* STABLE */
470
- })
471
- ]),
472
- createVNode("div", { lang: "en" }, [
473
- createVNode("p", null, "Valaxy aims to be a next generation of static blogging frameworks/generators.")
474
- ]),
475
- createVNode("h2", {
476
- lang: "zh-CN",
477
- id: "什么是-valaxy",
478
- tabindex: "-1"
479
- }, [
480
- createTextVNode("什么是 Valaxy? "),
481
- createVNode(_component_AppLink, {
482
- class: "header-anchor",
483
- href: "#什么是-valaxy",
484
- "aria-label": 'Permalink to "什么是 Valaxy? {lang="zh-CN"}"'
485
- }, {
486
- default: withCtx(() => [
487
- createTextVNode("​")
488
- ]),
489
- _: 1
490
- /* STABLE */
491
- })
492
- ]),
493
- createVNode("div", { lang: "zh-CN" }, [
494
- createVNode("p", null, "Valaxy 的目标是成为新一代的静态博客框架/生成器。")
495
- ]),
496
- createVNode("div", { class: "info custom-block" }, [
497
- createVNode("p", { class: "custom-block-title" }, [
498
- createVNode("i", { class: "icon i-carbon-information" }),
499
- createVNode("span", { lang: "en" }, "INFO"),
500
- createVNode("span", { lang: "zh-CN" }, "信息")
501
- ]),
502
- createVNode("ul", null, [
503
- createVNode("li", null, [
504
- createTextVNode("V + galaxy = Valaxy "),
505
- createVNode("ul", null, [
506
- createVNode("li", null, "V: it based on vue + vite"),
507
- createVNode("li", null, "galaxy: 我希望它可以像一个平台工具,承载大家的博客,如同银河系一般美丽"),
508
- createVNode("li", null, "xy: 有点像小云(Xiao Yun)的缩写(乌拉小云)"),
509
- createVNode("li", null, "val: 瓦尔(基里)- 女武神")
510
- ])
511
- ])
512
- ])
513
- ]),
514
- createVNode("p", null, [
515
- createTextVNode("我的博客此前构建于 Hexo 之上,但随着现代前端框架的不断进步,Hexo 的工作流与开发体验已开始落后。 因此我决定基于 Vue 与 Vite 构建新的 "),
516
- createVNode(_component_AppLink, {
517
- href: "https://github.com/YunYouJun/hexo-theme-yun/",
518
- target: "_blank",
519
- rel: "noreferrer"
520
- }, {
521
- default: withCtx(() => [
522
- createTextVNode("hexo-theme-yun")
523
- ]),
524
- _: 1
525
- /* STABLE */
526
- }),
527
- createTextVNode("。")
528
- ]),
529
- createVNode("p", null, "此前我的目的是使用现代前端框架重构主题,但与 Hexo 的脱离也意味着我要重新完成 Hexo 本身做的一些渲染工作。 那么如果我这么做了,为什么不顺便开发一个专为博客打造的静态站点生成器呢? 因此,我决定将其叫做 Valaxy。"),
530
- createVNode("p", null, "这是重复造轮子吗?我认为不是。"),
531
- createVNode("h2", {
532
- lang: "zh-CN",
533
- id: "为什么是-valaxy",
534
- tabindex: "-1"
535
- }, [
536
- createTextVNode("为什么是 Valaxy? "),
537
- createVNode(_component_AppLink, {
538
- class: "header-anchor",
539
- href: "#为什么是-valaxy",
540
- "aria-label": 'Permalink to "为什么是 Valaxy? {lang="zh-CN"}"'
541
- }, {
542
- default: withCtx(() => [
543
- createTextVNode("​")
544
- ]),
545
- _: 1
546
- /* STABLE */
547
- })
548
- ]),
549
- createVNode("div", { lang: "zh-CN" }, [
550
- createVNode("p", null, "构想新一代静态博客框架/生成器。"),
551
- createCommentVNode(" more "),
552
- createVNode("p", null, [
553
- createTextVNode("「"),
554
- createVNode("strong", null, "告诉你两件好事吧"),
555
- createTextVNode("」:")
556
- ]),
557
- createVNode("ul", null, [
558
- createVNode("li", null, "第一它与 Hexo 相比开发体验和速度上都更胜一筹"),
559
- createVNode("li", null, "第二它与 VitePress/VuePress 相比拥有更多针对博客的集成功能,譬如文章列表钩子、自动路由与组件注册、可覆盖的布局与主题等。")
560
- ]),
561
- createVNode("p", null, "我认为 Valaxy 最突出的优势在于它的热更新开发体验与可定制性,但你编写文章或博客配置时,你只需要保存,所有的变更将会即刻显示在页面上,几乎无需等待!"),
562
- createVNode("p", null, [
563
- createTextVNode("此外,Valaxy 的主题还较少,但以 valaxy-theme-yun 为例,你可以覆盖主题中的"),
564
- createVNode("strong", null, "任何"),
565
- createTextVNode("组件,来定制或编写你自己的主题。")
566
- ]),
567
- createVNode("p", null, "一味地讲述 Valaxy 的优点似乎有些难以理解。"),
568
- createVNode("p", null, "我将会把 Valaxy 与现有的 Hexo(流行的静态博客框架)与 VitePress/VuePress(流行的静态站点生成器)进行对比,并阐述 Valaxy 的优势。")
569
- ]),
570
- createVNode("h2", {
571
- lang: "en",
572
- id: "why-valaxy",
573
- tabindex: "-1"
574
- }, [
575
- createTextVNode("Why Valaxy? "),
576
- createVNode(_component_AppLink, {
577
- class: "header-anchor",
578
- href: "#why-valaxy",
579
- "aria-label": 'Permalink to "Why Valaxy? {lang="en"}"'
580
- }, {
581
- default: withCtx(() => [
582
- createTextVNode("​")
583
- ]),
584
- _: 1
585
- /* STABLE */
586
- })
587
- ]),
588
- createVNode("div", { lang: "en" }, [
589
- createVNode("p", null, "Next Generation Static Blog Framework/Generator"),
590
- createCommentVNode(" more "),
591
- createVNode("p", null, "「Two things to tell you」, first, compared with Hexo, Valaxy is superior in both development experience and speed, second, compared with VitePress/VuePress, Valaxy has more integration features for blogs, such as article list hook, automatic routing and component registration, overlay layout and theme, etc."),
592
- createVNode("p", null, "It seems hard to understand the advantages of Valaxy."),
593
- createVNode("p", null, "I will compare Valaxy with the existing Hexo (popular static blog framework) and vitepress / vuepress (popular static site generator), and explain the advantages of Valaxy.")
594
- ]),
595
- createVNode("div", { class: "language-ts" }, [
596
- createVNode("button", {
597
- title: "Copy Code",
598
- class: "copy"
599
- }),
600
- createVNode("span", { class: "lang" }, "ts"),
601
- createVNode("pre", { class: "shiki github-dark vp-code-dark" }, [
602
- createVNode("code", null, [
603
- createVNode("span", { class: "line" }, [
604
- createVNode("span", { style: { "color": "#F97583" } }, "import"),
605
- createVNode("span", { style: { "color": "#E1E4E8" } }, " "),
606
- createVNode("span", { style: { "color": "#F97583" } }, "type"),
607
- createVNode("span", { style: { "color": "#E1E4E8" } }, " { UserConfig } "),
608
- createVNode("span", { style: { "color": "#F97583" } }, "from"),
609
- createVNode("span", { style: { "color": "#E1E4E8" } }, " "),
610
- createVNode("span", { style: { "color": "#9ECBFF" } }, "'valaxy'")
611
- ]),
612
- createTextVNode("\n"),
613
- createVNode("span", { class: "line" }, [
614
- createVNode("span", { style: { "color": "#F97583" } }, "import"),
615
- createVNode("span", { style: { "color": "#E1E4E8" } }, " "),
616
- createVNode("span", { style: { "color": "#F97583" } }, "type"),
617
- createVNode("span", { style: { "color": "#E1E4E8" } }, " { UserThemeConfig } "),
618
- createVNode("span", { style: { "color": "#F97583" } }, "from"),
619
- createVNode("span", { style: { "color": "#E1E4E8" } }, " "),
620
- createVNode("span", { style: { "color": "#9ECBFF" } }, "'valaxy-theme-yun'")
621
- ]),
622
- createTextVNode("\n"),
623
- createVNode("span", { class: "line" }),
624
- createTextVNode("\n"),
625
- createVNode("span", { class: "line" }, [
626
- createVNode("span", { style: { "color": "#F97583" } }, "export"),
627
- createVNode("span", { style: { "color": "#E1E4E8" } }, " "),
628
- createVNode("span", { style: { "color": "#F97583" } }, "default"),
629
- createVNode("span", { style: { "color": "#E1E4E8" } }, " "),
630
- createVNode("span", { style: { "color": "#B392F0" } }, "defineValaxyConfig"),
631
- createVNode("span", { style: { "color": "#E1E4E8" } }, "<"),
632
- createVNode("span", { style: { "color": "#B392F0" } }, "ThemeConfig"),
633
- createVNode("span", { style: { "color": "#E1E4E8" } }, ">({")
634
- ]),
635
- createTextVNode("\n"),
636
- createVNode("span", { class: "line" }, [
637
- createVNode("span", { style: { "color": "#E1E4E8" } }, " theme: "),
638
- createVNode("span", { style: { "color": "#9ECBFF" } }, "'yun'"),
639
- createVNode("span", { style: { "color": "#E1E4E8" } }, ",")
640
- ]),
641
- createTextVNode("\n"),
642
- createVNode("span", { class: "line" }),
643
- createTextVNode("\n"),
644
- createVNode("span", { class: "line" }, [
645
- createVNode("span", { style: { "color": "#E1E4E8" } }, " themeConfig: {")
646
- ]),
647
- createTextVNode("\n"),
648
- createVNode("span", { class: "line" }, [
649
- createVNode("span", { style: { "color": "#E1E4E8" } }, " banner: {")
650
- ]),
651
- createTextVNode("\n"),
652
- createVNode("span", { class: "line" }, [
653
- createVNode("span", { style: { "color": "#E1E4E8" } }, " enable: "),
654
- createVNode("span", { style: { "color": "#79B8FF" } }, "true"),
655
- createVNode("span", { style: { "color": "#E1E4E8" } }, ",")
656
- ]),
657
- createTextVNode("\n"),
658
- createVNode("span", { class: "line" }, [
659
- createVNode("span", { style: { "color": "#E1E4E8" } }, " title: "),
660
- createVNode("span", { style: { "color": "#9ECBFF" } }, "'云游君的小站'"),
661
- createVNode("span", { style: { "color": "#E1E4E8" } }, ",")
662
- ]),
663
- createTextVNode("\n"),
664
- createVNode("span", { class: "line" }, [
665
- createVNode("span", { style: { "color": "#E1E4E8" } }, " },")
666
- ]),
667
- createTextVNode("\n"),
668
- createVNode("span", { class: "line" }, [
669
- createVNode("span", { style: { "color": "#E1E4E8" } }, " },")
670
- ]),
671
- createTextVNode("\n"),
672
- createVNode("span", { class: "line" }, [
673
- createVNode("span", { style: { "color": "#E1E4E8" } }, "})")
674
- ])
675
- ])
676
- ]),
677
- createVNode("pre", { class: "shiki github-light vp-code-light" }, [
678
- createVNode("code", null, [
679
- createVNode("span", { class: "line" }, [
680
- createVNode("span", { style: { "color": "#D73A49" } }, "import"),
681
- createVNode("span", { style: { "color": "#24292E" } }, " "),
682
- createVNode("span", { style: { "color": "#D73A49" } }, "type"),
683
- createVNode("span", { style: { "color": "#24292E" } }, " { UserConfig } "),
684
- createVNode("span", { style: { "color": "#D73A49" } }, "from"),
685
- createVNode("span", { style: { "color": "#24292E" } }, " "),
686
- createVNode("span", { style: { "color": "#032F62" } }, "'valaxy'")
687
- ]),
688
- createTextVNode("\n"),
689
- createVNode("span", { class: "line" }, [
690
- createVNode("span", { style: { "color": "#D73A49" } }, "import"),
691
- createVNode("span", { style: { "color": "#24292E" } }, " "),
692
- createVNode("span", { style: { "color": "#D73A49" } }, "type"),
693
- createVNode("span", { style: { "color": "#24292E" } }, " { UserThemeConfig } "),
694
- createVNode("span", { style: { "color": "#D73A49" } }, "from"),
695
- createVNode("span", { style: { "color": "#24292E" } }, " "),
696
- createVNode("span", { style: { "color": "#032F62" } }, "'valaxy-theme-yun'")
697
- ]),
698
- createTextVNode("\n"),
699
- createVNode("span", { class: "line" }),
700
- createTextVNode("\n"),
701
- createVNode("span", { class: "line" }, [
702
- createVNode("span", { style: { "color": "#D73A49" } }, "export"),
703
- createVNode("span", { style: { "color": "#24292E" } }, " "),
704
- createVNode("span", { style: { "color": "#D73A49" } }, "default"),
705
- createVNode("span", { style: { "color": "#24292E" } }, " "),
706
- createVNode("span", { style: { "color": "#6F42C1" } }, "defineValaxyConfig"),
707
- createVNode("span", { style: { "color": "#24292E" } }, "<"),
708
- createVNode("span", { style: { "color": "#6F42C1" } }, "ThemeConfig"),
709
- createVNode("span", { style: { "color": "#24292E" } }, ">({")
710
- ]),
711
- createTextVNode("\n"),
712
- createVNode("span", { class: "line" }, [
713
- createVNode("span", { style: { "color": "#24292E" } }, " theme: "),
714
- createVNode("span", { style: { "color": "#032F62" } }, "'yun'"),
715
- createVNode("span", { style: { "color": "#24292E" } }, ",")
716
- ]),
717
- createTextVNode("\n"),
718
- createVNode("span", { class: "line" }),
719
- createTextVNode("\n"),
720
- createVNode("span", { class: "line" }, [
721
- createVNode("span", { style: { "color": "#24292E" } }, " themeConfig: {")
722
- ]),
723
- createTextVNode("\n"),
724
- createVNode("span", { class: "line" }, [
725
- createVNode("span", { style: { "color": "#24292E" } }, " banner: {")
726
- ]),
727
- createTextVNode("\n"),
728
- createVNode("span", { class: "line" }, [
729
- createVNode("span", { style: { "color": "#24292E" } }, " enable: "),
730
- createVNode("span", { style: { "color": "#005CC5" } }, "true"),
731
- createVNode("span", { style: { "color": "#24292E" } }, ",")
732
- ]),
733
- createTextVNode("\n"),
734
- createVNode("span", { class: "line" }, [
735
- createVNode("span", { style: { "color": "#24292E" } }, " title: "),
736
- createVNode("span", { style: { "color": "#032F62" } }, "'云游君的小站'"),
737
- createVNode("span", { style: { "color": "#24292E" } }, ",")
738
- ]),
739
- createTextVNode("\n"),
740
- createVNode("span", { class: "line" }, [
741
- createVNode("span", { style: { "color": "#24292E" } }, " },")
742
- ]),
743
- createTextVNode("\n"),
744
- createVNode("span", { class: "line" }, [
745
- createVNode("span", { style: { "color": "#24292E" } }, " },")
746
- ]),
747
- createTextVNode("\n"),
748
- createVNode("span", { class: "line" }, [
749
- createVNode("span", { style: { "color": "#24292E" } }, "})")
750
- ])
751
- ])
752
- ])
753
- ]),
754
- createVNode("h2", {
755
- lang: "en",
756
- id: "why-not",
757
- tabindex: "-1"
758
- }, [
759
- createTextVNode("Why not ...? "),
760
- createVNode(_component_AppLink, {
761
- class: "header-anchor",
762
- href: "#why-not",
763
- "aria-label": 'Permalink to "Why not ...? {lang="en"}"'
764
- }, {
765
- default: withCtx(() => [
766
- createTextVNode("​")
767
- ]),
768
- _: 1
769
- /* STABLE */
770
- })
771
- ]),
772
- createVNode("h2", {
773
- lang: "zh-CN",
774
- id: "为什么不是",
775
- tabindex: "-1"
776
- }, [
777
- createTextVNode("为什么不是……? "),
778
- createVNode(_component_AppLink, {
779
- class: "header-anchor",
780
- href: "#为什么不是",
781
- "aria-label": 'Permalink to "为什么不是……? {lang="zh-CN"}"'
782
- }, {
783
- default: withCtx(() => [
784
- createTextVNode("​")
785
- ]),
786
- _: 1
787
- /* STABLE */
788
- })
789
- ]),
790
- createVNode("blockquote", null, [
791
- createVNode("p", null, "Wordpress/Typecho 等是动态博客,因此不在考虑范围内。")
792
- ]),
793
- createVNode("h3", {
794
- id: "hexo-hugo-jekyll",
795
- tabindex: "-1"
796
- }, [
797
- createVNode(_component_AppLink, {
798
- href: "https://hexo.io/",
799
- target: "_blank",
800
- rel: "noreferrer"
801
- }, {
802
- default: withCtx(() => [
803
- createTextVNode("Hexo")
804
- ]),
805
- _: 1
806
- /* STABLE */
807
- }),
808
- createTextVNode("/"),
809
- createVNode(_component_AppLink, {
810
- href: "https://gohugo.io/",
811
- target: "_blank",
812
- rel: "noreferrer"
813
- }, {
814
- default: withCtx(() => [
815
- createTextVNode("Hugo")
816
- ]),
817
- _: 1
818
- /* STABLE */
819
- }),
820
- createTextVNode("/Jekyll "),
821
- createVNode(_component_AppLink, {
822
- class: "header-anchor",
823
- href: "#hexo-hugo-jekyll",
824
- "aria-label": 'Permalink to "[Hexo](https://hexo.io/)/[Hugo](https://gohugo.io/)/Jekyll"'
825
- }, {
826
- default: withCtx(() => [
827
- createTextVNode("​")
828
- ]),
829
- _: 1
830
- /* STABLE */
831
- })
832
- ]),
833
- createVNode("p", null, "我非常需要现代前端框架提供的开发热重载与 PJAX 体验,以及 TypeScript 的类型提示,但 Hexo 似乎已经有些积重难返,基于此来做一些工作将会束手束脚。"),
834
- createVNode("p", null, "Hugo 也是很棒的静态站点生成器,但是我并没有使用 Go 的需求。当然在打包时所使用的 ESBuild 正是基于 Go 实现。但这并不需要我操心。"),
835
- createVNode("p", null, "Jekyll 算是元老,但同样我并不使用 Ruby,且它似乎并不便捷,也同样存在一些开发体验的问题。 GitHub 为其提供了原生支持是一大优势,但我打算类似使用 GitHub Actions 来达成该方面近乎一致的体验。"),
836
- createCommentVNode(" 最后,我有一些尝试想要实现。见[重新构想博客框架(Todo)]。\n譬如,可以提供一种主题商店,用户仅需在 GitHub Repo 中存放自己的文章。\n在主题商店,填写自己的 Repo 地址,选中主题切换即可在线预览内容效果。(这完全可以做到,只需要动态纯前端获取 Markdown 内容并渲染即可)\n而用户想要应对 SEO 时,则可再将其渲染为静态页面。我也将会为此提供一个一键可用的 GitHub Actions 脚本。 "),
837
- createVNode("h3", {
838
- id: "vuepress-vitepress",
839
- tabindex: "-1"
840
- }, [
841
- createTextVNode("VuePress/VitePress "),
842
- createVNode(_component_AppLink, {
843
- class: "header-anchor",
844
- href: "#vuepress-vitepress",
845
- "aria-label": 'Permalink to "VuePress/VitePress"'
846
- }, {
847
- default: withCtx(() => [
848
- createTextVNode("​")
849
- ]),
850
- _: 1
851
- /* STABLE */
852
- })
853
- ]),
854
- createVNode("p", null, [
855
- createVNode(_component_AppLink, {
856
- href: "https://vitepress.dev/",
857
- target: "_blank",
858
- rel: "noreferrer"
859
- }, {
860
- default: withCtx(() => [
861
- createTextVNode("VitePress")
862
- ]),
863
- _: 1
864
- /* STABLE */
865
- }),
866
- createTextVNode(" 几乎已成为了 VuePress 的继任者。")
867
- ]),
868
- createVNode("p", null, "但 VitePress 是一个很棒的静态站点生成器,它为文档打造,但缺少一些针对博客的定制便捷功能。 如:RSS、文件自动路由(vue-router)、插件(挂件)机制、文章列表/分类/标签钩子、自定义覆盖布局、覆盖组件、单页切换的 i18n、KaTeX 等。"),
869
- createVNode("h3", {
870
- id: "iles",
871
- tabindex: "-1"
872
- }, [
873
- createVNode(_component_AppLink, {
874
- href: "https://github.com/ElMassimo/iles",
875
- target: "_blank",
876
- rel: "noreferrer"
877
- }, {
878
- default: withCtx(() => [
879
- createTextVNode("iles")
880
- ]),
881
- _: 1
882
- /* STABLE */
883
- }),
884
- createTextVNode(),
885
- createVNode(_component_AppLink, {
886
- class: "header-anchor",
887
- href: "#iles",
888
- "aria-label": 'Permalink to "[iles](https://github.com/ElMassimo/iles)"'
889
- }, {
890
- default: withCtx(() => [
891
- createTextVNode("​")
892
- ]),
893
- _: 1
894
- /* STABLE */
895
- })
896
- ]),
897
- createVNode("div", { lang: "zh-CN" }, [
898
- createVNode("p", null, "iles 与 Valaxy 的一些基础结构功能很相似,它相比 Vitepress 拥有更多功能,也很适合写一个拥有更多交互的文档。"),
899
- createVNode("p", null, "不过它的定位仍旧是静态站点生成器,这与 Valaxy 静态博客生成器的定位不同。"),
900
- createVNode("p", null, "因为 Valaxy 除此之外,还会提供文章列表、分页、标签、分类等更多面向博客的功能,并支持扩展与自定义博客主题。")
901
- ]),
902
- createVNode("div", { lang: "en" }, [
903
- createVNode("p", null, "After completing the development of Valaxy's basic structures, I learned about iles from my group friend, which is very similar to many features I have archieved."),
904
- createVNode("p", null, "It has more features than Vitepress and is also suitable for writing a document with more interaction."),
905
- createVNode("p", null, "However, its positioning is still static site generator, which is different from that of Valaxy static blog generator."),
906
- createVNode("p", null, "In addition, Valaxy also provides more blog oriented features such as article list, pagination, tag and category, and supports extension and customization of blog topics.")
907
- ]),
908
- createVNode("h2", {
909
- id: "thanks",
910
- tabindex: "-1"
911
- }, [
912
- createTextVNode("Thanks "),
913
- createVNode(_component_AppLink, {
914
- class: "header-anchor",
915
- href: "#thanks",
916
- "aria-label": 'Permalink to "Thanks"'
917
- }, {
918
- default: withCtx(() => [
919
- createTextVNode("​")
920
- ]),
921
- _: 1
922
- /* STABLE */
923
- })
924
- ]),
925
- createVNode("p", null, "💗 Valaxy 的实现基于或参考了以下项目:"),
926
- createVNode("ul", null, [
927
- createVNode("li", null, [
928
- createVNode(_component_AppLink, {
929
- href: "https://github.com/vuejs/core",
930
- target: "_blank",
931
- rel: "noreferrer"
932
- }, {
933
- default: withCtx(() => [
934
- createTextVNode("Vue")
935
- ]),
936
- _: 1
937
- /* STABLE */
938
- })
939
- ]),
940
- createVNode("li", null, [
941
- createVNode(_component_AppLink, {
942
- href: "https://github.com/vueuse/vueuse",
943
- target: "_blank",
944
- rel: "noreferrer"
945
- }, {
946
- default: withCtx(() => [
947
- createTextVNode("VueUse")
948
- ]),
949
- _: 1
950
- /* STABLE */
951
- })
952
- ]),
953
- createVNode("li", null, [
954
- createVNode(_component_AppLink, {
955
- href: "https://github.com/vitejs/vite",
956
- target: "_blank",
957
- rel: "noreferrer"
958
- }, {
959
- default: withCtx(() => [
960
- createTextVNode("Vite")
961
- ]),
962
- _: 1
963
- /* STABLE */
964
- })
965
- ]),
966
- createVNode("li", null, [
967
- createVNode(_component_AppLink, {
968
- href: "https://github.com/vuejs/vitepress",
969
- target: "_blank",
970
- rel: "noreferrer"
971
- }, {
972
- default: withCtx(() => [
973
- createTextVNode("VitePress")
974
- ]),
975
- _: 1
976
- /* STABLE */
977
- })
978
- ]),
979
- createVNode("li", null, [
980
- createVNode(_component_AppLink, {
981
- href: "https://github.com/antfu/vitesse",
982
- target: "_blank",
983
- rel: "noreferrer"
984
- }, {
985
- default: withCtx(() => [
986
- createTextVNode("Vitesse")
987
- ]),
988
- _: 1
989
- /* STABLE */
990
- })
991
- ]),
992
- createVNode("li", null, [
993
- createVNode(_component_AppLink, {
994
- href: "https://github.com/slidevjs/slidev",
995
- target: "_blank",
996
- rel: "noreferrer"
997
- }, {
998
- default: withCtx(() => [
999
- createTextVNode("Slidev")
1000
- ]),
1001
- _: 1
1002
- /* STABLE */
1003
- })
1004
- ])
1005
- ])
1006
- ];
1007
- }
1008
- }),
1009
- "main-header": withCtx((_, _push2, _parent2, _scopeId) => {
1010
- if (_push2) {
1011
- ssrRenderSlot(_ctx.$slots, "main-header", {}, null, _push2, _parent2, _scopeId);
1012
- } else {
1013
- return [
1014
- renderSlot(_ctx.$slots, "main-header")
1015
- ];
1016
- }
1017
- }),
1018
- "main-header-after": withCtx((_, _push2, _parent2, _scopeId) => {
1019
- if (_push2) {
1020
- ssrRenderSlot(_ctx.$slots, "main-header-after", {}, null, _push2, _parent2, _scopeId);
1021
- } else {
1022
- return [
1023
- renderSlot(_ctx.$slots, "main-header-after")
1024
- ];
1025
- }
1026
- }),
1027
- "main-nav": withCtx((_, _push2, _parent2, _scopeId) => {
1028
- if (_push2) {
1029
- ssrRenderSlot(_ctx.$slots, "main-nav", {}, null, _push2, _parent2, _scopeId);
1030
- } else {
1031
- return [
1032
- renderSlot(_ctx.$slots, "main-nav")
1033
- ];
1034
- }
1035
- }),
1036
- "main-content": withCtx((_, _push2, _parent2, _scopeId) => {
1037
- if (_push2) {
1038
- ssrRenderSlot(_ctx.$slots, "main-content", {}, null, _push2, _parent2, _scopeId);
1039
- } else {
1040
- return [
1041
- renderSlot(_ctx.$slots, "main-content")
1042
- ];
1043
- }
1044
- }),
1045
- "main-content-after": withCtx((_, _push2, _parent2, _scopeId) => {
1046
- if (_push2) {
1047
- ssrRenderSlot(_ctx.$slots, "main-content-after", {}, null, _push2, _parent2, _scopeId);
1048
- } else {
1049
- return [
1050
- renderSlot(_ctx.$slots, "main-content-after")
1051
- ];
1052
- }
1053
- }),
1054
- "main-nav-before": withCtx((_, _push2, _parent2, _scopeId) => {
1055
- if (_push2) {
1056
- ssrRenderSlot(_ctx.$slots, "main-nav-before", {}, null, _push2, _parent2, _scopeId);
1057
- } else {
1058
- return [
1059
- renderSlot(_ctx.$slots, "main-nav-before")
1060
- ];
1061
- }
1062
- }),
1063
- "main-nav-after": withCtx((_, _push2, _parent2, _scopeId) => {
1064
- if (_push2) {
1065
- ssrRenderSlot(_ctx.$slots, "main-nav-after", {}, null, _push2, _parent2, _scopeId);
1066
- } else {
1067
- return [
1068
- renderSlot(_ctx.$slots, "main-nav-after")
1069
- ];
1070
- }
1071
- }),
1072
- comment: withCtx((_, _push2, _parent2, _scopeId) => {
1073
- if (_push2) {
1074
- ssrRenderSlot(_ctx.$slots, "comment", {}, null, _push2, _parent2, _scopeId);
1075
- } else {
1076
- return [
1077
- renderSlot(_ctx.$slots, "comment")
1078
- ];
1079
- }
1080
- }),
1081
- footer: withCtx((_, _push2, _parent2, _scopeId) => {
1082
- if (_push2) {
1083
- ssrRenderSlot(_ctx.$slots, "footer", {}, null, _push2, _parent2, _scopeId);
1084
- } else {
1085
- return [
1086
- renderSlot(_ctx.$slots, "footer")
1087
- ];
1088
- }
1089
- }),
1090
- aside: withCtx((_, _push2, _parent2, _scopeId) => {
1091
- if (_push2) {
1092
- ssrRenderSlot(_ctx.$slots, "aside", {}, null, _push2, _parent2, _scopeId);
1093
- } else {
1094
- return [
1095
- renderSlot(_ctx.$slots, "aside")
1096
- ];
1097
- }
1098
- }),
1099
- "aside-custom": withCtx((_, _push2, _parent2, _scopeId) => {
1100
- if (_push2) {
1101
- ssrRenderSlot(_ctx.$slots, "aside-custom", {}, null, _push2, _parent2, _scopeId);
1102
- } else {
1103
- return [
1104
- renderSlot(_ctx.$slots, "aside-custom")
1105
- ];
1106
- }
1107
- }),
1108
- default: withCtx((_, _push2, _parent2, _scopeId) => {
1109
- if (_push2) {
1110
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
1111
- } else {
1112
- return [
1113
- renderSlot(_ctx.$slots, "default")
1114
- ];
1115
- }
1116
- }),
1117
- _: 3
1118
- /* FORWARDED */
1119
- }, _parent));
1120
- }
1121
- const _sfc_setup = _sfc_main.setup;
1122
- _sfc_main.setup = (props, ctx) => {
1123
- const ssrContext = useSSRContext();
1124
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../../../docs/pages/guide/why.md");
1125
- return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
1126
- };
1127
- const why = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
1128
- export {
1129
- __pageData,
1130
- why as default
1131
- };