valaxy 0.0.2 → 0.0.7

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 (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/bin/valaxy.js +11 -0
  4. package/dist/build-OOT6HK6S.js +1 -0
  5. package/dist/build-SG32QSQ3.mjs +1 -0
  6. package/dist/chunk-7JDYOPID.js +1 -0
  7. package/dist/chunk-JJEBEWGI.mjs +1 -0
  8. package/dist/chunk-L3EDI35I.js +1 -0
  9. package/dist/chunk-L5SNNWFJ.js +78 -0
  10. package/dist/chunk-MVJUGWXR.mjs +1 -0
  11. package/dist/chunk-QI435Q25.mjs +78 -0
  12. package/dist/config-d6527c8c.d.ts +174 -0
  13. package/dist/node/cli.d.ts +3 -0
  14. package/dist/node/cli.js +6 -0
  15. package/dist/node/cli.mjs +6 -0
  16. package/dist/node/index.d.ts +45 -0
  17. package/dist/node/index.js +1 -0
  18. package/dist/node/index.mjs +1 -0
  19. package/dist/types/index.d.ts +110 -0
  20. package/dist/types/index.js +1 -0
  21. package/dist/types/index.mjs +1 -0
  22. package/package.json +75 -3
  23. package/src/client/App.vue +16 -0
  24. package/src/client/components/AppLink.vue +20 -0
  25. package/src/client/components/PostCard.vue +69 -0
  26. package/src/client/components/PostList.vue +50 -0
  27. package/src/client/components/README.md +7 -0
  28. package/src/client/components/ValaxyCopyright.vue +80 -0
  29. package/src/client/components/ValaxyFooter.vue +53 -0
  30. package/src/client/components/ValaxyHamburger.vue +21 -0
  31. package/src/client/components/ValaxyMd.vue +71 -0
  32. package/src/client/components/ValaxyOverlay.vue +44 -0
  33. package/src/client/components/ValaxyPagination.vue +122 -0
  34. package/src/client/components/ValaxyRightSidebar.vue +32 -0
  35. package/src/client/components/ValaxySidebar.vue +35 -0
  36. package/src/client/components/ValaxyToc.vue +70 -0
  37. package/src/client/composables/category.ts +101 -0
  38. package/src/client/composables/comments/index.ts +1 -0
  39. package/src/client/composables/comments/waline.ts +60 -0
  40. package/src/client/composables/common.ts +27 -0
  41. package/src/client/composables/dark.ts +4 -0
  42. package/src/client/composables/features/index.ts +1 -0
  43. package/src/client/composables/features/katex.ts +15 -0
  44. package/src/client/composables/helper.ts +26 -0
  45. package/src/client/composables/index.ts +17 -0
  46. package/src/client/composables/layout.ts +7 -0
  47. package/src/client/composables/post.ts +96 -0
  48. package/src/client/composables/search/algolia.ts +114 -0
  49. package/src/client/composables/search/index.ts +0 -0
  50. package/src/client/composables/sidebar.ts +128 -0
  51. package/src/client/composables/tag.ts +70 -0
  52. package/src/client/composables/widgets/aplayer.ts +23 -0
  53. package/src/client/composables/widgets/backToTop.ts +28 -0
  54. package/src/client/composables/widgets/codepen.ts +12 -0
  55. package/src/client/composables/widgets/index.ts +3 -0
  56. package/src/client/index.html +24 -0
  57. package/src/client/layouts/404.vue +25 -0
  58. package/src/client/layouts/README.md +14 -0
  59. package/src/client/locales/README.md +7 -0
  60. package/src/client/locales/en.yml +107 -0
  61. package/src/client/locales/zh-CN.yml +106 -0
  62. package/src/client/main.ts +30 -0
  63. package/src/client/modules/README.md +11 -0
  64. package/src/client/modules/nprogress.ts +14 -0
  65. package/src/client/modules/pinia.ts +17 -0
  66. package/src/client/modules/pwa.ts +12 -0
  67. package/src/client/modules/valaxy.ts +42 -0
  68. package/src/client/pages/README.md +20 -0
  69. package/src/client/pages/[...all].vue +15 -0
  70. package/src/client/pages/about/index.md +5 -0
  71. package/src/client/pages/hi/[name].vue +52 -0
  72. package/src/client/pages/index.vue +3 -0
  73. package/src/client/pages/page/[page].vue +12 -0
  74. package/src/client/pages/posts/index.md +5 -0
  75. package/src/client/public/_headers +3 -0
  76. package/src/client/public/favicon.svg +21 -0
  77. package/src/client/public/pwa-192x192.png +0 -0
  78. package/src/client/public/pwa-512x512.png +0 -0
  79. package/src/client/public/safari-pinned-tab.svg +41 -0
  80. package/src/client/shims.d.ts +36 -0
  81. package/src/client/stores/app.ts +14 -0
  82. package/src/client/stores/user.ts +35 -0
  83. package/src/client/styles/common/button.scss +29 -0
  84. package/src/client/styles/common/code.scss +35 -0
  85. package/src/client/styles/common/hamburger.scss +56 -0
  86. package/src/client/styles/common/markdown.scss +43 -0
  87. package/src/client/styles/common/scrollbar.scss +34 -0
  88. package/src/client/styles/common/sidebar.scss +30 -0
  89. package/src/client/styles/common/transition.scss +23 -0
  90. package/src/client/styles/css-vars/dark.scss +17 -0
  91. package/src/client/styles/css-vars/index.scss +18 -0
  92. package/src/client/styles/css-vars/light.scss +9 -0
  93. package/src/client/styles/global/helper.scss +3 -0
  94. package/src/client/styles/global/index.scss +38 -0
  95. package/src/client/styles/global/nprogress.scss +14 -0
  96. package/src/client/styles/global/reset.scss +20 -0
  97. package/src/client/styles/index.scss +18 -0
  98. package/src/client/styles/mixins/config.scss +1 -0
  99. package/src/client/styles/mixins/index.scss +2 -0
  100. package/src/client/styles/mixins/size.scss +49 -0
  101. package/src/client/styles/mixins/variable.scss +30 -0
  102. package/src/client/styles/palette.scss +61 -0
  103. package/src/client/styles/vars.scss +39 -0
  104. package/src/client/styles/widgets/banner.scss +116 -0
  105. package/src/client/types.ts +3 -0
  106. package/src/client/utils/helper.ts +30 -0
  107. package/src/client/utils/index.ts +2 -0
  108. package/src/client/utils/time.ts +23 -0
  109. package/src/core/config.ts +51 -0
  110. package/src/core/index.ts +5 -0
  111. package/src/core/utils.ts +1 -0
  112. package/src/index.ts +2 -0
  113. package/src/node/build.ts +12 -0
  114. package/src/node/cli.ts +177 -0
  115. package/src/node/config.ts +43 -0
  116. package/src/node/index.ts +1 -0
  117. package/src/node/markdown/headings.ts +24 -0
  118. package/src/node/markdown/index.ts +74 -0
  119. package/src/node/markdown/markdown-it-container.ts +53 -0
  120. package/src/node/markdown/markdown-it-katex.ts +200 -0
  121. package/src/node/markdown/parseHeader.ts +70 -0
  122. package/src/node/markdown/slugify.ts +24 -0
  123. package/src/node/options.ts +90 -0
  124. package/src/node/plugins/extendConfig.ts +28 -0
  125. package/src/node/plugins/index.ts +91 -0
  126. package/src/node/plugins/markdown.ts +62 -0
  127. package/src/node/plugins/preset.ts +174 -0
  128. package/src/node/plugins/unocss.ts +106 -0
  129. package/src/node/plugins/valaxy.ts +1 -0
  130. package/src/node/server.ts +21 -0
  131. package/src/node/shims.d.ts +23 -0
  132. package/src/node/utils/cli.ts +105 -0
  133. package/src/node/utils/index.ts +26 -0
  134. package/src/node/vite.ts +83 -0
  135. package/src/types/config.ts +250 -0
  136. package/src/types/index.ts +2 -0
  137. package/src/types/posts.ts +107 -0
  138. package/tsup.config.ts +17 -0
@@ -0,0 +1,174 @@
1
+ import { PartialDeep } from 'type-fest';
2
+ import { VitePluginConfig } from 'unocss/vite';
3
+ import MarkdownIt from 'markdown-it';
4
+ import Anchor from 'markdown-it-anchor';
5
+ import { KatexOptions } from 'katex';
6
+ import Markdown from 'vite-plugin-md';
7
+
8
+ interface MarkdownOptions extends MarkdownIt.Options {
9
+ config?: (md: MarkdownIt) => void;
10
+ anchor?: {
11
+ permalink?: Anchor.AnchorOptions['permalink'];
12
+ };
13
+ toc?: any;
14
+ katex?: KatexOptions;
15
+ }
16
+
17
+ declare type ViteMdOptions = Parameters<typeof Markdown>[0];
18
+
19
+ declare type ValaxyThemeConfig = Record<string, any>;
20
+ interface SocialLink {
21
+ /**
22
+ * The title of your link
23
+ */
24
+ name: string;
25
+ link: string;
26
+ /**
27
+ * å›¾ę ‡åē§°
28
+ * https://icones.js.org/
29
+ */
30
+ icon: string;
31
+ color: string;
32
+ }
33
+ interface ValaxyConfig<T = ValaxyThemeConfig> {
34
+ /**
35
+ * Default language
36
+ * @description é»˜č®¤čÆ­čØ€
37
+ * @default 'en'
38
+ */
39
+ lang: string;
40
+ /**
41
+ * You site url in web, required for ssg, do not add / in end
42
+ * @description ē«™ē‚¹ēš„ URL,SSG éœ€č¦ļ¼ˆč­¬å¦‚ē”Ÿęˆē‰ˆęƒå¤„ę–‡ē« ę°øä¹…é“¾ęŽ„ļ¼‰ļ¼Œäøč¦åœØęœ«å°¾ę·»åŠ  /
43
+ */
44
+ url: string;
45
+ /**
46
+ * Site title
47
+ * @description ē«™ē‚¹ę ‡é¢˜
48
+ */
49
+ title: string;
50
+ /**
51
+ * å‰Æę ‡é¢˜
52
+ */
53
+ subtitle: string;
54
+ /**
55
+ * ē«™ē‚¹ęčæ°
56
+ */
57
+ description: string;
58
+ /**
59
+ * The owner of this blog
60
+ * @description åšå®¢ä½œč€…
61
+ */
62
+ author: {
63
+ /**
64
+ * Your name
65
+ * @description ä½ ēš„åå­—
66
+ */
67
+ name: string;
68
+ avatar: string;
69
+ /**
70
+ * The status of you
71
+ * @description ēŠ¶ę€
72
+ */
73
+ status: {
74
+ emoji: string;
75
+ /**
76
+ * show when hover emoji
77
+ * @description å½“é¼ ę ‡ę‚¬ęµ®åœØå›¾ę ‡äøŠę—¶ę˜¾ē¤ŗ
78
+ */
79
+ message: string;
80
+ };
81
+ };
82
+ /**
83
+ * ē¤¾äŗ¤é“¾ęŽ„
84
+ */
85
+ social: SocialLink[];
86
+ /**
87
+ * search
88
+ */
89
+ search: {
90
+ algolia: {
91
+ enable: boolean;
92
+ appId: string;
93
+ apiKey: string;
94
+ indexName: string;
95
+ chunkSize: number;
96
+ };
97
+ };
98
+ /**
99
+ * comment: waline/...
100
+ */
101
+ comment: {
102
+ waline: {
103
+ enable: boolean;
104
+ serverURL: string;
105
+ };
106
+ };
107
+ /**
108
+ * The name of theme
109
+ * @description äø»é¢˜åē§°
110
+ */
111
+ theme: string;
112
+ /**
113
+ * The config of theme
114
+ * @description äø»é¢˜é…ē½®
115
+ */
116
+ themeConfig: T;
117
+ /**
118
+ * Unocss Config
119
+ */
120
+ unocss: VitePluginConfig;
121
+ /**
122
+ * The license of your posts
123
+ * @description ę–‡ē« ę‰€ä½æē”Øēš„åč®®ļ¼Œé»˜č®¤ä½æē”Ø Creative Commons
124
+ * @default https://creativecommons.org/licenses/
125
+ */
126
+ license: {
127
+ /**
128
+ * Whether to show at the bottom of the article
129
+ * @description ę˜Æå¦ę˜¾ē¤ŗåœØę–‡ē« åŗ•éƒØ
130
+ * @default true
131
+ */
132
+ enabled: boolean;
133
+ /**
134
+ * Creative License Language, same with your config.lang
135
+ * when lang === 'zh-CN', use 'zh'
136
+ * @description é»˜č®¤äøŽē«™ē‚¹čÆ­čØ€ē›øåŒ
137
+ * @default 'en'
138
+ */
139
+ language: string;
140
+ /**
141
+ * Type of license
142
+ * @description čÆä¹¦ē±»åž‹
143
+ * @default 'by-nc-sa'
144
+ */
145
+ type: 'zero' | 'by-sa' | 'by-nd' | 'by-nc' | 'by-nc-sa' | 'by-nc-nd';
146
+ };
147
+ /**
148
+ * donate for author
149
+ * @description ę‰“čµ/čµžåŠ©
150
+ */
151
+ sponsor: {
152
+ enable: boolean;
153
+ title: string;
154
+ methods: {
155
+ name: string;
156
+ url: string;
157
+ color: string;
158
+ icon: string;
159
+ }[];
160
+ };
161
+ /**
162
+ * for markdown
163
+ */
164
+ markdown: ViteMdOptions;
165
+ markdownIt: MarkdownOptions;
166
+ }
167
+ /**
168
+ * Valaxy User Config
169
+ * @description Valaxy ē”Øęˆ·é…ē½®
170
+ */
171
+ declare type UserConfig<T = ValaxyThemeConfig> = PartialDeep<ValaxyConfig<T>>;
172
+ declare const defaultValaxyConfig: ValaxyConfig;
173
+
174
+ export { SocialLink as S, UserConfig as U, ValaxyConfig as V, ValaxyThemeConfig as a, defaultValaxyConfig as d };
@@ -0,0 +1,3 @@
1
+ declare function run(): void;
2
+
3
+ export { run };
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunk7JDYOPIDjs = require('../chunk-7JDYOPID.js');var _chunkL5SNNWFJjs = require('../chunk-L5SNNWFJ.js');var _chunkL3EDI35Ijs = require('../chunk-L3EDI35I.js');var re=_chunkL3EDI35Ijs.c.call(void 0, (st,oe)=>{_chunkL3EDI35Ijs.e.call(void 0, );var x=1e3,O=x*60,R=O*60,F=R*24,Oe=F*7,Re=F*365.25;oe.exports=function(e,o){o=o||{};var t=typeof e;if(t==="string"&&e.length>0)return Ee(e);if(t==="number"&&isFinite(e))return o.long?$e(e):Ie(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Ee(e){if(e=String(e),!(e.length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!!o){var t=parseFloat(o[1]),r=(o[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*Re;case"weeks":case"week":case"w":return t*Oe;case"days":case"day":case"d":return t*F;case"hours":case"hour":case"hrs":case"hr":case"h":return t*R;case"minutes":case"minute":case"mins":case"min":case"m":return t*O;case"seconds":case"second":case"secs":case"sec":case"s":return t*x;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function Ie(e){var o=Math.abs(e);return o>=F?Math.round(e/F)+"d":o>=R?Math.round(e/R)+"h":o>=O?Math.round(e/O)+"m":o>=x?Math.round(e/x)+"s":e+"ms"}function $e(e){var o=Math.abs(e);return o>=F?T(e,o,F,"day"):o>=R?T(e,o,R,"hour"):o>=O?T(e,o,O,"minute"):o>=x?T(e,o,x,"second"):e+" ms"}function T(e,o,t,r){var s=o>=t*1.5;return Math.round(e/t)+" "+r+(s?"s":"")}});var P=_chunkL3EDI35Ijs.c.call(void 0, (it,ne)=>{_chunkL3EDI35Ijs.e.call(void 0, );function ke(e){t.debug=t,t.default=t,t.coerce=I,t.disable=c,t.enable=s,t.enabled=h,t.humanize=re(),t.destroy=ve,Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={};function o(n){let i=0;for(let u=0;u<n.length;u++)i=(i<<5)-i+n.charCodeAt(u),i|=0;return t.colors[Math.abs(i)%t.colors.length]}t.selectColor=o;function t(n){let i,u=null,$,K;function y(...m){if(!y.enabled)return;let b=y,k=Number(new Date),be=k-(i||k);b.diff=be,b.prev=i,b.curr=k,i=k,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let A=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(D,we)=>{if(D==="%%")return"%";A++;let Z=t.formatters[we];if(typeof Z=="function"){let Fe=m[A];D=Z.call(b,Fe),m.splice(A,1),A--}return D}),t.formatArgs.call(b,m),(b.log||t.log).apply(b,m)}return y.namespace=n,y.useColors=t.useColors(),y.color=t.selectColor(n),y.extend=r,y.destroy=t.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>u!==null?u:($!==t.namespaces&&($=t.namespaces,K=t.enabled(n)),K),set:m=>{u=m}}),typeof t.init=="function"&&t.init(y),y}function r(n,i){let u=t(this.namespace+(typeof i>"u"?":":i)+n);return u.log=this.log,u}function s(n){t.save(n),t.namespaces=n,t.names=[],t.skips=[];let i,u=(typeof n=="string"?n:"").split(/[\s,]+/),$=u.length;for(i=0;i<$;i++)!u[i]||(n=u[i].replace(/\*/g,".*?"),n[0]==="-"?t.skips.push(new RegExp("^"+n.slice(1)+"$")):t.names.push(new RegExp("^"+n+"$")))}function c(){let n=[...t.names.map(C),...t.skips.map(C).map(i=>"-"+i)].join(",");return t.enable(""),n}function h(n){if(n[n.length-1]==="*")return!0;let i,u;for(i=0,u=t.skips.length;i<u;i++)if(t.skips[i].test(n))return!1;for(i=0,u=t.names.length;i<u;i++)if(t.names[i].test(n))return!0;return!1}function C(n){return n.toString().substring(2,n.toString().length-2).replace(/\.\*\?$/,"*")}function I(n){return n instanceof Error?n.stack||n.message:n}function ve(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}ne.exports=ke});var se=_chunkL3EDI35Ijs.c.call(void 0, (d,j)=>{_chunkL3EDI35Ijs.e.call(void 0, );d.formatArgs=Se;d.save=Te;d.load=je;d.useColors=Ae;d.storage=Me();d.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();d.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Ae(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Se(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+j.exports.humanize(this.diff),!this.useColors)return;let o="color: "+this.color;e.splice(1,0,o,"color: inherit");let t=0,r=0;e[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(t++,s==="%c"&&(r=t))}),e.splice(r,0,o)}d.log=console.debug||console.log||(()=>{});function Te(e){try{e?d.storage.setItem("debug",e):d.storage.removeItem("debug")}catch (e2){}}function je(){let e;try{e=d.storage.getItem("debug")}catch (e3){}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Me(){try{return localStorage}catch (e4){}}j.exports=P()(d);var{formatters:Le}=j.exports;Le.j=function(e){try{return JSON.stringify(e)}catch(o){return"[UnexpectedJSONParseError]: "+o.message}}});var ae=_chunkL3EDI35Ijs.c.call(void 0, (at,ie)=>{"use strict";_chunkL3EDI35Ijs.e.call(void 0, );ie.exports=(e,o=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",r=o.indexOf(t+e),s=o.indexOf("--");return r!==-1&&(s===-1||r<s)}});var ue=_chunkL3EDI35Ijs.c.call(void 0, (ct,le)=>{"use strict";_chunkL3EDI35Ijs.e.call(void 0, );var Ve=_chunkL3EDI35Ijs.b.call(void 0, "os"),ce=_chunkL3EDI35Ijs.b.call(void 0, "tty"),g=ae(),{env:p}=process,v;g("no-color")||g("no-colors")||g("color=false")||g("color=never")?v=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(v=1);"FORCE_COLOR"in p&&(p.FORCE_COLOR==="true"?v=1:p.FORCE_COLOR==="false"?v=0:v=p.FORCE_COLOR.length===0?1:Math.min(parseInt(p.FORCE_COLOR,10),3));function q(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function U(e,o){if(v===0)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(e&&!o&&v===void 0)return 0;let t=v||0;if(p.TERM==="dumb")return t;if(process.platform==="win32"){let r=Ve.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in p)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in p)||p.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in p)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(p.TEAMCITY_VERSION)?1:0;if(p.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in p){let r=parseInt((p.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(p.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(p.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(p.TERM)||"COLORTERM"in p?1:t}function _e(e){let o=U(e,e&&e.isTTY);return q(o)}le.exports={supportsColor:_e,stdout:q(U(!0,ce.isatty(1))),stderr:q(U(!0,ce.isatty(2)))}});var fe=_chunkL3EDI35Ijs.c.call(void 0, (f,L)=>{_chunkL3EDI35Ijs.e.call(void 0, );var Ne=_chunkL3EDI35Ijs.b.call(void 0, "tty"),M=_chunkL3EDI35Ijs.b.call(void 0, "util");f.init=Ye;f.log=qe;f.formatArgs=Be;f.save=Ue;f.load=Ge;f.useColors=De;f.destroy=M.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");f.colors=[6,2,3,4,5,1];try{let e=ue();e&&(e.stderr||e).level>=2&&(f.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch (e5){}f.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,o)=>{let t=o.substring(6).toLowerCase().replace(/_([a-z])/g,(s,c)=>c.toUpperCase()),r=process.env[o];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[t]=r,e},{});function De(){return"colors"in f.inspectOpts?Boolean(f.inspectOpts.colors):Ne.isatty(process.stderr.fd)}function Be(e){let{namespace:o,useColors:t}=this;if(t){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),c=` ${s};1m${o} \x1B[0m`;e[0]=c+e[0].split(`
2
+ `).join(`
3
+ `+c),e.push(s+"m+"+L.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=Pe()+o+" "+e[0]}function Pe(){return f.inspectOpts.hideDate?"":new Date().toISOString()+" "}function qe(...e){return process.stderr.write(M.format(...e)+`
4
+ `)}function Ue(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function Ge(){return process.env.DEBUG}function Ye(e){e.inspectOpts={};let o=Object.keys(f.inspectOpts);for(let t=0;t<o.length;t++)e.inspectOpts[o[t]]=f.inspectOpts[o[t]]}L.exports=P()(f);var{formatters:pe}=L.exports;pe.o=function(e){return this.inspectOpts.colors=this.useColors,M.inspect(e,this.inspectOpts).split(`
5
+ `).map(o=>o.trim()).join(" ")};pe.O=function(e){return this.inspectOpts.colors=this.useColors,M.inspect(e,this.inspectOpts)}});var de=_chunkL3EDI35Ijs.c.call(void 0, (lt,G)=>{_chunkL3EDI35Ijs.e.call(void 0, );typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?G.exports=se():G.exports=fe()});_chunkL3EDI35Ijs.e.call(void 0, );var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _child_process = require('child_process');var _yargs = require('yargs'); var _yargs2 = _interopRequireDefault(_yargs);var _open = require('open'); var _open2 = _interopRequireDefault(_open);var _node = require('vite-ssg/node');var _consola = require('consola'); var _consola2 = _interopRequireDefault(_consola);var S="0.0.7";_chunkL3EDI35Ijs.e.call(void 0, );var me=_chunkL3EDI35Ijs.d.call(void 0, de());var Je=(0,me.default)("valaxy:options");function He(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}function We(e,o){return e?He(e)?_path.resolve.call(void 0, _path.dirname.call(void 0, o),e):_chunkL5SNNWFJjs.a.call(void 0, `valaxy-theme-${e}/package.json`):""}async function z(e){let o=_path.resolve.call(void 0, _chunkL5SNNWFJjs.a.call(void 0, "valaxy/package.json"),"src/client"),t=_path.resolve.call(void 0, e.userRoot||process.cwd()),{config:r,configFile:s,theme:c}=await _chunkL5SNNWFJjs.c.call(void 0, e),h=We(c,t),C={clientRoot:o,userRoot:t,themeRoot:h,theme:c,config:r,configFile:s||""};return Je(C),C}_chunkL3EDI35Ijs.e.call(void 0, );var _readline = require('readline'); var ge = _interopRequireWildcard(_readline);var _os = require('os'); var _os2 = _interopRequireDefault(_os);var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);var _;function J(e,o,t){console.log(),console.log(` ${_chalk2.default.bold("\u{1F30C} Valaxy")} ${_chalk2.default.blue(`v${S}`)}`),console.log(),console.log(`${_chalk2.default.dim(" \u{1FA90} theme ")} > ${e.theme?_chalk2.default.green(e.theme):_chalk2.default.gray("none")}`),console.log(` ${_chalk2.default.dim("\u{1F4C1}")} ${_chalk2.default.dim(_path2.default.resolve(e.userRoot))}`),o&&(console.log(),console.log(`${_chalk2.default.dim(" Preview ")} > ${_chalk2.default.cyan(`http://localhost:${_chalk2.default.bold(o)}/`)}`),t&&Object.values(_os2.default.networkInterfaces()).forEach(r=>(r||[]).filter(s=>s.family==="IPv4"&&!s.address.includes("127.0.0.1")).forEach(({address:s})=>{console.log(`${_chalk2.default.dim(" Network ")} > ${_chalk2.default.blue(`http://${s}:${_chalk2.default.bold(o)}/`)}`)})),console.log(),console.log(`${_chalk2.default.dim(" shortcuts ")} > ${_chalk2.default.underline("r")}${_chalk2.default.dim("estart | ")}${_chalk2.default.underline("o")}${_chalk2.default.dim("pen | ")}${_chalk2.default.underline("e")}${_chalk2.default.dim("dit")}`)),console.log()}async function N(e,o){_&&await _.close();try{let t=_chunkL5SNNWFJjs.b.call(void 0, e.config).concat(e.config.unocss.safelist||[]);_=await _chunk7JDYOPIDjs.a.call(void 0, e,o,{onConfigReload(r,s){let c=!1;r.social.some((C,I)=>!t.includes(C.icon)&&C.icon!==s.social[I].icon)&&(_consola2.default.info("Find new icon, reload server..."),_consola2.default.info(`If you do not want to reload it, write icon name in ${_chalk2.default.green("config.unocss.safelist")}.`),_consola2.default.info('For example: ["i-ri-cloud-line"]'),console.log(),c=!0),c&&N(e,o)}}),await _.listen()}catch(t){_consola2.default.error(`failed to start server. error:
6
+ `),console.error(t),process.exit(1)}}function Ce(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),ge.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(o,t)=>{if(t.ctrl&&t.name==="c")process.exit();else{let[r]=e.filter(s=>s.name===o);if(r)try{r.action()}catch(s){console.error(`Failed to execute shortcut ${r.fullName}`,s)}}})}var W=_yargs2.default.scriptName("valaxy").usage("$0 [args]").version(S).showHelpOnFail(!1).alias("h","help").alias("v","version");W.command("* [root]","Start a local server for Valaxy",e=>ye(e).option("port",{alias:"p",type:"number",describe:"port"}).option("open",{alias:"o",default:!1,type:"boolean",describe:"open in browser"}).option("remote",{default:!0,type:"boolean",describe:"listen public host and enable remote control"}).option("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:o,open:t,remote:r,log:s})=>{_fs2.default.existsSync(_path2.default.resolve(e,"pages"))||process.exit(0);let c=o||4859,h=await z({userRoot:e}),C={server:{watch:{ignored:[`!${h.themeRoot}/**`,`${h.userRoot}/**.md`]},port:c,strictPort:!0,open:t,host:r?"0.0.0.0":"localhost"},logLevel:s};await N(h,C),J(h,c,r),Ce([{name:"r",fullName:"restart",action(){N(h,C)}},{name:"o",fullName:"open",action(){_open2.default.call(void 0, `http://localhost:${c}`)}},{name:"e",fullName:"edit",action(){_child_process.exec.call(void 0, `code "${e}"`)}}])});W.command("build [root]","build your blog to static content",e=>ye(e).option("ssg",{alias:"s",type:"boolean",default:!1,describe:"static site generate"}).option("output",{alias:"o",type:"string",default:"dist",describe:"output dir"}).option("base",{type:"string",describe:"output base"}).strict().help(),async({ssg:e,root:o,base:t,output:r})=>{let s=await z({userRoot:o});if(J(s),e){_consola2.default.info("use vite-ssg to do ssg build...");try{await _node.build.call(void 0, {mode:"production"})}catch(c){_consola2.default.error("[vite-ssg] An internal error occurred."),console.log(c)}}else{let{build:c}=await Promise.resolve().then(()=>_chunkL3EDI35Ijs.d.call(void 0, _chunkL3EDI35Ijs.b.call(void 0, "../build-OOT6HK6S.js")));_consola2.default.info("use vite do spa build..."),await c(s,{base:t,build:{emptyOutDir:!0,outDir:_path2.default.resolve(s.userRoot,r)}})}});function ye(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}function Tt(){W.help().parse()}exports.run = Tt;
@@ -0,0 +1,6 @@
1
+ import{a as te}from"../chunk-JJEBEWGI.mjs";import{a as B,b as X,c as ee}from"../chunk-QI435Q25.mjs";import{b as E,c as w,d as Q,e as l}from"../chunk-MVJUGWXR.mjs";var re=w((st,oe)=>{l();var x=1e3,O=x*60,R=O*60,F=R*24,Oe=F*7,Re=F*365.25;oe.exports=function(e,o){o=o||{};var t=typeof e;if(t==="string"&&e.length>0)return Ee(e);if(t==="number"&&isFinite(e))return o.long?$e(e):Ie(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Ee(e){if(e=String(e),!(e.length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!!o){var t=parseFloat(o[1]),r=(o[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*Re;case"weeks":case"week":case"w":return t*Oe;case"days":case"day":case"d":return t*F;case"hours":case"hour":case"hrs":case"hr":case"h":return t*R;case"minutes":case"minute":case"mins":case"min":case"m":return t*O;case"seconds":case"second":case"secs":case"sec":case"s":return t*x;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function Ie(e){var o=Math.abs(e);return o>=F?Math.round(e/F)+"d":o>=R?Math.round(e/R)+"h":o>=O?Math.round(e/O)+"m":o>=x?Math.round(e/x)+"s":e+"ms"}function $e(e){var o=Math.abs(e);return o>=F?T(e,o,F,"day"):o>=R?T(e,o,R,"hour"):o>=O?T(e,o,O,"minute"):o>=x?T(e,o,x,"second"):e+" ms"}function T(e,o,t,r){var s=o>=t*1.5;return Math.round(e/t)+" "+r+(s?"s":"")}});var P=w((it,ne)=>{l();function ke(e){t.debug=t,t.default=t,t.coerce=I,t.disable=c,t.enable=s,t.enabled=h,t.humanize=re(),t.destroy=ve,Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={};function o(n){let i=0;for(let u=0;u<n.length;u++)i=(i<<5)-i+n.charCodeAt(u),i|=0;return t.colors[Math.abs(i)%t.colors.length]}t.selectColor=o;function t(n){let i,u=null,$,K;function y(...m){if(!y.enabled)return;let b=y,k=Number(new Date),be=k-(i||k);b.diff=be,b.prev=i,b.curr=k,i=k,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let A=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(D,we)=>{if(D==="%%")return"%";A++;let Z=t.formatters[we];if(typeof Z=="function"){let Fe=m[A];D=Z.call(b,Fe),m.splice(A,1),A--}return D}),t.formatArgs.call(b,m),(b.log||t.log).apply(b,m)}return y.namespace=n,y.useColors=t.useColors(),y.color=t.selectColor(n),y.extend=r,y.destroy=t.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>u!==null?u:($!==t.namespaces&&($=t.namespaces,K=t.enabled(n)),K),set:m=>{u=m}}),typeof t.init=="function"&&t.init(y),y}function r(n,i){let u=t(this.namespace+(typeof i>"u"?":":i)+n);return u.log=this.log,u}function s(n){t.save(n),t.namespaces=n,t.names=[],t.skips=[];let i,u=(typeof n=="string"?n:"").split(/[\s,]+/),$=u.length;for(i=0;i<$;i++)!u[i]||(n=u[i].replace(/\*/g,".*?"),n[0]==="-"?t.skips.push(new RegExp("^"+n.slice(1)+"$")):t.names.push(new RegExp("^"+n+"$")))}function c(){let n=[...t.names.map(C),...t.skips.map(C).map(i=>"-"+i)].join(",");return t.enable(""),n}function h(n){if(n[n.length-1]==="*")return!0;let i,u;for(i=0,u=t.skips.length;i<u;i++)if(t.skips[i].test(n))return!1;for(i=0,u=t.names.length;i<u;i++)if(t.names[i].test(n))return!0;return!1}function C(n){return n.toString().substring(2,n.toString().length-2).replace(/\.\*\?$/,"*")}function I(n){return n instanceof Error?n.stack||n.message:n}function ve(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}ne.exports=ke});var se=w((d,j)=>{l();d.formatArgs=Se;d.save=Te;d.load=je;d.useColors=Ae;d.storage=Me();d.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();d.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Ae(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Se(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+j.exports.humanize(this.diff),!this.useColors)return;let o="color: "+this.color;e.splice(1,0,o,"color: inherit");let t=0,r=0;e[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(t++,s==="%c"&&(r=t))}),e.splice(r,0,o)}d.log=console.debug||console.log||(()=>{});function Te(e){try{e?d.storage.setItem("debug",e):d.storage.removeItem("debug")}catch{}}function je(){let e;try{e=d.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Me(){try{return localStorage}catch{}}j.exports=P()(d);var{formatters:Le}=j.exports;Le.j=function(e){try{return JSON.stringify(e)}catch(o){return"[UnexpectedJSONParseError]: "+o.message}}});var ae=w((at,ie)=>{"use strict";l();ie.exports=(e,o=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",r=o.indexOf(t+e),s=o.indexOf("--");return r!==-1&&(s===-1||r<s)}});var ue=w((ct,le)=>{"use strict";l();var Ve=E("os"),ce=E("tty"),g=ae(),{env:p}=process,v;g("no-color")||g("no-colors")||g("color=false")||g("color=never")?v=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(v=1);"FORCE_COLOR"in p&&(p.FORCE_COLOR==="true"?v=1:p.FORCE_COLOR==="false"?v=0:v=p.FORCE_COLOR.length===0?1:Math.min(parseInt(p.FORCE_COLOR,10),3));function q(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function U(e,o){if(v===0)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(e&&!o&&v===void 0)return 0;let t=v||0;if(p.TERM==="dumb")return t;if(process.platform==="win32"){let r=Ve.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in p)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in p)||p.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in p)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(p.TEAMCITY_VERSION)?1:0;if(p.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in p){let r=parseInt((p.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(p.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(p.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(p.TERM)||"COLORTERM"in p?1:t}function _e(e){let o=U(e,e&&e.isTTY);return q(o)}le.exports={supportsColor:_e,stdout:q(U(!0,ce.isatty(1))),stderr:q(U(!0,ce.isatty(2)))}});var fe=w((f,L)=>{l();var Ne=E("tty"),M=E("util");f.init=Ye;f.log=qe;f.formatArgs=Be;f.save=Ue;f.load=Ge;f.useColors=De;f.destroy=M.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");f.colors=[6,2,3,4,5,1];try{let e=ue();e&&(e.stderr||e).level>=2&&(f.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}f.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,o)=>{let t=o.substring(6).toLowerCase().replace(/_([a-z])/g,(s,c)=>c.toUpperCase()),r=process.env[o];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[t]=r,e},{});function De(){return"colors"in f.inspectOpts?Boolean(f.inspectOpts.colors):Ne.isatty(process.stderr.fd)}function Be(e){let{namespace:o,useColors:t}=this;if(t){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),c=` ${s};1m${o} \x1B[0m`;e[0]=c+e[0].split(`
2
+ `).join(`
3
+ `+c),e.push(s+"m+"+L.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=Pe()+o+" "+e[0]}function Pe(){return f.inspectOpts.hideDate?"":new Date().toISOString()+" "}function qe(...e){return process.stderr.write(M.format(...e)+`
4
+ `)}function Ue(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function Ge(){return process.env.DEBUG}function Ye(e){e.inspectOpts={};let o=Object.keys(f.inspectOpts);for(let t=0;t<o.length;t++)e.inspectOpts[o[t]]=f.inspectOpts[o[t]]}L.exports=P()(f);var{formatters:pe}=L.exports;pe.o=function(e){return this.inspectOpts.colors=this.useColors,M.inspect(e,this.inspectOpts).split(`
5
+ `).map(o=>o.trim()).join(" ")};pe.O=function(e){return this.inspectOpts.colors=this.useColors,M.inspect(e,this.inspectOpts)}});var de=w((lt,G)=>{l();typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?G.exports=se():G.exports=fe()});l();import Qe from"fs";import he from"path";import{exec as Xe}from"child_process";import et from"yargs";import tt from"open";import{build as ot}from"vite-ssg/node";import H from"consola";var S="0.0.7";l();var me=Q(de());import{dirname as ze,resolve as Y}from"path";var Je=(0,me.default)("valaxy:options");function He(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}function We(e,o){return e?He(e)?Y(ze(o),e):B(`valaxy-theme-${e}/package.json`):""}async function z(e){let o=Y(B("valaxy/package.json"),"src/client"),t=Y(e.userRoot||process.cwd()),{config:r,configFile:s,theme:c}=await ee(e),h=We(c,t),C={clientRoot:o,userRoot:t,themeRoot:h,theme:c,config:r,configFile:s||""};return Je(C),C}l();import*as ge from"readline";import Ke from"path";import Ze from"os";import a from"chalk";import V from"consola";var _;function J(e,o,t){console.log(),console.log(` ${a.bold("\u{1F30C} Valaxy")} ${a.blue(`v${S}`)}`),console.log(),console.log(`${a.dim(" \u{1FA90} theme ")} > ${e.theme?a.green(e.theme):a.gray("none")}`),console.log(` ${a.dim("\u{1F4C1}")} ${a.dim(Ke.resolve(e.userRoot))}`),o&&(console.log(),console.log(`${a.dim(" Preview ")} > ${a.cyan(`http://localhost:${a.bold(o)}/`)}`),t&&Object.values(Ze.networkInterfaces()).forEach(r=>(r||[]).filter(s=>s.family==="IPv4"&&!s.address.includes("127.0.0.1")).forEach(({address:s})=>{console.log(`${a.dim(" Network ")} > ${a.blue(`http://${s}:${a.bold(o)}/`)}`)})),console.log(),console.log(`${a.dim(" shortcuts ")} > ${a.underline("r")}${a.dim("estart | ")}${a.underline("o")}${a.dim("pen | ")}${a.underline("e")}${a.dim("dit")}`)),console.log()}async function N(e,o){_&&await _.close();try{let t=X(e.config).concat(e.config.unocss.safelist||[]);_=await te(e,o,{onConfigReload(r,s){let c=!1;r.social.some((C,I)=>!t.includes(C.icon)&&C.icon!==s.social[I].icon)&&(V.info("Find new icon, reload server..."),V.info(`If you do not want to reload it, write icon name in ${a.green("config.unocss.safelist")}.`),V.info('For example: ["i-ri-cloud-line"]'),console.log(),c=!0),c&&N(e,o)}}),await _.listen()}catch(t){V.error(`failed to start server. error:
6
+ `),console.error(t),process.exit(1)}}function Ce(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),ge.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(o,t)=>{if(t.ctrl&&t.name==="c")process.exit();else{let[r]=e.filter(s=>s.name===o);if(r)try{r.action()}catch(s){console.error(`Failed to execute shortcut ${r.fullName}`,s)}}})}var W=et.scriptName("valaxy").usage("$0 [args]").version(S).showHelpOnFail(!1).alias("h","help").alias("v","version");W.command("* [root]","Start a local server for Valaxy",e=>ye(e).option("port",{alias:"p",type:"number",describe:"port"}).option("open",{alias:"o",default:!1,type:"boolean",describe:"open in browser"}).option("remote",{default:!0,type:"boolean",describe:"listen public host and enable remote control"}).option("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:o,open:t,remote:r,log:s})=>{Qe.existsSync(he.resolve(e,"pages"))||process.exit(0);let c=o||4859,h=await z({userRoot:e}),C={server:{watch:{ignored:[`!${h.themeRoot}/**`,`${h.userRoot}/**.md`]},port:c,strictPort:!0,open:t,host:r?"0.0.0.0":"localhost"},logLevel:s};await N(h,C),J(h,c,r),Ce([{name:"r",fullName:"restart",action(){N(h,C)}},{name:"o",fullName:"open",action(){tt(`http://localhost:${c}`)}},{name:"e",fullName:"edit",action(){Xe(`code "${e}"`)}}])});W.command("build [root]","build your blog to static content",e=>ye(e).option("ssg",{alias:"s",type:"boolean",default:!1,describe:"static site generate"}).option("output",{alias:"o",type:"string",default:"dist",describe:"output dir"}).option("base",{type:"string",describe:"output base"}).strict().help(),async({ssg:e,root:o,base:t,output:r})=>{let s=await z({userRoot:o});if(J(s),e){H.info("use vite-ssg to do ssg build...");try{await ot({mode:"production"})}catch(c){H.error("[vite-ssg] An internal error occurred."),console.log(c)}}else{let{build:c}=await Promise.resolve().then(()=>Q(E("../build-SG32QSQ3.mjs")));H.info("use vite do spa build..."),await c(s,{base:t,build:{emptyOutDir:!0,outDir:he.resolve(s.userRoot,r)}})}});function ye(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}function Tt(){W.help().parse()}export{Tt as run};
@@ -0,0 +1,45 @@
1
+ import * as vite from 'vite';
2
+ import { InlineConfig } from 'vite';
3
+ import { V as ValaxyConfig } from '../config-d6527c8c.js';
4
+ import 'type-fest';
5
+ import 'unocss/vite';
6
+ import 'markdown-it';
7
+ import 'markdown-it-anchor';
8
+ import 'katex';
9
+ import 'vite-plugin-md';
10
+
11
+ interface ResolvedValaxyOptions {
12
+ /**
13
+ * Client root path
14
+ * @default 'valaxy/src/client'
15
+ */
16
+ clientRoot: string;
17
+ /**
18
+ * User root path
19
+ * @default process.cwd()
20
+ */
21
+ userRoot: string;
22
+ /**
23
+ * Theme root path
24
+ */
25
+ themeRoot: string;
26
+ /**
27
+ * Theme name
28
+ */
29
+ theme: string;
30
+ /**
31
+ * Valaxy Config
32
+ */
33
+ config: ValaxyConfig;
34
+ /**
35
+ * config file path
36
+ */
37
+ configFile: string;
38
+ }
39
+ interface ValaxyServerOptions {
40
+ onConfigReload?: (newConfig: ValaxyConfig, config: ValaxyConfig) => void;
41
+ }
42
+
43
+ declare function createServer(options: ResolvedValaxyOptions, viteConfig?: InlineConfig, serverOptions?: ValaxyServerOptions): Promise<vite.ViteDevServer>;
44
+
45
+ export { createServer };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7JDYOPIDjs = require('../chunk-7JDYOPID.js');require('../chunk-L5SNNWFJ.js');var _chunkL3EDI35Ijs = require('../chunk-L3EDI35I.js');_chunkL3EDI35Ijs.e.call(void 0, );exports.createServer = _chunk7JDYOPIDjs.a;
@@ -0,0 +1 @@
1
+ import{a as r}from"../chunk-JJEBEWGI.mjs";import"../chunk-QI435Q25.mjs";import{e as o}from"../chunk-MVJUGWXR.mjs";o();export{r as createServer};
@@ -0,0 +1,110 @@
1
+ export { S as SocialLink, U as UserConfig, V as ValaxyConfig, a as ValaxyThemeConfig, d as defaultValaxyConfig } from '../config-d6527c8c.js';
2
+ import 'type-fest';
3
+ import 'unocss/vite';
4
+ import 'markdown-it';
5
+ import 'markdown-it-anchor';
6
+ import 'katex';
7
+ import 'vite-plugin-md';
8
+
9
+ interface Post {
10
+ /**
11
+ * Path of post
12
+ * route.path
13
+ * @description 路径
14
+ */
15
+ path?: string;
16
+ /**
17
+ * Title
18
+ * @description ę–‡ē« ę ‡é¢˜
19
+ */
20
+ title?: string;
21
+ date?: string | number | Date;
22
+ /**
23
+ * Updated Time
24
+ */
25
+ updated?: string | number | Date;
26
+ lang?: string;
27
+ /**
28
+ * TODO
29
+ * Read Time
30
+ * @description é˜…čÆ»ę—¶é•æ
31
+ */
32
+ duration?: string;
33
+ /**
34
+ * post card type, can be bilibili/yuque/...
35
+ */
36
+ type?: string;
37
+ /**
38
+ * override url, and jump directly
39
+ */
40
+ url?: string;
41
+ /**
42
+ * @description ę‘˜č¦
43
+ */
44
+ excerpt?: string;
45
+ /**
46
+ * Display sponsor info
47
+ * @description ę˜Æå¦å¼€åÆčµžåŠ©
48
+ */
49
+ sponsor?: boolean;
50
+ /**
51
+ * Copyright
52
+ * @description ę˜Æå¦ę˜¾ē¤ŗę–‡ē« åŗ•éƒØē‰ˆęƒäæ”ęÆ
53
+ */
54
+ copyright?: boolean;
55
+ /**
56
+ * Category
57
+ * @description åˆ†ē±»ļ¼Œč‹„äøŗę•°ē»„ļ¼Œåˆ™ęŒ‰é”ŗåŗä»£č”Øå¤šå±‚ę–‡ä»¶å¤¹
58
+ */
59
+ categories?: string | string[];
60
+ /**
61
+ * Tags
62
+ * @description ę ‡ē­¾ļ¼ŒåÆä»„ęœ‰å¤šäøŖ
63
+ */
64
+ tags?: string[];
65
+ /**
66
+ * display prev next
67
+ * @description ę˜Æå¦ę˜¾ē¤ŗå‰äø€ēÆ‡ć€åŽäø€ēÆ‡åÆ¼čˆŖ
68
+ */
69
+ nav?: boolean;
70
+ /**
71
+ * icon before title
72
+ */
73
+ icon?: string;
74
+ /**
75
+ * title color
76
+ */
77
+ color?: string;
78
+ /**
79
+ * display comment
80
+ */
81
+ comment?: boolean;
82
+ /**
83
+ * post is end
84
+ * @description ę˜Æå¦å®Œē»“ļ¼Œå°†åœØęœ«å°¾ę·»åŠ č”¬ēŗæå­—ä½“ Q.E.D.
85
+ */
86
+ end?: boolean;
87
+ /**
88
+ * use aplayer
89
+ */
90
+ aplayer?: boolean;
91
+ /**
92
+ * use katex
93
+ */
94
+ katex?: boolean;
95
+ /**
96
+ * use codepen
97
+ */
98
+ codepen?: boolean;
99
+ /**
100
+ * 置锶
101
+ */
102
+ top?: number;
103
+ /**
104
+ * display toc
105
+ * @description ę˜Æå¦ę˜¾ē¤ŗē›®å½•
106
+ */
107
+ toc?: boolean;
108
+ }
109
+
110
+ export { Post };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkL3EDI35Ijs = require('../chunk-L3EDI35I.js');exports.defaultValaxyConfig = _chunkL3EDI35Ijs.f;
@@ -0,0 +1 @@
1
+ import{f as a}from"../chunk-MVJUGWXR.mjs";export{a as defaultValaxyConfig};
package/package.json CHANGED
@@ -1,17 +1,89 @@
1
1
  {
2
2
  "name": "valaxy",
3
- "version": "0.0.2",
3
+ "version": "0.0.7",
4
4
  "description": "šŸ“„ Vite & Vue powered static blog generator.",
5
+ "main": "src/index.ts",
6
+ "types": "dist/types/index.d.ts",
5
7
  "keywords": [
6
8
  "vite",
7
9
  "vue",
8
10
  "blog"
9
11
  ],
12
+ "bin": {
13
+ "vala": "./bin/valaxy.js",
14
+ "valaxy": "./bin/valaxy.js"
15
+ },
10
16
  "author": {
11
17
  "email": "me@yunyoujun.cn",
12
18
  "name": "YunYouJun",
13
19
  "url": "https://www.yunyoujun.cn"
14
20
  },
15
21
  "license": "MIT",
16
- "repository": "https://github.com/YunYouJun/valaxy"
17
- }
22
+ "homepage": "https://valaxy.yyj.moe",
23
+ "repository": "https://github.com/YunYouJun/valaxy",
24
+ "devDependencies": {
25
+ "@types/katex": "^0.14.0",
26
+ "@types/markdown-it-link-attributes": "^3.0.1",
27
+ "@types/nprogress": "^0.2.0",
28
+ "@types/yargs": "^17.0.10",
29
+ "chalk": "4",
30
+ "cross-env": "^7.0.3",
31
+ "debug": "^4.3.4",
32
+ "diacritics": "^1.3.0",
33
+ "https-localhost": "^4.7.1",
34
+ "type-fest": "^2.12.2",
35
+ "vue-tsc": "^0.33.9"
36
+ },
37
+ "dependencies": {
38
+ "@ctrl/tinycolor": "^3.4.0",
39
+ "@iconify-json/carbon": "^1.1.1",
40
+ "@iconify-json/ri": "^1.1.1",
41
+ "@intlify/vite-plugin-vue-i18n": "^3.3.1",
42
+ "@unocss/reset": "^0.30.8",
43
+ "@vitejs/plugin-vue": "^2.3.1",
44
+ "@vueuse/core": "^8.2.3",
45
+ "@vueuse/head": "^0.7.5",
46
+ "consola": "^2.15.3",
47
+ "critters": "^0.0.16",
48
+ "dayjs": "^1.11.0",
49
+ "fast-deep-equal": "^3.1.3",
50
+ "katex": "^0.15.3",
51
+ "markdown-it-anchor": "^8.4.1",
52
+ "markdown-it-container": "^3.0.0",
53
+ "markdown-it-emoji": "^2.0.0",
54
+ "markdown-it-link-attributes": "^4.0.0",
55
+ "markdown-it-prism": "^2.2.3",
56
+ "markdown-it-table-of-contents": "^0.6.0",
57
+ "nprogress": "^0.2.0",
58
+ "open": "^8.4.0",
59
+ "pinia": "^2.0.13",
60
+ "prism-theme-vars": "^0.2.2",
61
+ "sass": "^1.49.10",
62
+ "star-markdown-css": "^0.3.0",
63
+ "unconfig": "^0.3.2",
64
+ "vue": "^3.2.31",
65
+ "vue-demi": "^0.12.5",
66
+ "vue-i18n": "^9.1.9",
67
+ "vue-router": "^4.0.14",
68
+ "yargs": "^17.4.0",
69
+ "unocss": "^0.30.8",
70
+ "unplugin-vue-components": "^0.18.5",
71
+ "vite": "^2.9.1",
72
+ "vite-ssg": "^0.19.0",
73
+ "vite-plugin-md": "^0.12.4",
74
+ "vite-plugin-pages": "^0.22.0",
75
+ "vite-plugin-inspect": "^0.4.3",
76
+ "vite-plugin-pwa": "^0.11.13",
77
+ "vite-plugin-vue-layouts": "^0.6.0",
78
+ "vite-ssg-sitemap": "^0.2.0"
79
+ },
80
+ "scripts": {
81
+ "build": "tsup",
82
+ "dev": "tsup --watch",
83
+ "lint": "eslint \"**/*.{vue,ts,js}\"",
84
+ "preview": "vite preview",
85
+ "preview-https": "serve dist",
86
+ "typecheck": "vue-tsc --noEmit"
87
+ },
88
+ "readme": "# Valaxy\n\n🌌 Next Generation Static Blog Framework, powered by Vite & Vue.\n\nRead [YunYouJun/valaxy](https://github.com/YunYouJun/valaxy) for more info.\n"
89
+ }
@@ -0,0 +1,16 @@
1
+ <script setup lang="ts">
2
+ // https://github.com/vueuse/head
3
+ // you can use this to manipulate the document head in any components,
4
+ // they will be rendered correctly in the html results with vite-ssg
5
+ import { useHead } from '@vueuse/head'
6
+ useHead({
7
+ title: 'Theme Yun',
8
+ meta: [
9
+ { name: 'description', content: 'Theme Yun' },
10
+ ],
11
+ })
12
+ </script>
13
+
14
+ <template>
15
+ <router-view />
16
+ </template>
@@ -0,0 +1,20 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue'
3
+
4
+ const props = defineProps<{
5
+ to: string
6
+ }>()
7
+
8
+ const isExternalLink = computed(() => {
9
+ return typeof props.to === 'string' && props.to.startsWith('http')
10
+ })
11
+ </script>
12
+
13
+ <template>
14
+ <a v-if="isExternalLink" v-bind="$attrs" :href="to" target="_blank">
15
+ <slot />
16
+ </a>
17
+ <router-link v-else v-bind="$props">
18
+ <slot />
19
+ </router-link>
20
+ </template>
@@ -0,0 +1,69 @@
1
+ <script lang="ts" setup>
2
+ import { useI18n } from 'vue-i18n'
3
+ import type { Post } from '../../types'
4
+ import { usePostProperty } from '~/composables'
5
+
6
+ const props = defineProps<{
7
+ post: Post
8
+ }>()
9
+
10
+ const { t } = useI18n()
11
+
12
+ const { icon, styles } = usePostProperty(props.post.type)
13
+ </script>
14
+
15
+ <template>
16
+ <YunCard m="y-4 auto" class="post-card" :style="styles">
17
+ <div v-if="post.top" class="post-top-icon">
18
+ <div i-ri-pushpin-line />
19
+ </div>
20
+
21
+ <AppLink
22
+ class="post-title-link"
23
+ :to="post.path || ''"
24
+ m="t-3"
25
+ >
26
+ <div class="flex justify-center items-center title text-2xl" font="serif black">
27
+ <div v-if="post.type" class="inline-flex" m="r-1" :class="icon" />{{ post.title }}
28
+ </div>
29
+ </AppLink>
30
+
31
+ <YunPostMeta m="b-4" :frontmatter="post" />
32
+
33
+ <div v-if="post.excerpt" class="markdown-body" text="left" w="full" p="x-6 lt-sm:4" v-html="post.excerpt" />
34
+
35
+ <a
36
+ v-if="post.url"
37
+ :href="post.url"
38
+ class="post-link-btn shadow hover:shadow-md"
39
+ rounded
40
+ target="_blank"
41
+ m="b-4"
42
+ >
43
+ {{ t('post.view_link') }}
44
+ </a>
45
+
46
+ <div v-if="post.categories || post.tags" w="full" class="yun-card-actions flex justify-between" border="t" text="sm">
47
+ <router-link
48
+ v-if="post.categories"
49
+ :to="{
50
+ path: '/categories/',
51
+ query: {category: Array.isArray(post.categories) ? post.categories[post.categories.length - 1] : post.categories}
52
+ }"
53
+ class="post-categories inline-flex justify-center items-center" m="l-2"
54
+ >
55
+ <div m="x-1" i-ri-folder-2-line />
56
+ {{ Array.isArray(post.categories) ? post.categories.join(' > ') : post.categories }}
57
+ </router-link>
58
+
59
+ <div class="post-tags inline-flex" m="r-2">
60
+ <template v-if="post.tags">
61
+ <router-link v-for="tag,i in post.tags" :key="i" :to="{path: '/tags/', query: {tag: tag}}" m="x-1" class="post-tag inline-flex justify-center items-center">
62
+ <div m="r-1" i-ri-price-tag-3-line />
63
+ {{ tag }}
64
+ </router-link>
65
+ </template>
66
+ </div>
67
+ </div>
68
+ </YunCard>
69
+ </template>