valaxy-theme-yun 0.7.6 → 0.8.0

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.
@@ -12,13 +12,15 @@ const config = useConfig()
12
12
 
13
13
  const { styles, icon, color } = usePostProperty(props.frontmatter.type)
14
14
  const title = usePostTitle(computed(() => props.frontmatter))
15
+
16
+ const aside = computed(() => props.frontmatter.aside !== false)
15
17
  </script>
16
18
 
17
19
  <template>
18
20
  <main class="yun-main lt-md:ml-0" flex="~">
19
21
  <div w="full" flex="~">
20
22
  <slot name="main">
21
- <div class="content" flex="~ col grow" w="full" p="l-4 lt-md:0">
23
+ <div class="content" :class="!aside && 'no-aside'" flex="~ col grow" w="full" p="l-4 lt-md:0">
22
24
  <YunCard :cover="frontmatter.cover" m="0" class="relative" :style="styles">
23
25
  <slot name="main-header">
24
26
  <YunPageHeader :title="title" :icon="frontmatter.icon || icon" :color="frontmatter.color || color" :cover="frontmatter.cover" />
@@ -59,7 +61,7 @@ const title = usePostTitle(computed(() => props.frontmatter))
59
61
  </slot>
60
62
 
61
63
  <slot name="aside">
62
- <YunAside :frontmatter="frontmatter" :data="data">
64
+ <YunAside v-if="aside" :frontmatter="frontmatter" :data="data">
63
65
  <slot name="aside-custom" />
64
66
  </YunAside>
65
67
  </slot>
@@ -68,11 +70,15 @@ const title = usePostTitle(computed(() => props.frontmatter))
68
70
  </template>
69
71
 
70
72
  <style lang="scss">
71
- @use '~/styles/mixins' as *;
73
+ @use 'valaxy/client/styles/mixins' as *;
72
74
  @include xl {
73
75
  .content{
74
76
  // 8px scrollbar width
75
77
  max-width: calc(100vw - 2 * var(--va-sidebar-width-mobile) - 1rem - 8px);
78
+
79
+ &.no-aside {
80
+ max-width: calc(100vw - var(--va-sidebar-width-mobile));
81
+ }
76
82
  }
77
83
  }
78
84
  </style>
@@ -38,7 +38,7 @@ const app = useAppStore()
38
38
  </template>
39
39
 
40
40
  <style lang="scss">
41
- @use '~/styles/mixins' as *;
41
+ @use 'valaxy/client/styles/mixins' as *;
42
42
 
