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,250 @@
1
+ import type { PartialDeep } from 'type-fest'
2
+ import type { VitePluginConfig } from 'unocss/vite'
3
+ import type { MarkdownOptions } from '../node/markdown'
4
+ import type { ViteMdOptions } from '../node/plugins/markdown'
5
+
6
+ export type ValaxyThemeConfig = Record<string, any>
7
+
8
+ export interface SocialLink {
9
+ /**
10
+ * The title of your link
11
+ */
12
+ name: string
13
+ link: string
14
+ /**
15
+ * 图标名称
16
+ * https://icones.js.org/
17
+ */
18
+ icon: string
19
+ color: string
20
+ }
21
+
22
+ export interface ValaxyConfig<T = ValaxyThemeConfig> {
23
+ /**
24
+ * Default language
25
+ * @description 默认语言
26
+ * @default 'en'
27
+ */
28
+ lang: string
29
+ /**
30
+ * You site url in web, required for ssg, do not add / in end
31
+ * @description 站点的 URL,SSG 需要(譬如生成版权处文章永久链接),不要在末尾添加 /
32
+ */
33
+ url: string
34
+ /**
35
+ * Site title
36
+ * @description 站点标题
37
+ */
38
+ title: string
39
+ /**
40
+ * 副标题
41
+ */
42
+ subtitle: string
43
+ /**
44
+ * 站点描述
45
+ */
46
+ description: string
47
+ /**
48
+ * The owner of this blog
49
+ * @description 博客作者
50
+ */
51
+ author: {
52
+ /**
53
+ * Your name
54
+ * @description 你的名字
55
+ */
56
+ name: string
57
+ avatar: string
58
+ /**
59
+ * The status of you
60
+ * @description 状态
61
+ */
62
+ status: {
63
+ emoji: string
64
+ /**
65
+ * show when hover emoji
66
+ * @description 当鼠标悬浮在图标上时显示
67
+ */
68
+ message: string
69
+ }
70
+ }
71
+
72
+ /**
73
+ * 社交链接
74
+ */
75
+ social: SocialLink[]
76
+
77
+ /**
78
+ * search
79
+ */
80
+ search: {
81
+ algolia: {
82
+ enable: boolean
83
+ appId: string
84
+ apiKey: string
85
+ indexName: string
86
+ chunkSize: number
87
+ }
88
+ }
89
+
90
+ /**
91
+ * comment: waline/...
92
+ */
93
+ comment: {
94
+ waline: {
95
+ enable: boolean
96
+ serverURL: string
97
+ }
98
+ }
99
+
100
+ /**
101
+ * The name of theme
102
+ * @description 主题名称
103
+ */
104
+ theme: string
105
+ /**
106
+ * The config of theme
107
+ * @description 主题配置
108
+ */
109
+ themeConfig: T
110
+
111
+ /**
112
+ * Unocss Config
113
+ */
114
+ unocss: VitePluginConfig
115
+
116
+ /**
117
+ * The license of your posts
118
+ * @description 文章所使用的协议,默认使用 Creative Commons
119
+ * @default https://creativecommons.org/licenses/
120
+ */
121
+ license: {
122
+ /**
123
+ * Whether to show at the bottom of the article
124
+ * @description 是否显示在文章底部
125
+ * @default true
126
+ */
127
+ enabled: boolean
128
+ /**
129
+ * Creative License Language, same with your config.lang
130
+ * when lang === 'zh-CN', use 'zh'
131
+ * @description 默认与站点语言相同
132
+ * @default 'en'
133
+ */
134
+ language: string
135
+ /**
136
+ * Type of license
137
+ * @description 证书类型
138
+ * @default 'by-nc-sa'
139
+ */
140
+ type: 'zero' | 'by-sa' | 'by-nd' | 'by-nc' | 'by-nc-sa' | 'by-nc-nd'
141
+ }
142
+
143
+ /**
144
+ * donate for author
145
+ * @description 打赏/赞助
146
+ */
147
+ sponsor: {
148
+ enable: boolean
149
+ title: string
150
+ methods: {
151
+ name: string
152
+ url: string
153
+ color: string
154
+ icon: string
155
+ }[]
156
+ }
157
+
158
+ /**
159
+ * for markdown
160
+ */
161
+ markdown: ViteMdOptions
162
+ markdownIt: MarkdownOptions
163
+ }
164
+
165
+ /**
166
+ * Valaxy User Config
167
+ * @description Valaxy 用户配置
168
+ */
169
+ export type UserConfig<T=ValaxyThemeConfig> = PartialDeep<ValaxyConfig<T>>
170
+
171
+ export const defaultValaxyConfig: ValaxyConfig = {
172
+ url: '',
173
+ lang: 'en',
174
+ title: 'Valaxy Blog',
175
+ subtitle: 'Next Generation Static Blog Framework.',
176
+ author: {
177
+ avatar: 'https://cdn.jsdelivr.net/gh/YunYouJun/yun/images/meme/yun-good-with-bg.jpg',
178
+ name: 'YunYouJun',
179
+ status: {
180
+ emoji: '😊',
181
+ message: 'All at sea.',
182
+ },
183
+ },
184
+ social: [],
185
+ description: 'A blog generated by Valaxy.',
186
+
187
+ license: {
188
+ enabled: true,
189
+ language: '',
190
+ type: 'by-nc-sa',
191
+ },
192
+
193
+ sponsor: {
194
+ enable: true,
195
+ title: '我很可爱,请给我钱',
196
+ methods: [
197
+ {
198
+ name: '支付宝',
199
+ url: 'https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/alipay-qrcode.jpg',
200
+ color: '#00A3EE',
201
+ icon: 'i-ri-alipay-line',
202
+ },
203
+ {
204
+ name: 'QQ 支付',
205
+ url: 'https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/qqpay-qrcode.png',
206
+ color: '#12B7F5',
207
+ icon: 'i-ri-qq-line',
208
+ },
209
+ {
210
+ name: '微信支付',
211
+ url: 'https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/wechatpay-qrcode.jpg',
212
+ color: '#2DC100',
213
+ icon: 'i-ri-wechat-pay-line',
214
+ },
215
+
216
+ ],
217
+ },
218
+
219
+ search: {
220
+ algolia: {
221
+ enable: false,
222
+ appId: '',
223
+ apiKey: '',
224
+ indexName: '',
225
+ chunkSize: 5000,
226
+ },
227
+ },
228
+
229
+ comment: {
230
+ waline: {
231
+ enable: false,
232
+ serverURL: '',
233
+ },
234
+ },
235
+
236
+ theme: 'yun',
237
+ themeConfig: {},
238
+
239
+ unocss: {},
240
+
241
+ markdown: {
242
+ excerpt: '<!-- more -->',
243
+ },
244
+ markdownIt: {
245
+ toc: {
246
+ listType: 'ol',
247
+ },
248
+ katex: {},
249
+ },
250
+ }
@@ -0,0 +1,2 @@
1
+ export * from './config'
2
+ export * from './posts'
@@ -0,0 +1,107 @@
1
+ export interface Post {
2
+ /**
3
+ * Path of post
4
+ * route.path
5
+ * @description 路径
6
+ */
7
+ path?: string
8
+ /**
9
+ * Title
10
+ * @description 文章标题
11
+ */
12
+ title?: string
13
+ date?: string | number | Date
14
+ /**
15
+ * Updated Time
16
+ */
17
+ updated?: string | number | Date
18
+ lang?: string
19
+ /**
20
+ * TODO
21
+ * Read Time
22
+ * @description 阅读时长
23
+ */
24
+ duration?: string
25
+ /**
26
+ * post card type, can be bilibili/yuque/...
27
+ */
28
+ type?: string
29
+ /**
30
+ * override url, and jump directly
31
+ */
32
+ url?: string
33
+ /**
34
+ * @description 摘要
35
+ */
36
+ excerpt?: string
37
+
38
+ /**
39
+ * Display sponsor info
40
+ * @description 是否开启赞助
41
+ */
42
+ sponsor?: boolean
43
+ /**
44
+ * Copyright
45
+ * @description 是否显示文章底部版权信息
46
+ */
47
+ copyright?: boolean
48
+
49
+ /**
50
+ * Category
51
+ * @description 分类,若为数组,则按顺序代表多层文件夹
52
+ */
53
+ categories?: string | string[]
54
+ /**
55
+ * Tags
56
+ * @description 标签,可以有多个
57
+ */
58
+ tags?: string[]
59
+
60
+ /**
61
+ * display prev next
62
+ * @description 是否显示前一篇、后一篇导航
63
+ */
64
+ nav?: boolean
65
+
66
+ /**
67
+ * icon before title
68
+ */
69
+ icon?: string
70
+ /**
71
+ * title color
72
+ */
73
+ color?: string
74
+ /**
75
+ * display comment
76
+ */
77
+ comment?: boolean
78
+ /**
79
+ * post is end
80
+ * @description 是否完结,将在末尾添加衬线字体 Q.E.D.
81
+ */
82
+ end?: boolean
83
+
84
+ /**
85
+ * use aplayer
86
+ */
87
+ aplayer?: boolean
88
+ /**
89
+ * use katex
90
+ */
91
+ katex?: boolean
92
+ /**
93
+ * use codepen
94
+ */
95
+ codepen?: boolean
96
+
97
+ /**
98
+ * 置顶
99
+ */
100
+ top?: number
101
+
102
+ /**
103
+ * display toc
104
+ * @description 是否显示目录
105
+ */
106
+ toc?: boolean
107
+ }
package/tsup.config.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from 'tsup'
2
+
3
+ export default defineConfig((options) => {
4
+ return {
5
+ entry: ['src/node/index.ts', 'src/node/cli.ts', 'src/types/index.ts'],
6
+ splitting: true,
7
+ clean: true,
8
+ dts: true,
9
+ format: ['cjs', 'esm'],
10
+ minify: !options.watch,
11
+ external: [
12
+ 'vite',
13
+ 'sass',
14
+ 'chalk',
15
+ ],
16
+ }
17
+ })