43
43
  .aside {
44
44
  position: fixed;
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
- import { useBackToTop } from '~/composables'
3
+ import { useBackToTop } from 'valaxy'
4
4
 
5
5
  const { show, percentage } = useBackToTop({ offset: 100 })
6
6
 
@@ -6,8 +6,9 @@
6
6
  */
7
7
 
8
8
  import { CSSProperties, computed } from 'vue'
9
+ import { random } from 'valaxy'
9
10
  import { useThemeConfig } from '../composables'
10
- import { random } from '~/utils'
11
+
11
12
  const themeConfig = useThemeConfig()
12
13
 
13
14
  const chars = computed(() => {
@@ -2,7 +2,7 @@
2
2
  import { computed } from 'vue'
3
3
  import { useThemeConfig } from 'valaxy-theme-yun/composables'
4
4
  import { useCssVar } from '@vueuse/core'
5
- import { isDark } from '~/composables'
5
+ import { isDark } from 'valaxy'
6
6
 
7
7
  const themeConfig = useThemeConfig()
8
8
 
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { useI18n } from 'vue-i18n'
3
3
  import { computed } from 'vue'
4
- import { isDark, toggleDark } from '~/composables'
4
+ import { isDark, toggleDark } from 'valaxy'
5
5
 
6
6
  const { t } = useI18n()
7
7
 
@@ -42,7 +42,7 @@ const router = useRouter()
42
42
  </template>
43
43
 
44
44
  <style lang="scss">
45
- @use "~/styles/mixins" as *;
45
+ @use "valaxy/client/styles/mixins" as *;
46
46
 
47
47
  .sidebar-panel {
48
48
  padding: 0.5rem;
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, ref } from 'vue'
3
3
  import type { Post } from 'valaxy'
4
- import { usePostList } from '~/composables'
4
+ import { usePostList } from 'valaxy'
5
5
 
6
6
  const props = withDefaults(defineProps<{
7
7
  type?: string
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { usePrevNext } from '~/composables'
2
+ import { usePrevNext } from 'valaxy'
3
3
  const [prev, next] = usePrevNext()
4
4
  </script>
5
5
 
@@ -21,7 +21,7 @@ const [prev, next] = usePrevNext()
21
21
  </template>
22
22
 
23
23
  <style lang="scss">
24
- @use '~/styles/mixins' as *;
24
+ @use 'valaxy/client/styles/mixins' as *;
25
25
 
26
26
  .post-nav {
27
27
  display: flex;
@@ -63,7 +63,7 @@ const trigger = () => {
63
63
 
64
64
  <style lang="scss">
65
65
  @use 'sass:map';
66
- @use '~/styles/vars' as *;
66
+ @use 'valaxy/client/styles/vars' as *;
67
67
 
68
68
  .search-btn {
69
69
  position: fixed;
@@ -37,7 +37,7 @@ const tags = useTag()
37
37
  </template>
38
38
 
39
39
  <style lang="scss">
40
- @use "~/styles/mixins" as *;
40
+ @use "valaxy/client/styles/mixins" as *;
41
41
 
42
42
  .site-nav {
43
43
  display: flex;
@@ -2,12 +2,12 @@
2
2
  import { computed, ref } from 'vue'
3
3
  import { useI18n } from 'vue-i18n'
4
4
  import type { Header } from 'valaxy'
5
- import { useThemeConfig } from '../composables'
6
- import { useFrontmatter } from '~/composables'
7
5
  import {
8
6
  resolveHeaders,
9
7
  useActiveAnchor,
10
- } from '~/composables/outline'
8
+ useFrontmatter,
9
+ } from 'valaxy'
10
+ import { useThemeConfig } from '../composables'
11
11
 
12
12
  const props = defineProps<{ headers: Header[] }>()
13
13
 
@@ -2,7 +2,7 @@
2
2
  import { useConfig, useWaline } from 'valaxy'
3
3
 
4
4
  const config = useConfig()
5
- useWaline(config.value.comment.waline)
5
+ useWaline(config.value.comment.waline, config.value.cdn.prefix)
6
6
  </script>
7
7
 
8
8
  <template>
package/config/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { ThemeConfig, ThemeUserConfig } from '../types'
2
2
 
3
- export const anonymousImage = 'https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/avatar/none.jpg'
3
+ export const anonymousImage = 'https://cdn.yunyoujun.cn/img/avatar/none.jpg'
4
4
 
5
5
  /**
6
6
  * Default Config
@@ -17,8 +17,8 @@ export const defaultThemeConfig: ThemeConfig = {
17
17
 
18
18
  bg_image: {
19
19
  enable: true,
20
- url: 'https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/stars-timing-0-blur-30px.jpg',
21
- dark: 'https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/galaxy.jpg',
20
+ url: 'https://cdn.yunyoujun.cn/img/bg/stars-timing-0-blur-30px.jpg',
21
+ dark: 'https://cdn.yunyoujun.cn/img/bg/galaxy.jpg',
22
22
  },
23
23
 
24
24
  say: {
@@ -129,5 +129,11 @@ export function generateSafelist(themeConfig: ThemeUserConfig) {
129
129
  if (themeConfig.menu?.custom?.icon)
130
130
  safelist.push(themeConfig.menu?.custom?.icon)
131
131
 
132
+ if (themeConfig.pages) {
133
+ themeConfig.pages?.forEach((item) => {
134
+ item.icon && safelist.push(item.icon)
135
+ })
136
+ }
137
+
132
138
  return safelist
133
139
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Plugin } from 'vite';
2
+ import { ResolvedValaxyOptions } from 'valaxy';
2
3
 
3
4
  declare namespace YunTheme {
4
5
  type Config = ThemeConfig;
@@ -114,7 +115,7 @@ interface ThemeConfig {
114
115
  }
115
116
  declare type ThemeUserConfig = Partial<ThemeConfig>;
116
117
 
117
- declare const anonymousImage = "https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/avatar/none.jpg";
118
+ declare const anonymousImage = "https://cdn.yunyoujun.cn/img/avatar/none.jpg";
118
119
  /**
119
120
  * Default Config
120
121
  */
@@ -132,6 +133,6 @@ interface UserOptions {
132
133
  primary: string;
133
134
  };
134
135
  }
135
- declare function yunPlugin(userOptions?: Partial<ThemeConfig>): Plugin;
136
+ declare function themePlugin(options: ResolvedValaxyOptions): Plugin;
136
137
 
137
- export { ThemeConfig, ThemeUserConfig, UserOptions, YunTheme, anonymousImage, yunPlugin as default, defaultThemeConfig, generateSafelist, yunPlugin };
138
+ export { ThemeConfig, ThemeUserConfig, UserOptions, YunTheme, anonymousImage, themePlugin as default, defaultThemeConfig, generateSafelist, themePlugin };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var r=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var v=(e,i)=>{for(var o in i)r(e,o,{get:i[o],enumerable:!0})},x=(e,i,o,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of h(i))!y.call(e,n)&&n!==o&&r(e,n,{get:()=>i[n],enumerable:!(t=b(i,n))||t.enumerable});return e};var T=e=>x(r({},"__esModule",{value:!0}),e);var C={};v(C,{anonymousImage:()=>w,default:()=>j,defaultThemeConfig:()=>a,generateSafelist:()=>Y,yunPlugin:()=>g});module.exports=T(C);var w="https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/avatar/none.jpg",a={outlineTitle:"On this page",colors:{primary:"#0078E7"},banner:{enable:!0,title:"\u4E91\u6E38\u541B\u7684\u5C0F\u7AD9"},bg_image:{enable:!0,url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/stars-timing-0-blur-30px.jpg",dark:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/galaxy.jpg"},say:{enable:!0,api:"https://el-bot-api.vercel.app/api/words/young",hitokoto:{enable:!1,api:"https://v1.hitokoto.cn"}},pages:[],sidebar:null,footer:{since:2022,icon:{name:"i-ri-cloud-line",animated:!0,color:"var(--va-c-primary)",url:"https://sponsors.yunyoujun.cn",title:"Sponsor YunYouJun"},powered:!0,beian:{enable:!1,icp:""}},types:{link:{color:"var(--va-c-primary)",icon:"i-ri-external-link-line"},bilibili:{color:"#FF8EB3",icon:"i-ri-bilibili-line"},douban:{color:"#007722",icon:"i-ri-douban-line"},github:{color:"var(--va-c-text)",icon:"i-ri-github-line"},"netease-cloud-music":{color:"#C10D0C",icon:"i-ri-netease-cloud-music-line"},notion:{color:"var(--va-c-text)",icon:"i-simple-icons-notion"},twitter:{color:"#1da1f2",icon:"i-ri-twitter-line"},wechat:{color:"#1AAD19",icon:"i-ri-wechat-2-line"},weibo:{color:"#E6162D",icon:"i-ri-weibo-line"},yuque:{color:"#25b864",icon:"i-ant-design-yuque-outlined"},zhihu:{color:"#0084FF",icon:"i-ri-zhihu-line"}},menu:{custom:{title:"button.about",icon:"i-ri-clipboard-line",url:"/about"}}};function Y(e){var t,n,l,c,u,s,p,m,f;let i=[],o=e.types;if(o)for(let d in o)i.push((t=o[d])==null?void 0:t.icon);return(l=(n=e.footer)==null?void 0:n.icon)!=null&&l.name&&i.push((u=(c=e.footer)==null?void 0:c.icon)==null?void 0:u.name),(p=(s=e.menu)==null?void 0:s.custom)!=null&&p.icon&&i.push((f=(m=e.menu)==null?void 0:m.custom)==null?void 0:f.icon),i}function g(e=a){return{name:"valaxy-theme-yun",enforce:"pre",config(){var i;return{css:{preprocessorOptions:{scss:{additionalData:`$c-primary: ${((i=e.colors)==null?void 0:i.primary)||"#0078E7"} !default;`}}}}}}}var j=g;0&&(module.exports={anonymousImage,defaultThemeConfig,generateSafelist,yunPlugin});
1
+ "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var x=(o,i)=>{for(var e in i)a(o,e,{get:i[e],enumerable:!0})},v=(o,i,e,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of d(i))!h.call(o,n)&&n!==e&&a(o,n,{get:()=>i[n],enumerable:!(t=b(i,n))||t.enumerable});return o};var j=o=>v(a({},"__esModule",{value:!0}),o);var E={};x(E,{anonymousImage:()=>w,default:()=>D,defaultThemeConfig:()=>T,generateSafelist:()=>k,themePlugin:()=>g});module.exports=j(E);var w="https://cdn.yunyoujun.cn/img/avatar/none.jpg",T={outlineTitle:"On this page",colors:{primary:"#0078E7"},banner:{enable:!0,title:"\u4E91\u6E38\u541B\u7684\u5C0F\u7AD9"},bg_image:{enable:!0,url:"https://cdn.yunyoujun.cn/img/bg/stars-timing-0-blur-30px.jpg",dark:"https://cdn.yunyoujun.cn/img/bg/galaxy.jpg"},say:{enable:!0,api:"https://el-bot-api.vercel.app/api/words/young",hitokoto:{enable:!1,api:"https://v1.hitokoto.cn"}},pages:[],sidebar:null,footer:{since:2022,icon:{name:"i-ri-cloud-line",animated:!0,color:"var(--va-c-primary)",url:"https://sponsors.yunyoujun.cn",title:"Sponsor YunYouJun"},powered:!0,beian:{enable:!1,icp:""}},types:{link:{color:"var(--va-c-primary)",icon:"i-ri-external-link-line"},bilibili:{color:"#FF8EB3",icon:"i-ri-bilibili-line"},douban:{color:"#007722",icon:"i-ri-douban-line"},github:{color:"var(--va-c-text)",icon:"i-ri-github-line"},"netease-cloud-music":{color:"#C10D0C",icon:"i-ri-netease-cloud-music-line"},notion:{color:"var(--va-c-text)",icon:"i-simple-icons-notion"},twitter:{color:"#1da1f2",icon:"i-ri-twitter-line"},wechat:{color:"#1AAD19",icon:"i-ri-wechat-2-line"},weibo:{color:"#E6162D",icon:"i-ri-weibo-line"},yuque:{color:"#25b864",icon:"i-ant-design-yuque-outlined"},zhihu:{color:"#0084FF",icon:"i-ri-zhihu-line"}},menu:{custom:{title:"button.about",icon:"i-ri-clipboard-line",url:"/about"}}};function k(o){var t,n,c,l,s,u,p,m,y,f;let i=[],e=o.types;if(e)for(let r in e)i.push((t=e[r])==null?void 0:t.icon);return(c=(n=o.footer)==null?void 0:n.icon)!=null&&c.name&&i.push((s=(l=o.footer)==null?void 0:l.icon)==null?void 0:s.name),(p=(u=o.menu)==null?void 0:u.custom)!=null&&p.icon&&i.push((y=(m=o.menu)==null?void 0:m.custom)==null?void 0:y.icon),o.pages&&((f=o.pages)==null||f.forEach(r=>{r.icon&&i.push(r.icon)})),i}function g(o){let i=o.config.themeConfig;return{name:"valaxy-theme-yun",enforce:"pre",config(){var e;return{css:{preprocessorOptions:{scss:{additionalData:`$c-primary: ${((e=i.colors)==null?void 0:e.primary)||"#0078E7"} !default;`}}},optimizeDeps:{exclude:["@docsearch/js"]},valaxy:{}}}}}var D=g;0&&(module.exports={anonymousImage,defaultThemeConfig,generateSafelist,themePlugin});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var d="https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/avatar/none.jpg",m={outlineTitle:"On this page",colors:{primary:"#0078E7"},banner:{enable:!0,title:"\u4E91\u6E38\u541B\u7684\u5C0F\u7AD9"},bg_image:{enable:!0,url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/stars-timing-0-blur-30px.jpg",dark:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/galaxy.jpg"},say:{enable:!0,api:"https://el-bot-api.vercel.app/api/words/young",hitokoto:{enable:!1,api:"https://v1.hitokoto.cn"}},pages:[],sidebar:null,footer:{since:2022,icon:{name:"i-ri-cloud-line",animated:!0,color:"var(--va-c-primary)",url:"https://sponsors.yunyoujun.cn",title:"Sponsor YunYouJun"},powered:!0,beian:{enable:!1,icp:""}},types:{link:{color:"var(--va-c-primary)",icon:"i-ri-external-link-line"},bilibili:{color:"#FF8EB3",icon:"i-ri-bilibili-line"},douban:{color:"#007722",icon:"i-ri-douban-line"},github:{color:"var(--va-c-text)",icon:"i-ri-github-line"},"netease-cloud-music":{color:"#C10D0C",icon:"i-ri-netease-cloud-music-line"},notion:{color:"var(--va-c-text)",icon:"i-simple-icons-notion"},twitter:{color:"#1da1f2",icon:"i-ri-twitter-line"},wechat:{color:"#1AAD19",icon:"i-ri-wechat-2-line"},weibo:{color:"#E6162D",icon:"i-ri-weibo-line"},yuque:{color:"#25b864",icon:"i-ant-design-yuque-outlined"},zhihu:{color:"#0084FF",icon:"i-ri-zhihu-line"}},menu:{custom:{title:"button.about",icon:"i-ri-clipboard-line",url:"/about"}}};function b(i){var n,t,r,a,l,c,u,s,p;let e=[],o=i.types;if(o)for(let f in o)e.push((n=o[f])==null?void 0:n.icon);return(r=(t=i.footer)==null?void 0:t.icon)!=null&&r.name&&e.push((l=(a=i.footer)==null?void 0:a.icon)==null?void 0:l.name),(u=(c=i.menu)==null?void 0:c.custom)!=null&&u.icon&&e.push((p=(s=i.menu)==null?void 0:s.custom)==null?void 0:p.icon),e}function g(i=m){return{name:"valaxy-theme-yun",enforce:"pre",config(){var e;return{css:{preprocessorOptions:{scss:{additionalData:`$c-primary: ${((e=i.colors)==null?void 0:e.primary)||"#0078E7"} !default;`}}}}}}}var v=g;export{d as anonymousImage,v as default,m as defaultThemeConfig,b as generateSafelist,g as yunPlugin};
1
+ var g="https://cdn.yunyoujun.cn/img/avatar/none.jpg",b={outlineTitle:"On this page",colors:{primary:"#0078E7"},banner:{enable:!0,title:"\u4E91\u6E38\u541B\u7684\u5C0F\u7AD9"},bg_image:{enable:!0,url:"https://cdn.yunyoujun.cn/img/bg/stars-timing-0-blur-30px.jpg",dark:"https://cdn.yunyoujun.cn/img/bg/galaxy.jpg"},say:{enable:!0,api:"https://el-bot-api.vercel.app/api/words/young",hitokoto:{enable:!1,api:"https://v1.hitokoto.cn"}},pages:[],sidebar:null,footer:{since:2022,icon:{name:"i-ri-cloud-line",animated:!0,color:"var(--va-c-primary)",url:"https://sponsors.yunyoujun.cn",title:"Sponsor YunYouJun"},powered:!0,beian:{enable:!1,icp:""}},types:{link:{color:"var(--va-c-primary)",icon:"i-ri-external-link-line"},bilibili:{color:"#FF8EB3",icon:"i-ri-bilibili-line"},douban:{color:"#007722",icon:"i-ri-douban-line"},github:{color:"var(--va-c-text)",icon:"i-ri-github-line"},"netease-cloud-music":{color:"#C10D0C",icon:"i-ri-netease-cloud-music-line"},notion:{color:"var(--va-c-text)",icon:"i-simple-icons-notion"},twitter:{color:"#1da1f2",icon:"i-ri-twitter-line"},wechat:{color:"#1AAD19",icon:"i-ri-wechat-2-line"},weibo:{color:"#E6162D",icon:"i-ri-weibo-line"},yuque:{color:"#25b864",icon:"i-ant-design-yuque-outlined"},zhihu:{color:"#0084FF",icon:"i-ri-zhihu-line"}},menu:{custom:{title:"button.about",icon:"i-ri-clipboard-line",url:"/about"}}};function d(o){var t,r,a,c,l,s,u,p,m,y;let i=[],e=o.types;if(e)for(let n in e)i.push((t=e[n])==null?void 0:t.icon);return(a=(r=o.footer)==null?void 0:r.icon)!=null&&a.name&&i.push((l=(c=o.footer)==null?void 0:c.icon)==null?void 0:l.name),(u=(s=o.menu)==null?void 0:s.custom)!=null&&u.icon&&i.push((m=(p=o.menu)==null?void 0:p.custom)==null?void 0:m.icon),o.pages&&((y=o.pages)==null||y.forEach(n=>{n.icon&&i.push(n.icon)})),i}function f(o){let i=o.config.themeConfig;return{name:"valaxy-theme-yun",enforce:"pre",config(){var e;return{css:{preprocessorOptions:{scss:{additionalData:`$c-primary: ${((e=i.colors)==null?void 0:e.primary)||"#0078E7"} !default;`}}},optimizeDeps:{exclude:["@docsearch/js"]},valaxy:{}}}}}var x=f;export{g as anonymousImage,x as default,b as defaultThemeConfig,d as generateSafelist,f as themePlugin};
package/layouts/home.vue CHANGED
@@ -1,12 +1,8 @@
1
1
  <script lang="ts" setup>
2
- import { useConfig } from 'valaxy'
3
- import { useLayout } from '~/composables'
2
+ import { useAppStore, useConfig, useLayout } from 'valaxy'
4
3
 
5
- import { useAppStore } from '~/stores/app'
6
4
  const app = useAppStore()
7
-
8
5
  const config = useConfig()
9
-
10
6
  const isHome = useLayout('home')
11
7
  </script>
12
8
 
package/node/index.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type { Plugin } from 'vite'
2
- import type { ThemeConfig } from '../types'
3
- import { defaultThemeConfig } from '../config'
2
+ import type { ResolvedValaxyOptions } from 'valaxy'
4
3
 
5
4
  export * from '../config'
6
5
  export * from '../types'
@@ -11,7 +10,9 @@ export interface UserOptions {
11
10
  }
12
11
  }
13
12
 
14
- export function yunPlugin(userOptions: Partial<ThemeConfig> = defaultThemeConfig): Plugin {
13
+ export function themePlugin(options: ResolvedValaxyOptions): Plugin {
14
+ const themeConfig = options.config.themeConfig
15
+
15
16
  return {
16
17
  name: 'valaxy-theme-yun',
17
18
  enforce: 'pre',
@@ -21,13 +22,19 @@ export function yunPlugin(userOptions: Partial<ThemeConfig> = defaultThemeConfig
21
22
  css: {
22
23
  preprocessorOptions: {
23
24
  scss: {
24
- additionalData: `$c-primary: ${userOptions.colors?.primary || '#0078E7'} !default;`,
25
+ additionalData: `$c-primary: ${themeConfig.colors?.primary || '#0078E7'} !default;`,
25
26
  },
26
27
  },
27
28
  },
29
+
30
+ optimizeDeps: {
31
+ exclude: ['@docsearch/js'],
32
+ },
33
+
34
+ valaxy: {},
28
35
  }
29
36
  },
30
37
  }
31
38
  }
32
39
 
33
- export default yunPlugin
40
+ export default themePlugin
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valaxy-theme-yun",
3
- "version": "0.7.6",
3
+ "version": "0.8.0",
4
4
  "author": {
5
5
  "email": "me@yunyoujun.cn",
6
6
  "name": "YunYouJun",
@@ -22,11 +22,13 @@
22
22
  "module": "dist/index.mjs",
23
23
  "types": "dist/index.d.ts",
24
24
  "dependencies": {
25
+ "@docsearch/css": "^3.1.1",
26
+ "@docsearch/js": "^3.1.1",
25
27
  "@iconify-json/ant-design": "^1.1.3",
26
28
  "@iconify-json/simple-icons": "^1.1.19"
27
29
  },
28
30
  "devDependencies": {
29
- "valaxy": "0.7.6"
31
+ "valaxy": "0.8.0"
30
32
  },
31
33
  "scripts": {
32
34
  "build": "rimraf dist && tsup",
@@ -1,11 +1,9 @@
1
- @use './vars' as *;
2
- @use '~/styles/mixins' as * with(
3
- $namespace: 'yun'
4
- );
1
+ @use "./vars" as *;
2
+ @use "valaxy/client/styles/mixins" as * with($namespace: "yun");
5
3
 
6
4
  :root {
7
5
  @include set-css-var-from-map($common);
8
- @include set-css-var-from-map($z-index, 'z');
6
+ @include set-css-var-from-map($z-index, "z");
9
7
  }
10
8
 
11
9
  :root {
@@ -1,4 +1,4 @@
1
- @use "~/styles/mixins" as *;
1
+ @use "valaxy/client/styles/mixins" as *;
2
2
  @use "./post" as *;
3
3
 
4
4
  .yun-main {
@@ -1,4 +1,4 @@
1
- @use "~/styles/mixins" as *;
1
+ @use "valaxy/client/styles/mixins" as *;
2
2
 
3
3
  .post-card {
4
4
  position: relative;
@@ -1,4 +1,4 @@
1
- @use "~/styles/mixins" as *;
1
+ @use "valaxy/client/styles/mixins" as *;
2
2
 
3
3
  .markdown-body {
4
4
  --c-toc-link: var(--va-c-text-light);
package/styles/vars.scss CHANGED
@@ -1,33 +1,47 @@
1
- @use 'sass:map';
1
+ @use "sass:map";
2
2
 
3
3
  // palette
4
4
  $light: () !default;
5
- $light: map.merge((
6
- 'bg-image': url('https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/stars-timing-0-blur-30px.jpg'),
7
- 'sidebar-bg-color': var(--va-c-bg-light),
8
- 'sidebar-bg-image': url("https://cdn.jsdelivr.net/gh/YunYouJun/cdn@master/img/bg/alpha-stars-timing-1.webp")
9
- ), $light);
5
+ $light: map.merge(
6
+ (
7
+ "bg-image":
8
+ url("https://cdn.yunyoujun.cn/img/bg/stars-timing-0-blur-30px.jpg"),
9
+ "sidebar-bg-color": var(--va-c-bg-light),
10
+ "sidebar-bg-image":
11
+ url("https://cdn.yunyoujun.cn/img/bg/alpha-stars-timing-1.webp"),
12
+ ),
13
+ $light
14
+ );
10
15
 
11
16
  $dark: () !default;
12
- $dark: map.merge((
13
- 'bg-image': none,
14
- 'sidebar-bg-image': none
15
- ), $dark);
17
+ $dark: map.merge(
18
+ (
19
+ "bg-image": none,
20
+ "sidebar-bg-image": none,
21
+ ),
22
+ $dark
23
+ );
16
24
 
17
25
  // common
18
26
  $common: () !default;
19
- $common: map.merge((
20
- 'post-card-max-width': 900px
21
- ), $common);
27
+ $common: map.merge(
28
+ (
29
+ "post-card-max-width": 900px,
30
+ ),
31
+ $common
32
+ );
22
33
 
23
34
  $z-index: () !default;
24
- $z-index: map.merge((
25
- 'cloud': 8,
26
- 'go-down': 9,
27
- 'sidebar': 10,
28
- 'fireworks': 11,
29
- 'menu-btn': 20,
30
- 'go-up-btn': 20,
31
- 'search-popup': 30,
32
- 'search-btn': 31,
33
- ), $z-index);
35
+ $z-index: map.merge(
36
+ (
37
+ "cloud": 8,
38
+ "go-down": 9,
39
+ "sidebar": 10,
40
+ "fireworks": 11,
41
+ "menu-btn": 20,
42
+ "go-up-btn": 20,
43
+ "search-popup": 30,
44
+ "search-btn": 31,
45
+ ),
46
+ $z-index
47
+ );
package/tsconfig.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ // we need tsconfig.json to compile without
3
+ // error: This is likely not portable. A type annotation is necessary.
4
+ "compilerOptions": {
5
+ "allowJs": true,
6
+ "baseUrl": ".",
7
+ "module": "ESNext",
8
+ "target": "ESNext",
9
+ "lib": ["DOM", "ESNext"],
10
+ "strict": true,
11
+ "esModuleInterop": true,
12
+ "jsx": "preserve",
13
+ "skipLibCheck": true,
14
+ "moduleResolution": "node",
15
+ "resolveJsonModule": true,
16
+ "noUnusedLocals": true,
17
+ "strictNullChecks": true,
18
+ "forceConsistentCasingInFileNames": true,
19
+ "types": [
20
+ "vite/client",
21
+ "vue/ref-macros",
22
+ "vite-plugin-pages/client",
23
+ "vite-plugin-vue-layouts/client"
24
+ ]
25
+ },
26
+ "exclude": ["**/dist/**", "node_modules"]
27
+ }