valaxy 0.14.21 → 0.14.22

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.
@@ -29,7 +29,7 @@ const surLen = computed(() => {
29
29
  return 2
30
30
  })
31
31
 
32
- const showPage = (i: number) => {
32
+ function showPage(i: number) {
33
33
  if (i === 1)
34
34
  return true
35
35
  else if (i === totalPages.value)
@@ -37,7 +37,7 @@ const showPage = (i: number) => {
37
37
  return i > props.curPage - surLen.value && i < props.curPage + surLen.value
38
38
  }
39
39
 
40
- const jumpTo = (page: number) => {
40
+ function jumpTo(page: number) {
41
41
  emit('pageChange', page)
42
42
  if (page === 1)
43
43
  return '/'
@@ -22,7 +22,9 @@ export type Category = CategoryList
22
22
  export type Categories = (Post | CategoryList)[]
23
23
 
24
24
  // todo write unit test
25
- export const isCategoryList = (category: any): category is CategoryList => category.children
25
+ export function isCategoryList(category: any): category is CategoryList {
26
+ return category.children
27
+ }
26
28
 
27
29
  /**
28
30
  * get categories from posts
@@ -5,7 +5,7 @@ import { onMounted } from 'vue'
5
5
  /**
6
6
  * @description image preview by medium-zoom
7
7
  */
8
- export const useMediumZoom = () => {
8
+ export function useMediumZoom() {
9
9
  const siteConfig = useSiteConfig()
10
10
  const mediumZoomConfig = siteConfig.value.mediumZoom
11
11
 
@@ -3,7 +3,7 @@ import { useI18n } from 'vue-i18n'
3
3
  import dayjs from 'dayjs'
4
4
  import 'dayjs/locale/zh-cn'
5
5
 
6
- export const useLocale = () => {
6
+ export function useLocale() {
7
7
  const { availableLocales, locale } = useI18n()
8
8
  const lang = useStorage('valaxy-locale', locale.value)
9
9
  dayjs.locale(lang.value.toLowerCase())
@@ -66,7 +66,7 @@ function addToParent(
66
66
  * export headers & handleClick to generate outline
67
67
  * @returns
68
68
  */
69
- export const useOutline = () => {
69
+ export function useOutline() {
70
70
  const frontmatter = useFrontmatter()
71
71
  const themeConfig = useThemeConfig()
72
72
  const headers = ref<MenuItem[]>([])
@@ -6,7 +6,7 @@ import type { Post } from 'valaxy'
6
6
  import { sortByDate } from '../utils'
7
7
  import { useSiteStore } from '../stores'
8
8
 
9
- export const usePostTitle = (post: ComputedRef<Post>) => {
9
+ export function usePostTitle(post: ComputedRef<Post>) {
10
10
  const { locale } = useI18n()
11
11
  return computed(() => {
12
12
  const lang = locale.value === 'zh-CN' ? 'zh' : locale.value
@@ -46,10 +46,13 @@ export function usePostList(params: {
46
46
  const pageList = usePageList()
47
47
  return computed(() => {
48
48
  const routes = pageList.value
49
- .filter(i => i.path?.startsWith('/posts'))
50
- .filter(i => !i.path?.endsWith('.html'))
51
- .filter(i => i.date)
52
- .filter(i => !params.type || i.type === params.type)
49
+ .filter(i =>
50
+ i.path?.startsWith('/posts')
51
+ && !i.path?.endsWith('.html')
52
+ && i.date
53
+ && (!params.type || i.type === params.type)
54
+ && (!i.hide || i.hide === 'index'), // hide `hide: all` posts
55
+ )
53
56
 
54
57
  /**
55
58
  * 置顶
@@ -5,7 +5,7 @@ import { useI18n } from 'vue-i18n'
5
5
  const router = useRouter()
6
6
  const { t } = useI18n()
7
7
 
8
- const back = () => {
8
+ function back() {
9
9
  if (document.referrer)
10
10
  router.back()
11
11
  else
@@ -16,6 +16,7 @@ title:
16
16
  category: Category
17
17
  tag: Tag
18
18
  album: Album
19
+ gallery: Gallery
19
20
 
20
21
  menu:
21
22
  home: Home
@@ -66,14 +67,8 @@ counter:
66
67
  archives: No posts | 1 post | {count} posts
67
68
  categories: No categories | 1 category | {count} categories
68
69
  tags: No tags | 1 tag | {count} tags
69
- albums:
70
- zero: No album
71
- one: 1 album
72
- other: '%d albums'
73
- photos:
74
- zero: No photo
75
- one: 1 photo
76
- other: '%d photos'
70
+ albums: No album | 1 album | {count} albums
71
+ photos: No photo | 1 photo | {count} photos
77
72
 
78
73
  category:
79
74
  uncategorized: Uncategorized
@@ -16,6 +16,7 @@ title:
16
16
  category: 分类
17
17
  tag: 标签
18
18
  album: 相册
19
+ gallery: 图片库
19
20
 
20
21
  menu:
21
22
  home: 首页
@@ -65,14 +66,8 @@ counter:
65
66
  archives: 暂无日志 | 共计 1 篇日志 | 共计 {count} 篇日志
66
67
  categories: 暂无分类 | 共计 1 个分类 | 共计 {count} 个分类
67
68
  tags: 暂无标签 | 共计 1 个标签 | 共计 {count} 个标签
68
- albums:
69
- zero: 暂无相册
70
- one: 共计 1 个相册
71
- other: '共计 %d 个相册'
72
- photos:
73
- zero: 暂无照片
74
- one: 共计 1 张照片
75
- other: '共计 %d 张照片'
69
+ albums: 暂无相册 | 共计 1 个相册 | 共计 {count} 个相册
70
+ photos: 暂无照片 | 共计 1 张照片 | 共计 {count} 张照片
76
71
 
77
72
  category:
78
73
  uncategorized: 未分类
@@ -20,7 +20,7 @@ $border: map.merge(
20
20
  $font: () !default;
21
21
  $font: map.merge(
22
22
  (
23
- "serif": "'Noto Serif SC', STZhongsong, Roboto, serif",
23
+ "serif": "'Noto Serif SC', STZhongsong, STKaiti, KaiTi, Roboto, serif",
24
24
  "sans":
25
25
  'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif',
26
26
  "mono": 'Menlo, Monaco, Consolas, "Courier New", monospace',
@@ -13,7 +13,7 @@ export function wrap(el: HTMLElement, className: string) {
13
13
  /**
14
14
  * 包裹表格,添加 class 以控制 table 样式
15
15
  */
16
- export const wrapTable = (container: HTMLElement | Document = document) => {
16
+ export function wrapTable(container: HTMLElement | Document = document) {
17
17
  container.querySelectorAll('table').forEach((el) => {
18
18
  const container = document.createElement('div')
19
19
  container.className = 'table-container'
@@ -14,21 +14,21 @@ GFS4: `),console.error(e)});K[se]||(ha=global[se]||[],ya(K,ha),K.close=function(
14
14
  `)+r,i=n+1,n=e.indexOf(`
15
15
  `,i)}while(n!==-1);return o+=e.substr(i),o};Um.exports={stringReplaceAll:_C,stringEncaseCRLFWithFirstIndex:xC}});var Jm=v((eO,Km)=>{"use strict";var SC=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Wm=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,bC=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,CC=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,wC=new Map([["n",`
16
16
  `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function zm(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):wC.get(e)||e}function AC(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),i;for(let o of n){let s=Number(o);if(!Number.isNaN(s))r.push(s);else if(i=o.match(bC))r.push(i[2].replace(CC,(a,u,p)=>u?zm(u):p));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`)}return r}function RC(e){Wm.lastIndex=0;let t=[],r;for(;(r=Wm.exec(e))!==null;){let n=r[1];if(r[2]){let i=AC(n,r[2]);t.push([n].concat(i))}else t.push([n])}return t}function Ym(e,t){let r={};for(let i of t)for(let o of i.styles)r[o[0]]=i.inverse?null:o.slice(1);let n=e;for(let[i,o]of Object.entries(r))if(Array.isArray(o)){if(!(i in n))throw new Error(`Unknown Chalk style: ${i}`);n=o.length>0?n[i](...o):n[i]}return n}Km.exports=(e,t)=>{let r=[],n=[],i=[];if(t.replace(SC,(o,s,a,u,p,c)=>{if(s)i.push(zm(s));else if(u){let f=i.join("");i=[],n.push(r.length===0?f:Ym(e,r)(f)),r.push({inverse:a,styles:RC(u)})}else if(p){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(Ym(e,r)(i.join(""))),i=[],r.pop()}else i.push(c)}),n.push(i.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var nh=v((tO,rh)=>{"use strict";var Or=Bm(),{stdout:ra,stderr:na}=Vm(),{stringReplaceAll:kC,stringEncaseCRLFWithFirstIndex:FC}=Gm(),{isArray:ti}=Array,Qm=["ansi","ansi","ansi256","ansi16m"],Qt=Object.create(null),OC=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=ra?ra.level:0;e.level=t.level===void 0?r:t.level},ia=class{constructor(t){return Zm(t)}},Zm=e=>{let t={};return OC(t,e),t.template=(...r)=>th(t.template,...r),Object.setPrototypeOf(t,ri.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=ia,t.template};function ri(e){return Zm(e)}for(let[e,t]of Object.entries(Or))Qt[e]={get(){let r=ni(this,oa(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};Qt.visible={get(){let e=ni(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var eh=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of eh)Qt[e]={get(){let{level:t}=this;return function(...r){let n=oa(Or.color[Qm[t]][e](...r),Or.color.close,this._styler);return ni(this,n,this._isEmpty)}}};for(let e of eh){let t="bg"+e[0].toUpperCase()+e.slice(1);Qt[t]={get(){let{level:r}=this;return function(...n){let i=oa(Or.bgColor[Qm[r]][e](...n),Or.bgColor.close,this._styler);return ni(this,i,this._isEmpty)}}}}var PC=Object.defineProperties(()=>{},{...Qt,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),oa=(e,t,r)=>{let n,i;return r===void 0?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},ni=(e,t,r)=>{let n=(...i)=>ti(i[0])&&ti(i[0].raw)?Xm(n,th(n,...i)):Xm(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,PC),n._generator=e,n._styler=t,n._isEmpty=r,n},Xm=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=kC(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
17
- `);return o!==-1&&(t=FC(t,i,n,o)),n+t+i},ta,th=(e,...t)=>{let[r]=t;if(!ti(r)||!ti(r.raw))return t.join(" ");let n=t.slice(1),i=[r.raw[0]];for(let o=1;o<r.length;o++)i.push(String(n[o-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[o]));return ta===void 0&&(ta=Jm()),ta(e,i.join(""))};Object.defineProperties(ri.prototype,Qt);var ii=ri();ii.supportsColor=ra;ii.stderr=ri({level:na?na.level:0});ii.stderr.supportsColor=na;rh.exports=ii});var er=Q(Re(),1);import Zt from"node:path";import{exec as VC}from"node:child_process";import UC from"yargs";import{mergeConfig as sa}from"vite";import GC from"open";import si from"consola";import{yellow as WC}from"kolorist";import{hideBin as YC}from"yargs/helpers";var Jr="0.14.21";import C1 from"node:net";async function Ai(e){return await w1(e)?e:await Ai(e+1)}function w1(e){return new Promise(t=>{let r=C1.createServer(n=>{n.write(`Echo server\r
18
- `),n.pipe(n)});r.listen(e,"0.0.0.0"),r.on("error",()=>{t(!1)}),r.on("listening",()=>{r.close(),t(!0)})})}var ld=Q(Re(),1),fd=Q(Pi(),1),pd=Q(Pn(),1);import{dirname as fx,resolve as Ln}from"node:path";import{ensureSuffix as cd,uniq as px}from"@antfu/utils";function ms(e){return e!==null&&typeof e=="object"}function hs(e,t,r=".",n){if(!ms(t))return hs(e,{},r,n);let i=Object.assign({},t);for(let o in e){if(o==="__proto__"||o==="constructor")continue;let s=e[o];s!=null&&(n&&n(i,o,s,r)||(Array.isArray(s)&&Array.isArray(i[o])?i[o]=s.concat(i[o]):ms(s)&&ms(i[o])?i[o]=hs(s,i[o],(r?`${r}.`:"")+o.toString(),n):i[o]=s))}return i}function gr(e){return(...t)=>t.reduce((r,n)=>hs(r,n,"",e),{})}var $e=gr(),sA=gr((e,t,r,n)=>{if(typeof e[t]<"u"&&typeof r=="function")return e[t]=r(e[t]),!0}),aA=gr((e,t,r,n)=>{if(Array.isArray(e[t])&&typeof r=="function")return e[t]=r(e[t]),!0});import{cyan as dx,yellow as mx}from"kolorist";import QE from"consola";var gs=()=>process.env.NODE_ENV==="production",ys=(e="development")=>{process.env.NODE_ENV=e,Ae.level=gs()?2:3},yr=()=>ys("production");var Ae=QE.create({level:gs()?2:3});var td=Q(Up(),1);import{join as Qp}from"node:path";import K_ from"is-installed-globally";import Zp from"global-dirs";import ed from"consola";import{spawn as V_}from"cross-spawn";function xr(e,t="updated"){return new Promise((r,n)=>{let i=["log"];t==="updated"&&i.push("-1"),i.push('--pretty="%ci"',e),t==="created"&&i.push("|","tail","-1");let o=V_("git",i),s="";o.stdout.on("data",a=>s+=String(a)),o.on("close",()=>{r(+new Date(s))}),o.on("error",()=>{r(0)})})}var Mn="<!-- more -->",jt=/^https?:/i,Gp=/^pathname:\/\//,Wp="/:all(.*)*";function Yp(e){return jt.test(e)}function ot(e){return e.replace(/\\/g,"/")}function As(e,t){return t.startsWith(e)?t:e+t}function re(e){return`/@fs${As("/",ot(e))}`}function zp(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}import{mergeConfig as W_}from"vite";import{isFunction as Kp}from"@antfu/utils";import{cyan as Y_,dim as z_}from"kolorist";import{loadConfig as U_}from"unconfig";import{normalizePath as G_}from"vite";async function yt(e,t={}){let{config:r,sources:n}=await await U_({sources:{files:e,rewrite:t.rewrite},cwd:t.cwd||process.cwd()}),i=G_(n[0]||"");return{config:r,configFile:i}}var Ht=gr((e,t,r)=>{if(Kp(e[t])&&Kp(r)&&(e[t]=function(...n){e[t].call(this,...n),r.call(this,...n)}),t==="vite")return e[t]=W_(e[t],r),!0});async function Rs(e,t){return yt("valaxy.config",{rewrite(r){return typeof r=="function"?r(t||{}):r},cwd:e})}async function Jp(e){let{config:t,configFile:r}=await Rs(e.userRoot||process.cwd());t&&Ae.info(`Resolve ${Y_("valaxyConfig")} from ${z_(r)}`);let n=e.theme||t.theme||"yun";return{config:t,configFile:r,theme:n}}async function Xp(e,t){let r={};for(let n of e){let{config:i,configFile:o}=await yt("index",{rewrite(s,a){return typeof s=="function"?s(n,t):s},cwd:n.root});i&&(n.configFile=o,r=Ht(i,r))}return r}var rd=e=>`JSON.parse(${JSON.stringify(JSON.stringify(e))})`;function Ge(e,t=!1,r={preserveSymlinks:!1}){try{return(0,td.sync)(e,r)}catch(n){ed.log(n)}if(K_){try{return I.resolve(Qp(Zp.yarn.packages,e))}catch{}try{return I.resolve(Qp(Zp.npm.packages,e))}catch{}}if(t)throw new Error(`Failed to resolve package ${e}`);ed.error(`Failed to resolve package ${e}`)}function J_(e){return e}var eR=J_;function X_(e){return e}var tR=X_;function nR(e){return e}function Q_(e){return e}var iR=Q_,ks={mode:"auto",url:"/",lang:"en",title:"Valaxy Blog",description:"A blog generated by Valaxy.",subtitle:"Next Generation Static Blog Framework.",author:{avatar:"https://www.yunyoujun.cn/images/avatar.jpg",email:"i@valaxy.site",link:"https://valaxy.site",name:"VALAXY Developer",status:{emoji:"\u{1F30C}",message:"The moonlight is beautiful."}},favicon:"/favicon.svg",feed:{name:"",favicon:"/favicon.svg"},social:[],date:{format:""},lastUpdated:!0,license:{enabled:!0,language:"",type:"by-nc-sa"},sponsor:{enable:!0,title:"\u8D5E\u52A9",methods:[]},search:{enable:!1,type:"fuse"},comment:{enable:!1},cdn:{prefix:"https://unpkg.com/"},mediumZoom:{enable:!1,selector:"",options:{}},statistics:{enable:!1,readTime:{speed:{cn:300,en:100}}},pageSize:7},nd={ignoreDeadLinks:!0,siteConfig:ks,theme:"yun",themeConfig:{pkg:{name:"",version:""}},runtimeConfig:{addons:{}},features:{katex:!0},vite:{build:{rollupOptions:{external:[]}}}};function oR(e){return e}var Fs=Q(Re(),1);import{resolve as tx}from"node:path";import{cyan as rx,yellow as nx}from"kolorist";import{dirname as id,resolve as Z_}from"node:path";import ex from"node:fs";function In(e,t){if(!e)return"";if(zp(e))if(t){let r=ex.lstatSync(t).isFile();return Z_(r?id(t):t,e)}else throw new Error(`entry is required when ${e} is path`);else return id(Ge(`${e}/package.json`)||"")}async function sd(e,t=process.cwd()){let r={},n=o=>{o&&(r[o.name]=$e(r[o.name]||{},o))};if(Array.isArray(e))for(let o of e){if(typeof o=="string"){n(await od(o,{cwd:t}));continue}typeof o=="object"&&n($e(await od(o.name,{cwd:t}),o||{}))}let i=Object.values(r).filter(o=>o.enable);return Ae.info(`Resolve ${rx("addons:")} ${nx(i.map(o=>o.name).join(", "))}`),i}async function od(e,t={}){let r=ix(e,t.cwd||process.cwd()),n=tx(r,"./package.json");if(!Fs.default.existsSync(n)){Ae.error(`No addon named ${e} found`);return}let i=await Fs.default.readJSON(n);return{enable:!0,name:i.name,global:!!i.global,root:r,options:{},props:{}}}function ix(e,t){let r=e.startsWith("valaxy-addon")||e.startsWith(".")?e:`valaxy-addon-${e}`;return In(r,t)}function ad(e,t){let r=e.startsWith("valaxy-theme")||e.startsWith(".")?e:`valaxy-theme-${e}`;return In(r,t)}import{cyan as ox,dim as sx}from"kolorist";async function ax(e){return yt("site.config",{cwd:e})}async function Nn(e){let{config:t,configFile:r}=await ax(e);return t&&Ae.info(`Resolve ${ox("siteConfig")} from ${sx(r)}`),{siteConfig:t,siteConfigFile:r}}import{cyan as ux,dim as cx}from"kolorist";async function lx(e){return yt("theme.config",{cwd:e})}async function ud(e){let{config:t,configFile:r}=await lx(e);return t&&Ae.info(`Resolve ${ux("themeConfig")} from ${cx(r)}`),{themeConfig:t,themeConfigFile:r}}var hx=(0,fd.default)("valaxy:options");async function gx(e){let{config:t,themeRoot:r,theme:n}=e,i=t.siteConfig;i.url=cd("/",i.url||""),i.cdn.prefix=cd("/",i.cdn.prefix||"");let o=Ln(r,"package.json");try{t.themeConfig.pkg=await ld.default.readJson(o,"utf-8")}catch{console.error(`valaxy-theme-${n} doesn't have package.json`)}}async function Os(e,t){let{clientRoot:r,themeRoot:n,userRoot:i}=e,o=await sd(t.addons||[],e.userRoot),s=await Xp(o,e);t=Ht(t,s);let a=$e(t,nd);e.config={...a,runtimeConfig:{addons:{}}},e.addons=o,o.forEach(f=>{e.config.runtimeConfig.addons[f.name]=f});let u=o.map(({root:f})=>f),p=o.map(({name:f})=>f);e.addonRoots=u,e.roots=px([r,n,...u,i]);let c=e.config.vite?.build?.rollupOptions?.external||[];return e.config.vite.build.rollupOptions.external=c.filter(f=>!p.includes(f)),await gx(e),e}async function De(e={userRoot:process.cwd()},t="dev"){let r=fx(Ge("valaxy/package.json",!0)),n=Ln(r,"client"),i=Ln(e.userRoot||process.cwd()),{config:o,configFile:s,theme:a}=await Jp(e),{siteConfig:u,siteConfigFile:p}=await Nn(e.userRoot),{themeConfig:c,themeConfigFile:f}=await ud(e.userRoot);o=$e({siteConfig:u},{themeConfig:c},o);let l=ad(a,e.userRoot),y=(await(0,pd.default)(["**.md"],{cwd:Ln(i,"pages"),ignore:["**/node_modules"]})).sort(),h={mode:t,pkgRoot:r,clientRoot:n,userRoot:i,themeRoot:l,addonRoots:[],roots:[],theme:a,config:{...o,runtimeConfig:{addons:{}}},configFile:s||"",siteConfigFile:p||"",themeConfigFile:f||"",pages:y,addons:[]};hx(h);let E=await Ps(h),_=Ht(o,E);return h=await Os(h,_),h}async function Ps(e){Ae.info(`Resolve ${dx("valaxy.config.ts")} from ${mx(`theme(${e.theme})`)}`);let{config:t}=await Rs(e.themeRoot,e);return t}import*as mm from"node:readline";import Lb from"node:path";import qb from"node:os";import{blue as pm,bold as Gs,cyan as Bb,dim as Ye,gray as jb,green as Hb,underline as Ws,yellow as Vb}from"kolorist";import dm from"consola";import{mergeConfig as Ub}from"vite";import{createServer as Ib,mergeConfig as Nb}from"vite";import Yn from"node:fs";import{splitVendorChunkPlugin as Ab}from"vite";import Rb from"markdown-it";import kb from"gray-matter";import Fb from"@vitejs/plugin-vue";import Ob from"vite-plugin-pages";import Pb from"vite-plugin-vue-layouts";import Tb from"unplugin-vue-components/vite";import $b from"@intlify/unplugin-vue-i18n/vite";import lm from"dayjs";import{convert as Db}from"html-to-text";import hS from"markdown-it";import Hd from"markdown-it-anchor";import gS from"markdown-it-attrs";import yS from"markdown-it-emoji";import vS from"markdown-it-task-lists";import yx from"markdown-it/lib/common/html_blocks.js";var vx="[a-zA-Z_:@][a-zA-Z0-9:._-]*",Ex="[^\"'=<>`\\x00-\\x20]+",_x="'[^']*'",xx='"[^"]*"',Sx="(?:"+Ex+"|"+_x+"|"+xx+")",Ts="(?:\\s+"+vx+"(?:\\s*=\\s*"+Sx+")?)",dd="<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/?>",md="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",bx="<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->",Cx="<[?][\\s\\S]*?[?]>",wx="<![A-Z]+\\s+[^>]*>",Ax="<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",Rx=new RegExp("^(?:"+dd+"|"+md+"|"+bx+"|"+Cx+"|"+wx+"|"+Ax+")"),kx=new RegExp("^(?:"+dd+"|"+md+")"),Fx=new RegExp("^<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/>"),Ox=new RegExp("^<([A-Za-z][A-Za-z0-9\\-]*)"+Ts+"*\\s*>.*<\\/\\1\\s*>"),Px=yx,Tx=["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"],$x=["template","component","transition","transition-group","keep-alive","slot","teleport"],Dx=({blockTags:e,inlineTags:t})=>{let r=[...e,...Px],n=[...t,...Tx.filter(o=>!$x.includes(o))];return[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp("^</?(?!("+n.join("|")+")(?![\\w-]))[A-Za-z][A-Za-z0-9\\-]*(?=(\\s|/?>|$))"),/^$/,!0],[new RegExp(kx.source+"\\s*$"),/^$/,!1]]},Mx=e=>{let t=Dx(e);return(r,n,i,o)=>{let s,a,u,p=r.bMarks[n]+r.tShift[n],c=r.eMarks[n];if(r.sCount[n]-r.blkIndent>=4||!r.md.options.html||r.src.charCodeAt(p)!==60)return!1;for(u=r.src.slice(p,c),s=0;s<t.length&&!t[s][0].test(u);s++);if(s===t.length)return!1;if(o)return t[s][2];if(s===6){let l=u.match(Fx)??u.match(Ox);if(l){r.line=n+1;let y=r.push("html_inline","",0);return y.content=l[0],y.map=[n,r.line],y=r.push("inline","",0),y.content=u.slice(l[0].length),y.map=[n,r.line],y.children=[],!0}}if(a=n+1,!t[s][1].test(u)){for(;a<i&&!(r.sCount[a]<r.blkIndent);a++)if(p=r.bMarks[a]+r.tShift[a],c=r.eMarks[a],u=r.src.slice(p,c),t[s][1].test(u)){u.length!==0&&a++;break}}r.line=a;let f=r.push("html_block","",0);return f.map=[n,a],f.content=r.getLines(n,a,r.blkIndent,!0),!0}},Ix=e=>{let t=e|32;return t>=97&&t<=122},Nx=(e,t)=>{let{pos:r}=e;if(!e.md.options.html)return!1;let n=e.posMax;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;let i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!Ix(i))return!1;let o=e.src.slice(r).match(Rx);if(!o)return!1;if(!t){let s=e.push("html_inline","",0);s.content=e.src.slice(r,r+o[0].length)}return e.pos+=o[0].length,!0},hd=(e,{blockTags:t=[],inlineTags:r=[]}={})=>{let n=Mx({blockTags:t,inlineTags:r});e.block.ruler.at("html_block",n,{alt:["paragraph","reference","blockquote"]}),e.inline.ruler.at("html_inline",Nx)};import Lx from"gray-matter";var gd=(e,{grayMatterOptions:t,renderExcerpt:r=!0}={})=>{let n=e.render.bind(e);e.render=(i,o={})=>{let{data:s,content:a,excerpt:u=""}=Lx(i,t);return o.content=a,o.frontmatter={...o.frontmatter,...s},o.excerpt=r&&u?n(u,{...o}):u,n(a,o)}};var qx={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},Bx=/[&<>'"]/g,vt=e=>e.replace(Bx,t=>qx[t]);var Sr=(e,{shouldAllowHtml:t,shouldEscapeText:r})=>{let n=e.children??[],i=["text","emoji","code_inline"];return t&&i.push("html_inline"),n.filter(s=>i.includes(s.type)&&!s.meta?.isPermalinkSymbol).reduce((s,a)=>r&&(a.type==="code_inline"||a.type==="text")?`${s}${vt(a.content)}`:`${s}${a.content}`,"").trim()},qn=(e,{level:t,shouldAllowHtml:r,shouldAllowNested:n,shouldEscapeText:i,slugify:o,format:s})=>{let a=[],u=[],p=c=>{for(;u.length!==0&&c.level<=u[0].level;)u.shift();u.length===0?(a.push(c),u.push(c)):(u[0].children.push(c),u.unshift(c))};for(let c=0;c<e.length;c+=1){let f=e[c];if(f?.type!=="heading_open"||f?.level!==0&&!n)continue;let l=Number.parseInt(f.tag.slice(1),10);if(!t.includes(l))continue;let y=e[c+1];if(!y)continue;let h=Sr(y,{shouldAllowHtml:r,shouldEscapeText:i}),E=f.attrGet("id")??o(h);p({level:l,title:s?.(h)??h,slug:E,link:`#${E}`,children:[]})}return a},jx=/[\u0000-\u001f]/g,Hx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’<>,.?/]+/g,Vx=/[\u0300-\u036F]/g,Bn=e=>e.normalize("NFKD").replace(Vx,"").replace(jx,"").replace(Hx,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var yd=(e,{level:t=[2,3],shouldAllowNested:r=!1,slugify:n=Bn,format:i}={})=>{let o=e.renderer.render.bind(e.renderer);e.renderer.render=(s,a,u)=>(u.headers=qn(s,{level:t,shouldAllowHtml:!1,shouldAllowNested:r,shouldEscapeText:!1,slugify:n,format:i}),o(s,a,u))};var vd="script",Ed="style",br="template",Ux=/^<script\s+.*?\bsetup\b.*?>$/is,Gx=({customBlocks:e})=>{let t=Array.from(new Set([vd,Ed,...e])).join("|");return new RegExp(`^\\s*(?<content>(?<tagOpen><(?<type>${t})\\s?.*?>)(?<contentStripped>.*)(?<tagClose><\\/\\k<type>\\s*>))\\s*$`,"is")},_d=(e,{customBlocks:t=[]}={})=>{let r=Gx({customBlocks:t}),n=e.render.bind(e);e.render=(o,s={})=>{s.sfcBlocks={template:null,script:null,scriptSetup:null,scripts:[],styles:[],customBlocks:[]};let a=n(o,s);return s.sfcBlocks.template={type:br,content:`<${br}>${a}</${br}>`,contentStripped:a,tagOpen:`<${br}>`,tagClose:`</${br}>`},a};let i=e.renderer.rules.html_block;e.renderer.rules.html_block=(o,s,a,u,p)=>{if(!u.sfcBlocks)return i(o,s,a,u,p);let l=o[s].content.match(r);if(!l)return i(o,s,a,u,p);let y=l.groups;return y.type===vd?(u.sfcBlocks.scripts.push(y),Ux.test(y.tagOpen)?u.sfcBlocks.scriptSetup=y:u.sfcBlocks.script=y):y.type===Ed?u.sfcBlocks.styles.push(y):u.sfcBlocks.customBlocks.push(y),""}};var xd=e=>{let t=e.renderer.render.bind(e.renderer);e.renderer.render=(r,n,i)=>{let o=r.findIndex(s=>s.tag==="h1");return i.title=o>-1?Sr(r[o+1],{shouldAllowHtml:!1,shouldEscapeText:!1}):"",t(r,n,i)}};var Wx=({listTag:e,listClass:t,itemClass:r,linkTag:n,linkClass:i})=>{let o=vt(e),s=t?` class="${vt(t)}"`:"",a="li",u=r?` class="${vt(r)}"`:"",p=vt(n),c=i?` class="${vt(i)}"`:"",f=y=>n==="router-link"?` to="${y}"`:` href="${y}"`,l=y=>`<${o}${s}>${y.map(h=>`<${a}${u}${u}><${p}${c}${f(h.link)}>${h.title}</${p}>${h.children.length>0?l(h.children):""}</${a}>`).join("")}</${o}>`;return l},Yx=({pattern:e,containerTag:t,containerClass:r})=>(n,i,o,s)=>{if(n.sCount[i]-n.blkIndent>=4)return!1;let a=n.bMarks[i]+n.tShift[i],u=n.eMarks[i],p=n.src.slice(a,u).split(" ")[0];if(!e.test(p))return!1;if(s)return!0;n.line=i+1;let c=n.push("toc_open",t,1);c.markup="",c.map=[i,n.line],r&&c.attrSet("class",r);let f=n.push("toc_body","",0);f.markup=p,f.map=[i,n.line],f.hidden=!0;let l=n.push("toc_close",t,-1);return l.markup="",f.map=[i,n.line],!0},Sd=(e,{pattern:t=/^\[\[toc\]\]$/i,slugify:r=Bn,format:n,level:i=[2,3],shouldAllowNested:o=!1,containerTag:s="nav",containerClass:a="table-of-contents",listTag:u="ul",listClass:p="",itemClass:c="",linkTag:f="a",linkClass:l=""}={})=>{e.block.ruler.before("heading","toc",Yx({pattern:t,containerTag:s,containerClass:a}),{alt:["paragraph","reference","blockquote"]});let y=Wx({listTag:u,listClass:p,itemClass:c,linkTag:f,linkClass:l});e.renderer.rules.toc_body=h=>y(qn(h,{level:i,shouldAllowHtml:!0,shouldAllowNested:o,shouldEscapeText:!0,slugify:r,format:n}))};import bd from"katex";function Cd(e,t){let r=e.posMax,n=!0,i=!0,o=t>0?e.src.charCodeAt(t-1):-1,s=t+1<=r?e.src.charCodeAt(t+1):-1;return(o===32||o===9||s>=48&&s<=57)&&(i=!1),(s===32||s===9)&&(n=!1),{can_open:n,can_close:i}}function zx(e,t){let r,n,i,o;if(e.src[e.pos]!=="$")return!1;if(i=Cd(e,e.pos),!i.can_open)return t||(e.pending+="$"),e.pos+=1,!0;let s=e.pos+1;for(r=s;(r=e.src.indexOf("$",r))!==-1;){for(o=r-1;e.src[o]==="\\";)o-=1;if((r-o)%2===1)break;r+=1}return r===-1?(t||(e.pending+="$"),e.pos=s,!0):r-s===0?(t||(e.pending+="$$"),e.pos=s+1,!0):(i=Cd(e,r),i.can_close?(t||(n=e.push("math_inline","math",0),n.markup="$",n.content=e.src.slice(s,r)),e.pos=r+1,!0):(t||(e.pending+="$"),e.pos=s,!0))}function Kx(e,t,r,n){let i,o,s,a,u=!1,p=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(p+2>c||e.src.slice(p,p+2)!=="$$")return!1;if(p+=2,i=e.src.slice(p,c),n)return!0;for(i.trim().slice(-2)==="$$"&&(i=i.trim().slice(0,-2),u=!0),s=t;!u&&(s++,!(s>=r||(p=e.bMarks[s]+e.tShift[s],c=e.eMarks[s],p<c&&e.tShift[s]<e.blkIndent)));)e.src.slice(p,c).trim().slice(-2)==="$$"&&(a=e.src.slice(0,c).lastIndexOf("$$"),o=e.src.slice(p,a),u=!0);e.line=s+1;let f=e.push("math_block","math",0);return f.block=!0,f.content=(i&&i.trim()?`${i}
17
+ `);return o!==-1&&(t=FC(t,i,n,o)),n+t+i},ta,th=(e,...t)=>{let[r]=t;if(!ti(r)||!ti(r.raw))return t.join(" ");let n=t.slice(1),i=[r.raw[0]];for(let o=1;o<r.length;o++)i.push(String(n[o-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[o]));return ta===void 0&&(ta=Jm()),ta(e,i.join(""))};Object.defineProperties(ri.prototype,Qt);var ii=ri();ii.supportsColor=ra;ii.stderr=ri({level:na?na.level:0});ii.stderr.supportsColor=na;rh.exports=ii});var er=Q(Re(),1);import Zt from"node:path";import{exec as VC}from"node:child_process";import UC from"yargs";import{mergeConfig as sa}from"vite";import GC from"open";import si from"consola";import{yellow as WC}from"kolorist";import{hideBin as YC}from"yargs/helpers";var Jr="0.14.22";import C1 from"node:net";async function Ai(e){return await w1(e)?e:await Ai(e+1)}function w1(e){return new Promise(t=>{let r=C1.createServer(n=>{n.write(`Echo server\r
18
+ `),n.pipe(n)});r.listen(e,"0.0.0.0"),r.on("error",()=>{t(!1)}),r.on("listening",()=>{r.close(),t(!0)})})}var ld=Q(Re(),1),fd=Q(Pi(),1),pd=Q(Pn(),1);import{dirname as fx,resolve as Ln}from"node:path";import{ensureSuffix as cd,uniq as px}from"@antfu/utils";function ms(e){return e!==null&&typeof e=="object"}function hs(e,t,r=".",n){if(!ms(t))return hs(e,{},r,n);let i=Object.assign({},t);for(let o in e){if(o==="__proto__"||o==="constructor")continue;let s=e[o];s!=null&&(n&&n(i,o,s,r)||(Array.isArray(s)&&Array.isArray(i[o])?i[o]=s.concat(i[o]):ms(s)&&ms(i[o])?i[o]=hs(s,i[o],(r?`${r}.`:"")+o.toString(),n):i[o]=s))}return i}function gr(e){return(...t)=>t.reduce((r,n)=>hs(r,n,"",e),{})}var $e=gr(),sA=gr((e,t,r,n)=>{if(typeof e[t]<"u"&&typeof r=="function")return e[t]=r(e[t]),!0}),aA=gr((e,t,r,n)=>{if(Array.isArray(e[t])&&typeof r=="function")return e[t]=r(e[t]),!0});import{cyan as dx,yellow as mx}from"kolorist";import QE from"consola";function gs(){return process.env.NODE_ENV==="production"}function ys(e="development"){process.env.NODE_ENV=e,Ae.level=gs()?2:3}function yr(){return ys("production")}var Ae=QE.create({level:gs()?2:3});var td=Q(Up(),1);import{join as Qp}from"node:path";import K_ from"is-installed-globally";import Zp from"global-dirs";import ed from"consola";import{spawn as V_}from"cross-spawn";function xr(e,t="updated"){return new Promise((r,n)=>{let i=["log"];t==="updated"&&i.push("-1"),i.push('--pretty="%ci"',e),t==="created"&&i.push("|","tail","-1");let o=V_("git",i),s="";o.stdout.on("data",a=>s+=String(a)),o.on("close",()=>{r(+new Date(s))}),o.on("error",()=>{r(0)})})}var Mn="<!-- more -->",jt=/^https?:/i,Gp=/^pathname:\/\//,Wp="/:all(.*)*";function Yp(e){return jt.test(e)}function ot(e){return e.replace(/\\/g,"/")}function As(e,t){return t.startsWith(e)?t:e+t}function re(e){return`/@fs${As("/",ot(e))}`}function zp(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}import{mergeConfig as W_}from"vite";import{isFunction as Kp}from"@antfu/utils";import{cyan as Y_,dim as z_}from"kolorist";import{loadConfig as U_}from"unconfig";import{normalizePath as G_}from"vite";async function yt(e,t={}){let{config:r,sources:n}=await await U_({sources:{files:e,rewrite:t.rewrite},cwd:t.cwd||process.cwd()}),i=G_(n[0]||"");return{config:r,configFile:i}}var Ht=gr((e,t,r)=>{if(Kp(e[t])&&Kp(r)&&(e[t]=function(...n){e[t].call(this,...n),r.call(this,...n)}),t==="vite")return e[t]=W_(e[t],r),!0});async function Rs(e,t){return yt("valaxy.config",{rewrite(r){return typeof r=="function"?r(t||{}):r},cwd:e})}async function Jp(e){let{config:t,configFile:r}=await Rs(e.userRoot||process.cwd());t&&Ae.info(`Resolve ${Y_("valaxyConfig")} from ${z_(r)}`);let n=e.theme||t.theme||"yun";return{config:t,configFile:r,theme:n}}async function Xp(e,t){let r={};for(let n of e){let{config:i,configFile:o}=await yt("index",{rewrite(s,a){return typeof s=="function"?s(n,t):s},cwd:n.root});i&&(n.configFile=o,r=Ht(i,r))}return r}function rd(e){return`JSON.parse(${JSON.stringify(JSON.stringify(e))})`}function Ge(e,t=!1,r={preserveSymlinks:!1}){try{return(0,td.sync)(e,r)}catch(n){ed.log(n)}if(K_){try{return I.resolve(Qp(Zp.yarn.packages,e))}catch{}try{return I.resolve(Qp(Zp.npm.packages,e))}catch{}}if(t)throw new Error(`Failed to resolve package ${e}`);ed.error(`Failed to resolve package ${e}`)}function J_(e){return e}var eR=J_;function X_(e){return e}var tR=X_;function nR(e){return e}function Q_(e){return e}var iR=Q_,ks={mode:"auto",url:"/",lang:"en",title:"Valaxy Blog",description:"A blog generated by Valaxy.",subtitle:"Next Generation Static Blog Framework.",author:{avatar:"https://www.yunyoujun.cn/images/avatar.jpg",email:"i@valaxy.site",link:"https://valaxy.site",name:"VALAXY Developer",status:{emoji:"\u{1F30C}",message:"The moonlight is beautiful."}},favicon:"/favicon.svg",feed:{name:"",favicon:"/favicon.svg"},social:[],date:{format:""},lastUpdated:!0,license:{enabled:!0,language:"",type:"by-nc-sa"},sponsor:{enable:!0,title:"\u8D5E\u52A9",methods:[]},search:{enable:!1,type:"fuse"},comment:{enable:!1},cdn:{prefix:"https://unpkg.com/"},mediumZoom:{enable:!1,selector:"",options:{}},statistics:{enable:!1,readTime:{speed:{cn:300,en:100}}},pageSize:7},nd={ignoreDeadLinks:!0,siteConfig:ks,theme:"yun",themeConfig:{pkg:{name:"",version:""}},runtimeConfig:{addons:{}},features:{katex:!0},vite:{build:{rollupOptions:{external:[]}}}};function oR(e){return e}var Fs=Q(Re(),1);import{resolve as tx}from"node:path";import{cyan as rx,yellow as nx}from"kolorist";import{dirname as id,resolve as Z_}from"node:path";import ex from"node:fs";function In(e,t){if(!e)return"";if(zp(e))if(t){let r=ex.lstatSync(t).isFile();return Z_(r?id(t):t,e)}else throw new Error(`entry is required when ${e} is path`);else return id(Ge(`${e}/package.json`)||"")}async function sd(e,t=process.cwd()){let r={},n=o=>{o&&(r[o.name]=$e(r[o.name]||{},o))};if(Array.isArray(e))for(let o of e){if(typeof o=="string"){n(await od(o,{cwd:t}));continue}typeof o=="object"&&n($e(await od(o.name,{cwd:t}),o||{}))}let i=Object.values(r).filter(o=>o.enable);return Ae.info(`Resolve ${rx("addons:")} ${nx(i.map(o=>o.name).join(", "))}`),i}async function od(e,t={}){let r=ix(e,t.cwd||process.cwd()),n=tx(r,"./package.json");if(!Fs.default.existsSync(n)){Ae.error(`No addon named ${e} found`);return}let i=await Fs.default.readJSON(n);return{enable:!0,name:i.name,global:!!i.global,root:r,options:{},props:{}}}function ix(e,t){let r=e.startsWith("valaxy-addon")||e.startsWith(".")?e:`valaxy-addon-${e}`;return In(r,t)}function ad(e,t){let r=e.startsWith("valaxy-theme")||e.startsWith(".")?e:`valaxy-theme-${e}`;return In(r,t)}import{cyan as ox,dim as sx}from"kolorist";async function ax(e){return yt("site.config",{cwd:e})}async function Nn(e){let{config:t,configFile:r}=await ax(e);return t&&Ae.info(`Resolve ${ox("siteConfig")} from ${sx(r)}`),{siteConfig:t,siteConfigFile:r}}import{cyan as ux,dim as cx}from"kolorist";async function lx(e){return yt("theme.config",{cwd:e})}async function ud(e){let{config:t,configFile:r}=await lx(e);return t&&Ae.info(`Resolve ${ux("themeConfig")} from ${cx(r)}`),{themeConfig:t,themeConfigFile:r}}var hx=(0,fd.default)("valaxy:options");async function gx(e){let{config:t,themeRoot:r,theme:n}=e,i=t.siteConfig;i.url=cd("/",i.url||""),i.cdn.prefix=cd("/",i.cdn.prefix||"");let o=Ln(r,"package.json");try{t.themeConfig.pkg=await ld.default.readJson(o,"utf-8")}catch{console.error(`valaxy-theme-${n} doesn't have package.json`)}}async function Os(e,t){let{clientRoot:r,themeRoot:n,userRoot:i}=e,o=await sd(t.addons||[],e.userRoot),s=await Xp(o,e);t=Ht(t,s);let a=$e(t,nd);e.config={...a,runtimeConfig:{addons:{}}},e.addons=o,o.forEach(f=>{e.config.runtimeConfig.addons[f.name]=f});let u=o.map(({root:f})=>f),p=o.map(({name:f})=>f);e.addonRoots=u,e.roots=px([r,n,...u,i]);let c=e.config.vite?.build?.rollupOptions?.external||[];return e.config.vite.build.rollupOptions.external=c.filter(f=>!p.includes(f)),await gx(e),e}async function De(e={userRoot:process.cwd()},t="dev"){let r=fx(Ge("valaxy/package.json",!0)),n=Ln(r,"client"),i=Ln(e.userRoot||process.cwd()),{config:o,configFile:s,theme:a}=await Jp(e),{siteConfig:u,siteConfigFile:p}=await Nn(e.userRoot),{themeConfig:c,themeConfigFile:f}=await ud(e.userRoot);o=$e({siteConfig:u},{themeConfig:c},o);let l=ad(a,e.userRoot),y=(await(0,pd.default)(["**.md"],{cwd:Ln(i,"pages"),ignore:["**/node_modules"]})).sort(),h={mode:t,pkgRoot:r,clientRoot:n,userRoot:i,themeRoot:l,addonRoots:[],roots:[],theme:a,config:{...o,runtimeConfig:{addons:{}}},configFile:s||"",siteConfigFile:p||"",themeConfigFile:f||"",pages:y,addons:[]};hx(h);let E=await Ps(h),_=Ht(o,E);return h=await Os(h,_),h}async function Ps(e){Ae.info(`Resolve ${dx("valaxy.config.ts")} from ${mx(`theme(${e.theme})`)}`);let{config:t}=await Rs(e.themeRoot,e);return t}import*as mm from"node:readline";import Lb from"node:path";import qb from"node:os";import{blue as pm,bold as Gs,cyan as Bb,dim as Ye,gray as jb,green as Hb,underline as Ws,yellow as Vb}from"kolorist";import dm from"consola";import{mergeConfig as Ub}from"vite";import{createServer as Ib,mergeConfig as Nb}from"vite";import Yn from"node:fs";import{splitVendorChunkPlugin as Ab}from"vite";import Rb from"markdown-it";import kb from"gray-matter";import Fb from"@vitejs/plugin-vue";import Ob from"vite-plugin-pages";import Pb from"vite-plugin-vue-layouts";import Tb from"unplugin-vue-components/vite";import $b from"@intlify/unplugin-vue-i18n/vite";import lm from"dayjs";import{convert as Db}from"html-to-text";import hS from"markdown-it";import Hd from"markdown-it-anchor";import gS from"markdown-it-attrs";import yS from"markdown-it-emoji";import vS from"markdown-it-task-lists";import yx from"markdown-it/lib/common/html_blocks.js";var vx="[a-zA-Z_:@][a-zA-Z0-9:._-]*",Ex="[^\"'=<>`\\x00-\\x20]+",_x="'[^']*'",xx='"[^"]*"',Sx="(?:"+Ex+"|"+_x+"|"+xx+")",Ts="(?:\\s+"+vx+"(?:\\s*=\\s*"+Sx+")?)",dd="<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/?>",md="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",bx="<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->",Cx="<[?][\\s\\S]*?[?]>",wx="<![A-Z]+\\s+[^>]*>",Ax="<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",Rx=new RegExp("^(?:"+dd+"|"+md+"|"+bx+"|"+Cx+"|"+wx+"|"+Ax+")"),kx=new RegExp("^(?:"+dd+"|"+md+")"),Fx=new RegExp("^<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/>"),Ox=new RegExp("^<([A-Za-z][A-Za-z0-9\\-]*)"+Ts+"*\\s*>.*<\\/\\1\\s*>"),Px=yx,Tx=["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"],$x=["template","component","transition","transition-group","keep-alive","slot","teleport"],Dx=({blockTags:e,inlineTags:t})=>{let r=[...e,...Px],n=[...t,...Tx.filter(o=>!$x.includes(o))];return[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp("^</?(?!("+n.join("|")+")(?![\\w-]))[A-Za-z][A-Za-z0-9\\-]*(?=(\\s|/?>|$))"),/^$/,!0],[new RegExp(kx.source+"\\s*$"),/^$/,!1]]},Mx=e=>{let t=Dx(e);return(r,n,i,o)=>{let s,a,u,p=r.bMarks[n]+r.tShift[n],c=r.eMarks[n];if(r.sCount[n]-r.blkIndent>=4||!r.md.options.html||r.src.charCodeAt(p)!==60)return!1;for(u=r.src.slice(p,c),s=0;s<t.length&&!t[s][0].test(u);s++);if(s===t.length)return!1;if(o)return t[s][2];if(s===6){let l=u.match(Fx)??u.match(Ox);if(l){r.line=n+1;let y=r.push("html_inline","",0);return y.content=l[0],y.map=[n,r.line],y=r.push("inline","",0),y.content=u.slice(l[0].length),y.map=[n,r.line],y.children=[],!0}}if(a=n+1,!t[s][1].test(u)){for(;a<i&&!(r.sCount[a]<r.blkIndent);a++)if(p=r.bMarks[a]+r.tShift[a],c=r.eMarks[a],u=r.src.slice(p,c),t[s][1].test(u)){u.length!==0&&a++;break}}r.line=a;let f=r.push("html_block","",0);return f.map=[n,a],f.content=r.getLines(n,a,r.blkIndent,!0),!0}},Ix=e=>{let t=e|32;return t>=97&&t<=122},Nx=(e,t)=>{let{pos:r}=e;if(!e.md.options.html)return!1;let n=e.posMax;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;let i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!Ix(i))return!1;let o=e.src.slice(r).match(Rx);if(!o)return!1;if(!t){let s=e.push("html_inline","",0);s.content=e.src.slice(r,r+o[0].length)}return e.pos+=o[0].length,!0},hd=(e,{blockTags:t=[],inlineTags:r=[]}={})=>{let n=Mx({blockTags:t,inlineTags:r});e.block.ruler.at("html_block",n,{alt:["paragraph","reference","blockquote"]}),e.inline.ruler.at("html_inline",Nx)};import Lx from"gray-matter";var gd=(e,{grayMatterOptions:t,renderExcerpt:r=!0}={})=>{let n=e.render.bind(e);e.render=(i,o={})=>{let{data:s,content:a,excerpt:u=""}=Lx(i,t);return o.content=a,o.frontmatter={...o.frontmatter,...s},o.excerpt=r&&u?n(u,{...o}):u,n(a,o)}};var qx={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},Bx=/[&<>'"]/g,vt=e=>e.replace(Bx,t=>qx[t]);var Sr=(e,{shouldAllowHtml:t,shouldEscapeText:r})=>{let n=e.children??[],i=["text","emoji","code_inline"];return t&&i.push("html_inline"),n.filter(s=>i.includes(s.type)&&!s.meta?.isPermalinkSymbol).reduce((s,a)=>r&&(a.type==="code_inline"||a.type==="text")?`${s}${vt(a.content)}`:`${s}${a.content}`,"").trim()},qn=(e,{level:t,shouldAllowHtml:r,shouldAllowNested:n,shouldEscapeText:i,slugify:o,format:s})=>{let a=[],u=[],p=c=>{for(;u.length!==0&&c.level<=u[0].level;)u.shift();u.length===0?(a.push(c),u.push(c)):(u[0].children.push(c),u.unshift(c))};for(let c=0;c<e.length;c+=1){let f=e[c];if(f?.type!=="heading_open"||f?.level!==0&&!n)continue;let l=Number.parseInt(f.tag.slice(1),10);if(!t.includes(l))continue;let y=e[c+1];if(!y)continue;let h=Sr(y,{shouldAllowHtml:r,shouldEscapeText:i}),E=f.attrGet("id")??o(h);p({level:l,title:s?.(h)??h,slug:E,link:`#${E}`,children:[]})}return a},jx=/[\u0000-\u001f]/g,Hx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’<>,.?/]+/g,Vx=/[\u0300-\u036F]/g,Bn=e=>e.normalize("NFKD").replace(Vx,"").replace(jx,"").replace(Hx,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var yd=(e,{level:t=[2,3],shouldAllowNested:r=!1,slugify:n=Bn,format:i}={})=>{let o=e.renderer.render.bind(e.renderer);e.renderer.render=(s,a,u)=>(u.headers=qn(s,{level:t,shouldAllowHtml:!1,shouldAllowNested:r,shouldEscapeText:!1,slugify:n,format:i}),o(s,a,u))};var vd="script",Ed="style",br="template",Ux=/^<script\s+.*?\bsetup\b.*?>$/is,Gx=({customBlocks:e})=>{let t=Array.from(new Set([vd,Ed,...e])).join("|");return new RegExp(`^\\s*(?<content>(?<tagOpen><(?<type>${t})\\s?.*?>)(?<contentStripped>.*)(?<tagClose><\\/\\k<type>\\s*>))\\s*$`,"is")},_d=(e,{customBlocks:t=[]}={})=>{let r=Gx({customBlocks:t}),n=e.render.bind(e);e.render=(o,s={})=>{s.sfcBlocks={template:null,script:null,scriptSetup:null,scripts:[],styles:[],customBlocks:[]};let a=n(o,s);return s.sfcBlocks.template={type:br,content:`<${br}>${a}</${br}>`,contentStripped:a,tagOpen:`<${br}>`,tagClose:`</${br}>`},a};let i=e.renderer.rules.html_block;e.renderer.rules.html_block=(o,s,a,u,p)=>{if(!u.sfcBlocks)return i(o,s,a,u,p);let l=o[s].content.match(r);if(!l)return i(o,s,a,u,p);let y=l.groups;return y.type===vd?(u.sfcBlocks.scripts.push(y),Ux.test(y.tagOpen)?u.sfcBlocks.scriptSetup=y:u.sfcBlocks.script=y):y.type===Ed?u.sfcBlocks.styles.push(y):u.sfcBlocks.customBlocks.push(y),""}};var xd=e=>{let t=e.renderer.render.bind(e.renderer);e.renderer.render=(r,n,i)=>{let o=r.findIndex(s=>s.tag==="h1");return i.title=o>-1?Sr(r[o+1],{shouldAllowHtml:!1,shouldEscapeText:!1}):"",t(r,n,i)}};var Wx=({listTag:e,listClass:t,itemClass:r,linkTag:n,linkClass:i})=>{let o=vt(e),s=t?` class="${vt(t)}"`:"",a="li",u=r?` class="${vt(r)}"`:"",p=vt(n),c=i?` class="${vt(i)}"`:"",f=y=>n==="router-link"?` to="${y}"`:` href="${y}"`,l=y=>`<${o}${s}>${y.map(h=>`<${a}${u}${u}><${p}${c}${f(h.link)}>${h.title}</${p}>${h.children.length>0?l(h.children):""}</${a}>`).join("")}</${o}>`;return l},Yx=({pattern:e,containerTag:t,containerClass:r})=>(n,i,o,s)=>{if(n.sCount[i]-n.blkIndent>=4)return!1;let a=n.bMarks[i]+n.tShift[i],u=n.eMarks[i],p=n.src.slice(a,u).split(" ")[0];if(!e.test(p))return!1;if(s)return!0;n.line=i+1;let c=n.push("toc_open",t,1);c.markup="",c.map=[i,n.line],r&&c.attrSet("class",r);let f=n.push("toc_body","",0);f.markup=p,f.map=[i,n.line],f.hidden=!0;let l=n.push("toc_close",t,-1);return l.markup="",f.map=[i,n.line],!0},Sd=(e,{pattern:t=/^\[\[toc\]\]$/i,slugify:r=Bn,format:n,level:i=[2,3],shouldAllowNested:o=!1,containerTag:s="nav",containerClass:a="table-of-contents",listTag:u="ul",listClass:p="",itemClass:c="",linkTag:f="a",linkClass:l=""}={})=>{e.block.ruler.before("heading","toc",Yx({pattern:t,containerTag:s,containerClass:a}),{alt:["paragraph","reference","blockquote"]});let y=Wx({listTag:u,listClass:p,itemClass:c,linkTag:f,linkClass:l});e.renderer.rules.toc_body=h=>y(qn(h,{level:i,shouldAllowHtml:!0,shouldAllowNested:o,shouldEscapeText:!0,slugify:r,format:n}))};import bd from"katex";function Cd(e,t){let r=e.posMax,n=!0,i=!0,o=t>0?e.src.charCodeAt(t-1):-1,s=t+1<=r?e.src.charCodeAt(t+1):-1;return(o===32||o===9||s>=48&&s<=57)&&(i=!1),(s===32||s===9)&&(n=!1),{can_open:n,can_close:i}}function zx(e,t){let r,n,i,o;if(e.src[e.pos]!=="$")return!1;if(i=Cd(e,e.pos),!i.can_open)return t||(e.pending+="$"),e.pos+=1,!0;let s=e.pos+1;for(r=s;(r=e.src.indexOf("$",r))!==-1;){for(o=r-1;e.src[o]==="\\";)o-=1;if((r-o)%2===1)break;r+=1}return r===-1?(t||(e.pending+="$"),e.pos=s,!0):r-s===0?(t||(e.pending+="$$"),e.pos=s+1,!0):(i=Cd(e,r),i.can_close?(t||(n=e.push("math_inline","math",0),n.markup="$",n.content=e.src.slice(s,r)),e.pos=r+1,!0):(t||(e.pending+="$"),e.pos=s,!0))}function Kx(e,t,r,n){let i,o,s,a,u=!1,p=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(p+2>c||e.src.slice(p,p+2)!=="$$")return!1;if(p+=2,i=e.src.slice(p,c),n)return!0;for(i.trim().slice(-2)==="$$"&&(i=i.trim().slice(0,-2),u=!0),s=t;!u&&(s++,!(s>=r||(p=e.bMarks[s]+e.tShift[s],c=e.eMarks[s],p<c&&e.tShift[s]<e.blkIndent)));)e.src.slice(p,c).trim().slice(-2)==="$$"&&(a=e.src.slice(0,c).lastIndexOf("$$"),o=e.src.slice(p,a),u=!0);e.line=s+1;let f=e.push("math_block","math",0);return f.block=!0,f.content=(i&&i.trim()?`${i}
19
19
  `:"")+e.getLines(t+1,s,e.tShift[t],!0)+(o&&o.trim()?o:""),f.map=[t,e.line],f.markup="$$",!0}function $s(e,t){t=t||{};let r=function(s){t.displayMode=!1;try{return bd.renderToString(s,t)}catch(a){return t.throwOnError&&console.warn(a),s}},n=function(s,a){return r(s[a].content)},i=function(s){t.displayMode=!0;try{return`<p>${bd.renderToString(s,t)}</p>`}catch(a){return t.throwOnError&&console.warn(a),s}},o=function(s,a){return`${i(s[a].content)}
20
20
  `};e.inline.ruler.after("escape","math_inline",zx),e.block.ruler.after("blockquote","math_block",Kx,{alt:["paragraph","reference","blockquote","list"]}),e.renderer.rules.math_inline=n,e.renderer.rules.math_block=o}import Ds from"markdown-it-container";function Jx(e,{icon:t,color:r,text:n,langs:i}={}){return[Ds,e,{render(o,s){let a=o[s],u=a.info.trim().slice(e.length).trim();if(a.nesting===1){if(e==="details")return`<details class="${e} custom-block">${`<summary>${u}</summary>`}
21
21
  `;let p="";t&&(p=`<i class="icon ${t}" ${r?`style="color: ${r}"`:""}></i>`);let c=`<span lang="en">${u||n}</span>`;return i&&Object.keys(i).forEach(f=>{c+=`<span lang="${f}">${u||i[f]}</span>`}),`<div class="${e} custom-block"><p class="custom-block-title">${p}${c}</p>
22
22
  `}else return e==="details"?`</details>
23
23
  `:`</div>
24
- `}}]}var wd={tip:{text:"TIP",langs:{"zh-CN":"\u63D0\u793A"}},warning:{text:"WARNING",langs:{"zh-CN":"\u6CE8\u610F"}},danger:{text:"DANGER",langs:{"zh-CN":"\u8B66\u544A"}},info:{text:"INFO",langs:{"zh-CN":"\u4FE1\u606F"}},details:{text:"Details",langs:{"zh-CN":"\u8BE6\u60C5"}}},Ad=(e,t={})=>{Object.keys(wd).forEach(n=>{let i={...wd[n],...t[n]||{}};e.use(...Jx(n,i))}),e.use(Ds,"v-pre",{render:(n,i)=>n[i].nesting===1?`<div v-pre>
24
+ `}}]}var wd={tip:{text:"TIP",langs:{"zh-CN":"\u63D0\u793A"}},warning:{text:"WARNING",langs:{"zh-CN":"\u6CE8\u610F"}},danger:{text:"DANGER",langs:{"zh-CN":"\u8B66\u544A"}},info:{text:"INFO",langs:{"zh-CN":"\u4FE1\u606F"}},details:{text:"Details",langs:{"zh-CN":"\u8BE6\u60C5"}}};function Ad(e,t={}){Object.keys(wd).forEach(n=>{let i={...wd[n],...t[n]||{}};e.use(...Jx(n,i))}),e.use(Ds,"v-pre",{render:(n,i)=>n[i].nesting===1?`<div v-pre>
25
25
  `:`</div>
26
26
  `}),["zh-CN","en"].forEach(n=>{e.use(Ds,n,{render:(i,o)=>i[o].nesting===1?`<div lang="${n}">
27
27
  `:`</div>
28
- `})})};var kd=Q(Rd(),1),Qx=/[\u0000-\u001F]/g,Zx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.…?/]+/g,Un=e=>(0,kd.remove)(e).replace(Qx,"").replace(Zx,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();import Fd from"crypto";var eS=128,Et,Vt,tS=e=>{!Et||Et.length<e?(Et=Buffer.allocUnsafe(e*eS),Fd.randomFillSync(Et),Vt=0):Vt+e>Et.length&&(Fd.randomFillSync(Et),Vt=0),Vt+=e},rS=e=>(tS(e-=0),Et.subarray(Vt-e,Vt)),nS=(e,t,r)=>{let n=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*n*t/e.length);return(o=t)=>{let s="";for(;;){let a=r(i),u=i;for(;u--;)if(s+=e[a[u]&n]||"",s.length===o)return s}}},Od=(e,t=21)=>nS(e,t,rS);var Nd=Q(Ls(),1);import{getHighlighter as sS}from"shiki";function wr(e,t={}){return({code:r})=>{let n=t.tagRegExp??/(?:\/\/|\/\*{1,2}) *\[!code ([\w+-]+)(?::(\d+))?] *(?:\*{1,2}\/)?/,i=[];return r=r.split(`
28
+ `})})}var kd=Q(Rd(),1),Qx=/[\u0000-\u001F]/g,Zx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.…?/]+/g;function Un(e){return(0,kd.remove)(e).replace(Qx,"").replace(Zx,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase()}import Fd from"crypto";var eS=128,Et,Vt,tS=e=>{!Et||Et.length<e?(Et=Buffer.allocUnsafe(e*eS),Fd.randomFillSync(Et),Vt=0):Vt+e>Et.length&&(Fd.randomFillSync(Et),Vt=0),Vt+=e},rS=e=>(tS(e-=0),Et.subarray(Vt-e,Vt)),nS=(e,t,r)=>{let n=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*n*t/e.length);return(o=t)=>{let s="";for(;;){let a=r(i),u=i;for(;u--;)if(s+=e[a[u]&n]||"",s.length===o)return s}}},Od=(e,t=21)=>nS(e,t,rS);var Nd=Q(Ls(),1);import{getHighlighter as sS}from"shiki";function wr(e,t={}){return({code:r})=>{let n=t.tagRegExp??/(?:\/\/|\/\*{1,2}) *\[!code ([\w+-]+)(?::(\d+))?] *(?:\*{1,2}\/)?/,i=[];return r=r.split(`
29
29
  `).map((o,s)=>{let[a,u,p]=o.match(n)??[];return!a||!Object.keys(e).includes(u)?o:(Array.from({length:Number(p??1)}).forEach((c,f)=>{i.push({line:s+f+1,classes:e[u]})}),o.replace(n,""))}).join(`
30
- `),{code:r,lineOptions:i}}}function Ut(e,t,r){let n=new RegExp(`<${r??"w+"}[^>]*class="([\\w+-:;\\/* ]*)"`);return t=Array.isArray(t)?t:[t],e.replace(n,(i,o)=>i.replace(o,`${o} ${t}`))}function $d(e={}){let t=e.commonDiffClass??"diff",r=e.removedLinesClasses??["remove"],n=e.removedLinesClasses??["add"],i=e.removeLineTag??"--",o=e.addLineTag??"++",s=e.hasDiffClass??"has-diff";return{name:"diff",handler:wr({[i]:[t,...r],[o]:[t,...n]},e),postProcess:({code:a})=>a.includes(t)?Ut(a,s,"pre"):a}}function Dd(e={}){let t=e.hasFocusClass??"has-focus",r=e.hasFocusedLinesClass??"has-focused-lines",n=e.focusTag??"focus";return{name:"focus",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function Md(e={}){let t=e.hasHighlightClass??"has-highlight",r=e.hasHighlightedLinesClass??"has-highlighted-lines",n=e.highlightTag??"hl";return{name:"highlight",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function aS(e,t,r){return e.reduce((n,i)=>{let{code:o,lineOptions:s}=i.handler?.({code:n.code,lang:r})??n;return{code:o,lineOptions:[...n.lineOptions,...s]}},{code:t,lineOptions:[]})}function uS(e,t,r){return e.reduce((n,i)=>i.postProcess?.({code:n,lang:r})??n,t)}async function Id(e={}){let t=await sS(e),r=e.processors??[];return{...t,codeToHtml:(n,i)=>{let o=typeof i=="object"?i.lang:i,s=typeof i=="object"?i.lineOptions??[]:[],a=typeof i=="object"?i.theme:void 0,{code:u,lineOptions:p}=aS(r,n,o),c=t.codeToHtml(u,{lang:o,theme:a,lineOptions:[...p,...s]});return uS(r,c,o)}}}var cS=Od("abcdefghijklmnopqrstuvwxyz",10),lS=e=>{e=e.replace(/^(?:\[.*?\])?.*?([\d,-]+).*/,"$1").trim();let t=[];return e?(e.split(",").map(r=>r.split("-").map(n=>parseInt(n,10))).forEach(([r,n])=>{r&&n?t.push(...Array.from({length:n-r+1},(i,o)=>r+o)):t.push(r)}),t.map(r=>({line:r,classes:["highlighted"]}))):[]},fS={name:"error-level",handler:wr({error:["highlighted","error"],warning:["highlighted","warning"]})};async function Ld(e="material-theme-palenight",t="txt"){let r=typeof e=="string"||"name"in e,n=f=>typeof f=="string"?f:f.name,i=[Dd(),Md({hasHighlightClass:"highlighted"}),$d(),fS],o=await Id({themes:r?[e]:[e.dark,e.light],processors:i}),s=/<pre[^>]*(style=".*?")/,a=/^<pre(.*?)>/,u=/-vue$/,p=/:(no-)?line-numbers$/,c=/\{\{.*?\}\}/g;return(f,l,y)=>{let h=u.test(l)?"":"v-pre";l=l.replace(p,"").replace(u,"").toLowerCase()||t,l&&(o.getLoadedLanguages().includes(l)||(l!==t&&console.warn(Nd.default.yellow(`The language '${l}' is not loaded, falling back to '${t}' for syntax highlighting.`)),l=t));let E=lS(y),_=N=>N.replace(a,(C,b)=>`<pre ${h}${b}>`).replace(s,(C,b)=>C.replace(b,"")),S=new Map,$=N=>h?N:N.replace(c,C=>{let b=S.get(C);return b||(b=cS(),S.set(C,b)),b}),P=N=>(S.forEach((C,b)=>{N=N.replaceAll(C,b)}),N);if(r)return _(P(o.codeToHtml($(f),{lang:l,lineOptions:E,theme:n(e)})));let V=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.dark)})),"va-code-dark","pre"),L=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.light)})),"va-code-light","pre");return V+L}}var pS=/^<pre .*?><code>/,qd=e=>{let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i,o]=r,s=n[i],a=s.attrs&&s.attrs[0];if(!a)return t(...r);let u=a[0];if(!u||!/[\d,-]+/.test(u))return t(...r);let p=u.split(",").map(h=>h.split("-").map(E=>parseInt(E,10))),c=o.highlight?o.highlight(s.content,s.info,""):s.content;return`<div class="highlight-lines">${c.replace(pS,"").split(`
31
- `).map((h,E)=>{let _=E+1;return p.some(([$,P])=>$&&P?_>=$&&_<=P:_===$)?'<div class="highlighted">&nbsp;</div>':"<br>"}).join("")}</div>`+c}},Bd=e=>{let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i]=r,o=n[i],s=t(...r);return`<div class="language-${o.info.trim()}"><span class="copy"></span>${s}</div>`}};import{URL as dS}from"node:url";var mS=/(^|.*\/)index.md(#?.*)$/i,jd=(e,t,r)=>{e.renderer.rules.link_open=(o,s,a,u,p)=>{let c=o[s],f=c.attrIndex("href");if(f>=0){let l=c.attrs[f],y=l[1];jt.test(y)?(Object.entries(t).forEach(([E,_])=>{c.attrSet(E,_)}),l[1]=y.replace(Gp,"")):!y.startsWith("#")&&!y.startsWith("mailto:")&&!/\.(?!html|md)\w+($|\?)/i.test(y)&&n(l,u),l[1]=l[1].replace(/\bimport\.meta/g,"import%2Emeta").replace(/\bprocess\.env/g,"process%2Eenv")}return p.renderToken(o,s,a)};function n(o,s){let a=o[1],u=a.match(mS);if(u){let[,p,c]=u;a=p+c}else{let p=a.replace(/[?#].*$/,"");p.endsWith(".md")&&(p=p.replace(/\.md$/,s.cleanUrls==="disabled"?".html":"")),s.cleanUrls==="disabled"&&!p.endsWith(".html")&&!p.endsWith("/")&&(p+=".html");let c=new dS(a,"http://a.com");a=p+c.search+c.hash}!a.startsWith("/")&&!/^\.\//.test(a)&&(a=`./${a}`),i(a.replace(/\.html$/,""),s),a.startsWith("/")&&(a=`${r}${a}`.replace(/\/+/g,"/")),o[1]=decodeURI(a)}function i(o,s){(s.links||(s.links=[])).push(o)}};async function qs(e,t={},r=!1,n="/"){return e.use(qd).use(Bd).use(Ad,t.blocks).use(jd,{target:"_blank",rel:"noreferrer",...t.externalLinks},n),t.attrs?.disable||e.use(gS,t.attrs),e.use($s,t.katex),e.use(yS),r||e.use(Hd,{slugify:Un,permalink:Hd.permalink.ariaHidden({}),...t.anchor}),e.use(hd).use(gd,{...t.frontmatter}).use(yd,{slugify:Un,...t.headers}).use(_d,{...t.sfc}).use(xd).use(Sd,{slugify:Un,...t.toc}),e.use(vS),t.config&&t.config(e),e}var Vd=async(e={})=>{let t=hS({html:!0,linkify:!0,highlight:await Ld(e.theme),...e.options});return await qs(t,e),t};import{resolve as SS}from"node:path";import{existsSync as bS}from"node:fs";import CS from"jiti";import{presetAttributify as wS,presetIcons as AS,presetTypography as RS,presetUno as kS,transformerDirectives as FS,transformerVariantGroup as OS}from"unocss";var Ud=Q(Re(),1);import{resolve as ES}from"node:path";import{isObject as _S}from"@antfu/utils";import xS from"jiti";function Gd(e,t,r=""){return e={...e},Object.keys(t).forEach(n=>{_S(e[n])?e[n]=Gd(e[n],t[n],r?`${r}.${n}`:n):Array.isArray(e[n])?e[n]=[...e[n],...t[n]]:e[n]=t[n]}),e}async function Wd(e,t,r,n,i=!0){let o=n;for(let s of e){let a=ES(s,"setup",t);if(Ud.default.existsSync(a)){let{default:u}=xS(__filename)(a),p=await u(r);p!==null&&(o=i?Gd(o,p):p)}}return o}var PS=async e=>{let{config:t}=e,r=["i-ri-clipboard-line","i-ri-archive-line","i-ri-folder-2-line","i-ri-price-tag-3-line","i-ri-cloud-line"].concat(e.config.unocss?.safelist||[]),n="animate-fade-in m-auto text-left".split(" ").concat(["rotate-y-180"]).concat(r),i=t.siteConfig;i.social?.length&&i.social.forEach(s=>n.push(s?.icon||""));let o=i.sponsor?.methods||[];return o.length&&o.forEach(s=>n.push(s?.icon||"")),n},TS=async e=>{let{config:t}=e;return{shortcuts:[["btn","px-4 py-1 rounded inline-block bg-$va-c-primary text-white cursor-pointer transition hover:bg-$va-c-primary-light disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50"],["icon-btn","inline-flex justify-center items-center cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-sky-600"],["va-card","shadow hover:shadow-lg"]],presets:[kS(t.unocssPresets?.uno),wS(t.unocssPresets?.attributify),AS({scale:1.2,...t.unocssPresets?.icons}),RS(t.unocssPresets?.typography)],rules:[["font-serif",{"font-family":"var(--va-font-serif)"}],["font-sans",{"font-family":"var(--va-font-sans)"}],["font-mono",{"font-family":"var(--va-font-mono)"}]],transformers:[FS(),OS()],safelist:await PS(e)}},Yd=async e=>{let t=await import("unocss/vite").then(l=>l.default),{unocss:r}=e.config,n=await TS(e),{themeRoot:i,clientRoot:o,roots:s}=e,a=["uno.config.ts","unocss.config.ts"],u=[];[i,o].forEach(l=>a.forEach(y=>u.push(SS(l,y))));let c={},f=[];return u.forEach(l=>{if(bS(l)){let y=CS(__filename)(l);"default"in y&&(y=y.default),c=$e(c,y),f.push(l)}}),c=await Wd(s,"unocss.ts",{},c,!0),t({configDeps:f,configFile:!1,...$e(r||{},c,n)})};var Jd=Q(Re(),1);import{dirname as NS,join as zd,resolve as _t}from"node:path";import{mergeConfig as LS,searchForWorkspaceRoot as js}from"vite";import qS from"is-installed-globally";import{uniq as BS}from"@antfu/utils";var Ar=Q(Re(),1);import{join as Bs,resolve as $S}from"node:path";import{uniq as DS}from"@antfu/utils";import{loadConfigFromFile as MS,mergeConfig as IS}from"vite";async function Gn({userRoot:e,themeRoot:t},r){let n={mode:"development",command:r},i={},o=DS([t,e]).map(s=>Bs(s,"vite.config.ts"));for await(let s of o){if(!Ar.default.existsSync(s))continue;let a=await MS(n,s);a?.config&&(i=IS(i,a.config))}return i}async function Wn({clientRoot:e,themeRoot:t,userRoot:r,config:n}){let i=$S(e,"template.html"),o=await Ar.default.readFile(i,"utf-8"),s="",a="";n.siteConfig.favicon&&(s+=`<link rel="icon" href="${n.siteConfig.favicon}">`);let u=[r,t];n.siteConfig.mode==="auto"&&(s+=`
30
+ `),{code:r,lineOptions:i}}}function Ut(e,t,r){let n=new RegExp(`<${r??"w+"}[^>]*class="([\\w+-:;\\/* ]*)"`);return t=Array.isArray(t)?t:[t],e.replace(n,(i,o)=>i.replace(o,`${o} ${t}`))}function $d(e={}){let t=e.commonDiffClass??"diff",r=e.removedLinesClasses??["remove"],n=e.removedLinesClasses??["add"],i=e.removeLineTag??"--",o=e.addLineTag??"++",s=e.hasDiffClass??"has-diff";return{name:"diff",handler:wr({[i]:[t,...r],[o]:[t,...n]},e),postProcess:({code:a})=>a.includes(t)?Ut(a,s,"pre"):a}}function Dd(e={}){let t=e.hasFocusClass??"has-focus",r=e.hasFocusedLinesClass??"has-focused-lines",n=e.focusTag??"focus";return{name:"focus",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function Md(e={}){let t=e.hasHighlightClass??"has-highlight",r=e.hasHighlightedLinesClass??"has-highlighted-lines",n=e.highlightTag??"hl";return{name:"highlight",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function aS(e,t,r){return e.reduce((n,i)=>{let{code:o,lineOptions:s}=i.handler?.({code:n.code,lang:r})??n;return{code:o,lineOptions:[...n.lineOptions,...s]}},{code:t,lineOptions:[]})}function uS(e,t,r){return e.reduce((n,i)=>i.postProcess?.({code:n,lang:r})??n,t)}async function Id(e={}){let t=await sS(e),r=e.processors??[];return{...t,codeToHtml:(n,i)=>{let o=typeof i=="object"?i.lang:i,s=typeof i=="object"?i.lineOptions??[]:[],a=typeof i=="object"?i.theme:void 0,{code:u,lineOptions:p}=aS(r,n,o),c=t.codeToHtml(u,{lang:o,theme:a,lineOptions:[...p,...s]});return uS(r,c,o)}}}var cS=Od("abcdefghijklmnopqrstuvwxyz",10);function lS(e){e=e.replace(/^(?:\[.*?\])?.*?([\d,-]+).*/,"$1").trim();let t=[];return e?(e.split(",").map(r=>r.split("-").map(n=>parseInt(n,10))).forEach(([r,n])=>{r&&n?t.push(...Array.from({length:n-r+1},(i,o)=>r+o)):t.push(r)}),t.map(r=>({line:r,classes:["highlighted"]}))):[]}var fS={name:"error-level",handler:wr({error:["highlighted","error"],warning:["highlighted","warning"]})};async function Ld(e="material-theme-palenight",t="txt"){let r=typeof e=="string"||"name"in e,n=f=>typeof f=="string"?f:f.name,i=[Dd(),Md({hasHighlightClass:"highlighted"}),$d(),fS],o=await Id({themes:r?[e]:[e.dark,e.light],processors:i}),s=/<pre[^>]*(style=".*?")/,a=/^<pre(.*?)>/,u=/-vue$/,p=/:(no-)?line-numbers$/,c=/\{\{.*?\}\}/g;return(f,l,y)=>{let h=u.test(l)?"":"v-pre";l=l.replace(p,"").replace(u,"").toLowerCase()||t,l&&(o.getLoadedLanguages().includes(l)||(l!==t&&console.warn(Nd.default.yellow(`The language '${l}' is not loaded, falling back to '${t}' for syntax highlighting.`)),l=t));let E=lS(y),_=N=>N.replace(a,(C,b)=>`<pre ${h}${b}>`).replace(s,(C,b)=>C.replace(b,"")),S=new Map,$=N=>h?N:N.replace(c,C=>{let b=S.get(C);return b||(b=cS(),S.set(C,b)),b}),P=N=>(S.forEach((C,b)=>{N=N.replaceAll(C,b)}),N);if(r)return _(P(o.codeToHtml($(f),{lang:l,lineOptions:E,theme:n(e)})));let V=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.dark)})),"va-code-dark","pre"),L=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.light)})),"va-code-light","pre");return V+L}}var pS=/^<pre .*?><code>/;function qd(e){let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i,o]=r,s=n[i],a=s.attrs&&s.attrs[0];if(!a)return t(...r);let u=a[0];if(!u||!/[\d,-]+/.test(u))return t(...r);let p=u.split(",").map(h=>h.split("-").map(E=>parseInt(E,10))),c=o.highlight?o.highlight(s.content,s.info,""):s.content;return`<div class="highlight-lines">${c.replace(pS,"").split(`
31
+ `).map((h,E)=>{let _=E+1;return p.some(([$,P])=>$&&P?_>=$&&_<=P:_===$)?'<div class="highlighted">&nbsp;</div>':"<br>"}).join("")}</div>`+c}}function Bd(e){let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i]=r,o=n[i],s=t(...r);return`<div class="language-${o.info.trim()}"><span class="copy"></span>${s}</div>`}}import{URL as dS}from"node:url";var mS=/(^|.*\/)index.md(#?.*)$/i;function jd(e,t,r){e.renderer.rules.link_open=(o,s,a,u,p)=>{let c=o[s],f=c.attrIndex("href");if(f>=0){let l=c.attrs[f],y=l[1];jt.test(y)?(Object.entries(t).forEach(([E,_])=>{c.attrSet(E,_)}),l[1]=y.replace(Gp,"")):!y.startsWith("#")&&!y.startsWith("mailto:")&&!/\.(?!html|md)\w+($|\?)/i.test(y)&&n(l,u),l[1]=l[1].replace(/\bimport\.meta/g,"import%2Emeta").replace(/\bprocess\.env/g,"process%2Eenv")}return p.renderToken(o,s,a)};function n(o,s){let a=o[1],u=a.match(mS);if(u){let[,p,c]=u;a=p+c}else{let p=a.replace(/[?#].*$/,"");p.endsWith(".md")&&(p=p.replace(/\.md$/,s.cleanUrls==="disabled"?".html":"")),s.cleanUrls==="disabled"&&!p.endsWith(".html")&&!p.endsWith("/")&&(p+=".html");let c=new dS(a,"http://a.com");a=p+c.search+c.hash}!a.startsWith("/")&&!/^\.\//.test(a)&&(a=`./${a}`),i(a.replace(/\.html$/,""),s),a.startsWith("/")&&(a=`${r}${a}`.replace(/\/+/g,"/")),o[1]=decodeURI(a)}function i(o,s){(s.links||(s.links=[])).push(o)}}async function qs(e,t={},r=!1,n="/"){return e.use(qd).use(Bd).use(Ad,t.blocks).use(jd,{target:"_blank",rel:"noreferrer",...t.externalLinks},n),t.attrs?.disable||e.use(gS,t.attrs),e.use($s,t.katex),e.use(yS),r||e.use(Hd,{slugify:Un,permalink:Hd.permalink.ariaHidden({}),...t.anchor}),e.use(hd).use(gd,{...t.frontmatter}).use(yd,{slugify:Un,...t.headers}).use(_d,{...t.sfc}).use(xd).use(Sd,{slugify:Un,...t.toc}),e.use(vS),t.config&&t.config(e),e}async function Vd(e={}){let t=hS({html:!0,linkify:!0,highlight:await Ld(e.theme),...e.options});return await qs(t,e),t}import{resolve as SS}from"node:path";import{existsSync as bS}from"node:fs";import CS from"jiti";import{presetAttributify as wS,presetIcons as AS,presetTypography as RS,presetUno as kS,transformerDirectives as FS,transformerVariantGroup as OS}from"unocss";var Ud=Q(Re(),1);import{resolve as ES}from"node:path";import{isObject as _S}from"@antfu/utils";import xS from"jiti";function Gd(e,t,r=""){return e={...e},Object.keys(t).forEach(n=>{_S(e[n])?e[n]=Gd(e[n],t[n],r?`${r}.${n}`:n):Array.isArray(e[n])?e[n]=[...e[n],...t[n]]:e[n]=t[n]}),e}async function Wd(e,t,r,n,i=!0){let o=n;for(let s of e){let a=ES(s,"setup",t);if(Ud.default.existsSync(a)){let{default:u}=xS(__filename)(a),p=await u(r);p!==null&&(o=i?Gd(o,p):p)}}return o}async function PS(e){let{config:t}=e,r=["i-ri-clipboard-line","i-ri-archive-line","i-ri-folder-2-line","i-ri-price-tag-3-line","i-ri-cloud-line"].concat(e.config.unocss?.safelist||[]),n="animate-fade-in m-auto text-left".split(" ").concat(["rotate-y-180"]).concat(r),i=t.siteConfig;i.social?.length&&i.social.forEach(s=>n.push(s?.icon||""));let o=i.sponsor?.methods||[];return o.length&&o.forEach(s=>n.push(s?.icon||"")),n}async function TS(e){let{config:t}=e;return{shortcuts:[["btn","px-4 py-1 rounded inline-block bg-$va-c-primary text-white cursor-pointer transition hover:bg-$va-c-primary-light disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50"],["icon-btn","inline-flex justify-center items-center cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-sky-600"],["va-card","shadow hover:shadow-lg"]],presets:[kS(t.unocssPresets?.uno),wS(t.unocssPresets?.attributify),AS({scale:1.2,...t.unocssPresets?.icons}),RS(t.unocssPresets?.typography)],rules:[["font-serif",{"font-family":"var(--va-font-serif)"}],["font-sans",{"font-family":"var(--va-font-sans)"}],["font-mono",{"font-family":"var(--va-font-mono)"}]],transformers:[FS(),OS()],safelist:await PS(e)}}async function Yd(e){let t=await import("unocss/vite").then(l=>l.default),{unocss:r}=e.config,n=await TS(e),{themeRoot:i,clientRoot:o,roots:s}=e,a=["uno.config.ts","unocss.config.ts"],u=[];[i,o].forEach(l=>a.forEach(y=>u.push(SS(l,y))));let c={},f=[];return u.forEach(l=>{if(bS(l)){let y=CS(__filename)(l);"default"in y&&(y=y.default),c=$e(c,y),f.push(l)}}),c=await Wd(s,"unocss.ts",{},c,!0),t({configDeps:f,configFile:!1,...$e(r||{},c,n)})}var Jd=Q(Re(),1);import{dirname as NS,join as zd,resolve as _t}from"node:path";import{mergeConfig as LS,searchForWorkspaceRoot as js}from"vite";import qS from"is-installed-globally";import{uniq as BS}from"@antfu/utils";var Ar=Q(Re(),1);import{join as Bs,resolve as $S}from"node:path";import{uniq as DS}from"@antfu/utils";import{loadConfigFromFile as MS,mergeConfig as IS}from"vite";async function Gn({userRoot:e,themeRoot:t},r){let n={mode:"development",command:r},i={},o=DS([t,e]).map(s=>Bs(s,"vite.config.ts"));for await(let s of o){if(!Ar.default.existsSync(s))continue;let a=await MS(n,s);a?.config&&(i=IS(i,a.config))}return i}async function Wn({clientRoot:e,themeRoot:t,userRoot:r,config:n}){let i=$S(e,"template.html"),o=await Ar.default.readFile(i,"utf-8"),s="",a="";n.siteConfig.favicon&&(s+=`<link rel="icon" href="${n.siteConfig.favicon}">`);let u=[r,t];n.siteConfig.mode==="auto"&&(s+=`
32
32
  <script>
33
33
  const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
34
34
  const colorSchemeSetting = localStorage.getItem('vueuse-color-scheme') || 'auto';
@@ -45,7 +45,7 @@ GFS4: `),console.error(e)});K[se]||(ha=global[se]||[],ya(K,ha),K.close=function(
45
45
  ${(f.match(/<head>([\s\S]*?)<\/head>/im)?.[1]||"").trim()}`,a+=`
46
46
  ${(f.match(/<body>([\s\S]*?)<\/body>/im)?.[1]||"").trim()}`}return o=o.replace("__ENTRY__",re(Bs(e,"main.ts"))).replace("<!-- head -->",s).replace("<!-- body -->",a),o}var jS=["@vueuse/schema-org","@vueuse/head","@vueuse/integrations/useFuse","body-scroll-lock","dayjs","dayjs/locale/zh-cn","dayjs/plugin/relativeTime","katex","nprogress","unocss","vue","vue-router","vue-i18n","fuse.js","medium-zoom"],Kd=["@vueuse/core","@vueuse/shared","@unocss/reset","unocss","vue","vue-demi","valaxy","/@valaxyjs/config","/@valaxyjs/context","/@valaxyjs/addons","/@valaxyjs/locales","/@valaxyjs/styles"];function Xd(e){return{name:"valaxy:site",config(t){let r={root:e.clientRoot,publicDir:zd(e.userRoot,"public"),define:Hs(e),resolve:{alias:HS(e),dedupe:["vue"]},optimizeDeps:{entries:[_t(e.clientRoot,"main.ts")],include:[...jS.filter(n=>!Kd.includes(n))],exclude:Kd},server:{fs:{allow:BS([js(e.clientRoot),js(e.themeRoot),js(e.userRoot),NS(Ge("katex/package.json",!0))])}}};return qS&&(r.cacheDir=zd(e.pkgRoot,"node_modules/.vite"),r.resolve.alias.vue=`${Ge("vue/dist/vue.esm-browser.js",!0)}`),LS(t,r)},configureServer(t){return()=>{t.middlewares.use(async(r,n,i)=>{if(r.url.endsWith(".html")){n.setHeader("Content-Type","text/html"),n.statusCode=200,n.end(await Wn(e));return}if(r.url==="/atom.xml"){n.setHeader("Content-Type","application/xml"),n.statusCode=200,n.end(await Jd.default.readFile(_t(e.userRoot,"dist/atom.xml"),"utf-8"));return}i()})}}}}function Hs(e){return{__DEV__:e.mode==="dev"?"true":"false"}}function HS(e){let t=[{find:"~/",replacement:`${re(e.userRoot)}/`},{find:"valaxy/client/",replacement:`${re(e.clientRoot)}/`},{find:"valaxy/package.json",replacement:re(_t(e.clientRoot,"../package.json"))},{find:"valaxy",replacement:re(_t(e.clientRoot,"index.ts"))},{find:"@valaxyjs/client/",replacement:`${re(e.clientRoot)}/`},{find:`valaxy-theme-${e.theme}/`,replacement:`${re(_t(e.themeRoot))}/`},{find:`valaxy-theme-${e.theme}`,replacement:`${re(_t(e.themeRoot))}/client/index.ts`}];return e.addons.forEach(r=>{t.push({find:r.name,replacement:`${re(_t(r.root))}/client/index.ts`})}),t}import{existsSync as VS}from"node:fs";import{join as US,resolve as GS}from"node:path";import{slash as WS,uniq as YS}from"@antfu/utils";function Qd({clientRoot:e,themeRoot:t,userRoot:r}){let n=WS(GS(e,"setup"));return{name:"valaxy:setup",enforce:"pre",async transform(i,o){if(o.startsWith(n)){let s=o.slice(n.length+1).replace(/\?.*$/,""),a=[],u=[];return YS([t,r]).map(c=>US(c,"setup",s)).forEach((c,f)=>{if(!VS(c))return;a.push(`import __n${f} from '${re(c)}'`);let l=`__n${f}`;/\binjection_return\b/g.test(i)&&(l=`injection_return = ${l}`),/\binjection_arg\b/g.test(i)?l+="(injection_arg)":l+="()",u.push(`// ${c}`,l)}),i=i.replace("/* __imports__ */",a.join(`
47
47
  `)),i=i.replace("/* __injections__ */",u.join(`
48
- `)),i}return null}}}import{objectEntries as zS}from"@antfu/utils";function Zd(e){let t=zS(Hs(e));return[{name:"valaxy:flags",enforce:"pre",transform(r,n){if(n.match(/\.vue($|\?)/)){let i=r;if(t.forEach(([o,s])=>{r=r.replace(new RegExp(o,"g"),s)}),i!==r)return r}}}]}import{existsSync as KS,readFileSync as JS}from"node:fs";var XS=e=>{let t=(e.match(/[\u4E00-\u9FA5]/g)||[]).length,r=(e.replace(/[\u4E00-\u9FA5]/g,"").match(/[a-zA-Z0-9_\u0392-\u03C9\u0400-\u04FF]+|[\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF\u3040-\u309F\uAC00-\uD7AF\u0400-\u04FF]+|[\u00E4\u00C4\u00E5\u00C5\u00F6\u00D6]+|\w+/g)||[]).length;return{cn:t,en:r}},QS=({cn:e,en:t},r)=>{let n=e/(r.speed.cn||300)+t/(r.speed.en||100);return n<1?1:Math.ceil(n)},ZS=({cn:e,en:t})=>{let r=e+t;return r<1e3?r:`${Math.round(r/100)/10}k`},eb=(e,t)=>{let r=XS(e);return{countData:r,wordCount:ZS(r),readingTime:QS(r,t.readTime)}},em=({route:e,options:t})=>{if(KS(e.component)){let r=JS(e.component,"utf-8"),{wordCount:n,readingTime:i}=eb(r,{readTime:Object.assign({speed:{cn:300,en:100}},t.readTime)});e.meta.frontmatter&&(e.meta.frontmatter.wordCount||(e.meta.frontmatter.wordCount=n),e.meta.frontmatter.readingTime||(e.meta.frontmatter.readingTime=i))}};var Yt=Q(Re(),1);import{join as Wt,relative as Eb,resolve as _b}from"node:path";import{pascalCase as xb}from"pascal-case";var Gt=Q(Ls(),1),im=Q(Pi(),1);import Vs from"node:fs";import We from"node:path";import tb from"lru-cache";var rb="\u200B",nb="<wbr>",tm=(0,im.default)("vitepress:md"),rm=new tb({max:1024}),ib=/<!--\s*@include:\s*(.*?)\s*-->/g;function ob(e={},t){let r=["process.env"];return t&&r.push("import.meta",...Object.keys(e)),new RegExp(`\\b(${r.map(n=>n.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")).join("|")})`,"g")}function om(e,t,r){return e=e.replace(/<a (.*?)>(.*?)<\/a>/g,"<AppLink $1>$2</AppLink>"),e.replace(t,n=>`${n[0]}${r}${n.slice(1)}`)}var sb=(e,t,r)=>{if(typeof t.title=="string"){let n=e.parseInline(t.title,{})[0];if(n)return Sr(n,{shouldAllowHtml:!1,shouldEscapeText:!1})}return r},ab=(e,t)=>{if(!e||!e.length)return;let r=e.find(([n,i={}])=>n==="meta"&&i.name===t&&i.content);return r&&r[1].content},ub=e=>{let{description:t,head:r}=e;return t!==void 0?t:r&&ab(r,"description")||""};async function sm(e,t={},r,n,i=!1,o=!1,s="with-subfolders"){let a=await Vd(t);r=r.map(p=>ot(p.replace(/\.md$/,"")).replace(/\/index$/,""));let u=ob(n,i);return async(p,c,f)=>{let l=ot(We.relative(e,c)),y=We.dirname(c),h=rm.get(p);if(h)return tm(`[cache hit] ${l}`),h;let E=Date.now(),_=[];p=p.replace(ib,(m,g)=>{try{let R=We.join(y,g),k=Vs.readFileSync(R,"utf-8");return _.push(ot(R)),k}catch{return m}});let S={path:c,relativePath:l,cleanUrls:s},$=a.render(p,S),{frontmatter:P={},headers:V=[],links:L=[],sfcBlocks:N,title:C=""}=S,b=[],x=m=>{console.warn(Gt.default.yellow(`
48
+ `)),i}return null}}}import{objectEntries as zS}from"@antfu/utils";function Zd(e){let t=zS(Hs(e));return[{name:"valaxy:flags",enforce:"pre",transform(r,n){if(n.match(/\.vue($|\?)/)){let i=r;if(t.forEach(([o,s])=>{r=r.replace(new RegExp(o,"g"),s)}),i!==r)return r}}}]}import{existsSync as KS,readFileSync as JS}from"node:fs";function XS(e){let t=(e.match(/[\u4E00-\u9FA5]/g)||[]).length,r=(e.replace(/[\u4E00-\u9FA5]/g,"").match(/[a-zA-Z0-9_\u0392-\u03C9\u0400-\u04FF]+|[\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF\u3040-\u309F\uAC00-\uD7AF\u0400-\u04FF]+|[\u00E4\u00C4\u00E5\u00C5\u00F6\u00D6]+|\w+/g)||[]).length;return{cn:t,en:r}}function QS({cn:e,en:t},r){let n=e/(r.speed.cn||300)+t/(r.speed.en||100);return n<1?1:Math.ceil(n)}function ZS({cn:e,en:t}){let r=e+t;return r<1e3?r:`${Math.round(r/100)/10}k`}function eb(e,t){let r=XS(e);return{countData:r,wordCount:ZS(r),readingTime:QS(r,t.readTime)}}function em({route:e,options:t}){if(KS(e.component)){let r=JS(e.component,"utf-8"),{wordCount:n,readingTime:i}=eb(r,{readTime:Object.assign({speed:{cn:300,en:100}},t.readTime)});e.meta.frontmatter&&(e.meta.frontmatter.wordCount||(e.meta.frontmatter.wordCount=n),e.meta.frontmatter.readingTime||(e.meta.frontmatter.readingTime=i))}}var Yt=Q(Re(),1);import{join as Wt,relative as Eb,resolve as _b}from"node:path";import{pascalCase as xb}from"pascal-case";var Gt=Q(Ls(),1),im=Q(Pi(),1);import Vs from"node:fs";import We from"node:path";import tb from"lru-cache";var rb="\u200B",nb="<wbr>",tm=(0,im.default)("vitepress:md"),rm=new tb({max:1024}),ib=/<!--\s*@include:\s*(.*?)\s*-->/g;function ob(e={},t){let r=["process.env"];return t&&r.push("import.meta",...Object.keys(e)),new RegExp(`\\b(${r.map(n=>n.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")).join("|")})`,"g")}function om(e,t,r){return e=e.replace(/<a (.*?)>(.*?)<\/a>/g,"<AppLink $1>$2</AppLink>"),e.replace(t,n=>`${n[0]}${r}${n.slice(1)}`)}function sb(e,t,r){if(typeof t.title=="string"){let n=e.parseInline(t.title,{})[0];if(n)return Sr(n,{shouldAllowHtml:!1,shouldEscapeText:!1})}return r}function ab(e,t){if(!e||!e.length)return;let r=e.find(([n,i={}])=>n==="meta"&&i.name===t&&i.content);return r&&r[1].content}function ub(e){let{description:t,head:r}=e;return t!==void 0?t:r&&ab(r,"description")||""}async function sm(e,t={},r,n,i=!1,o=!1,s="with-subfolders"){let a=await Vd(t);r=r.map(p=>ot(p.replace(/\.md$/,"")).replace(/\/index$/,""));let u=ob(n,i);return async(p,c,f)=>{let l=ot(We.relative(e,c)),y=We.dirname(c),h=rm.get(p);if(h)return tm(`[cache hit] ${l}`),h;let E=Date.now(),_=[];p=p.replace(ib,(m,g)=>{try{let R=We.join(y,g),k=Vs.readFileSync(R,"utf-8");return _.push(ot(R)),k}catch{return m}});let S={path:c,relativePath:l,cleanUrls:s},$=a.render(p,S),{frontmatter:P={},headers:V=[],links:L=[],sfcBlocks:N,title:C=""}=S,b=[],x=m=>{console.warn(Gt.default.yellow(`
49
49
  (!) Found dead link ${Gt.default.cyan(m)} in file ${Gt.default.white(Gt.default.dim(c))}
50
50
  If it is intended, you can use:
51
51
  ${Gt.default.cyan(`<a href="${m}" target="_blank" rel="noreferrer">${m}</a>`)}`)),b.push(m)};if(L){let m=We.dirname(c);for(let g of L){if(/\.(?!html|md)\w+($|\?)/i.test(g))continue;if(g.replace(jt,"").startsWith("//localhost:")){x(g);continue}g=g.replace(/[?#].*$/,"").replace(/\.(html|md)$/,"");let R=decodeURIComponent(ot(g.startsWith("/")?g.slice(1):We.relative(e,We.resolve(m,g)))).replace(/\/index$/,"");(R.endsWith("/")?r.includes(R.slice(0,-1)):r.includes(R)||Vs.existsSync(We.resolve(m,f,`${R}.html`))||Vs.existsSync(We.resolve(m,f,`${R}/index.html`)))||x(g)}}let D={title:sb(a,P,C),titleTemplate:P.titleTemplate,description:ub(P),frontmatter:P,headers:V,relativePath:l,path:We.join(e,l)};o&&(D.lastUpdated=await xr(c));let d="ValaxyMain";function w(){return["main-header","main-header-after","main-nav","main-content","main-content-after","main-nav-before","main-nav-after","comment","footer","aside","aside-custom"].map(R=>`<template #${R}><slot name="${R}" /></template>`).join("")}let O=[...mb(N?.scripts.map(m=>m.content)??[],D,u),`<template><${d} :frontmatter="frontmatter" :data="data">`,`<template #main-content-md>${om($,u,nb)}</template>`,w(),"<slot />",`</${d}></template>`,...N?.styles.map(m=>m.content)??[],...N?.customBlocks.map(m=>m.content)??[]].join(`
@@ -70,13 +70,13 @@ ${a}</script>`);return e}import{cyan as hb,red as gb,yellow as yb}from"kolorist"
70
70
  `)}function Cb(e){let t=e.addons.filter(o=>o.global).filter(o=>Yt.default.existsSync(Wt(o.root,"./App.vue"))),r=o=>`Addon${xb(o)}App`,n=t.map(o=>`import ${r(o.name)} from "${o.name}/App.vue"`).join(`
71
71
  `),i=t.map(o=>`{ component: ${r(o.name)}, props: ${JSON.stringify(o.props)} }`).join(",");return`${n}
72
72
  export default [${i}]`}var wb='import { defineComponent } from "vue"; export default defineComponent({ render: () => null });';function um(e){let t=Wt(e,"App.vue");return Yt.default.existsSync(t)?[`import AppVue from "${re(t)}"`,"export default AppVue"].join(`
73
- `):wb}function cm(e,t={}){let{config:r}=e,n="/@valaxy",i=e.roots,o,s=!1,a;return{name:"valaxy:loader",enforce:"pre",async configResolved(u){a=u,o=await sm(e.userRoot,r.markdown||{katex:{}},e.pages,a.define,a.command==="build",e.config.siteConfig.lastUpdated)},configureServer(u){u.watcher.add([e.configFile,e.clientRoot,e.themeRoot,e.userRoot])},resolveId(u){return u.startsWith(n)?u:null},load(u){if(u==="/@valaxyjs/config")return`export default ${JSON.stringify(JSON.stringify(r))}`;if(u==="/@valaxyjs/context")return`export default ${JSON.stringify(JSON.stringify({userRoot:e.userRoot}))}`;if(u==="/@valaxyjs/styles")return Sb(i,e);if(u==="/@valaxyjs/locales")return bb(i);if(u==="/@valaxyjs/addons")return Cb(e);if(u==="/@valaxyjs/UserAppVue")return um(e.userRoot);if(u==="/@valaxyjs/ThemeAppVue")return um(e.themeRoot);if(u.startsWith(n))return{code:"",map:{mappings:""}}},async transform(u,p){if(p.endsWith(".md")){am(u,p),u.replace("{%","{%"),u.replace("%}","%}");let{vueSrc:c,deadLinks:f,includes:l}=await o(u,p,a.publicDir);return f.length&&(s=!0),l.length&&l.forEach(y=>{this.addWatchFile(y)}),c}},renderStart(){if(s&&!r.ignoreDeadLinks)throw new Error("One or more pages contain dead links.")},async handleHotUpdate(u){let{file:p,server:c,read:f}=u,l=h=>{t.onConfigReload?.(h,e.config),Object.assign(e.config,h),r=h;let E=["/@valaxyjs/config","/@valaxyjs/context"];return[...Array.from(E).map(S=>c.moduleGraph.getModuleById(S))].filter(S=>!!S)};if([e.configFile].includes(p)){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===e.siteConfigFile){let{siteConfig:h}=await Nn(e.userRoot);return r.siteConfig=$e(h,ks),l(r)}if(p===e.themeConfigFile){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===_b(e.themeRoot,"valaxy.config.ts")){let h=Ps(e),E=Ht(e.config,h),{config:_}=await Os(e,E);return l(_)}if(p.endsWith(".md")){let h=await f(),{pageData:E,vueSrc:_}=await o(h,p,Wt(e.userRoot,"public")),$={path:`/${ot(Eb(`${e.userRoot}/pages`,p))}`,pageData:E};c.ws.send({type:"custom",event:"valaxy:pageData",data:$}),u.read=()=>_}}}}var Us=new Rb({html:!0}),Mb=(e="",t="html")=>{switch(t){case"md":return e;case"html":return Us.render(e);case"text":return Db(Us.render(e))}};async function Rr(e,t={}){let{roots:r,config:n}=e,i=await Yd(e),o=cm(e,t);await qs(Us,n.markdown,!0);let s=new Set(["annotation","math","menclose","mfrac","mglyph","mi","mlabeledtr","mn","mo","mover","mpadded","mphantom","mroot","mrow","mspace","msqrt","mstyle","msub","msubsup","msup","mtable","mtd","mtext","mtr","munder","munderover","semantics","meting-js"]);return[Fb({include:[/\.vue$/,/\.md$/],template:{compilerOptions:{isCustomElement:a=>s.has(a)},...n.vue?.template},...n.vue}),Xd(e),Qd(e),o,Ob({extensions:["vue","md"],dirs:r.map(a=>`${a}/pages`),...n.pages,async extendRoute(a,u){let p=a.component,c={};if(a.meta?a.meta.frontmatter||(a.meta.frontmatter=c):a.meta={frontmatter:c},a.path=encodeURI(a.path),a.path==="/"&&(a.meta.layout="home"),r.forEach(f=>{let l=f+a.component;Yn.existsSync(l)&&(p=l)}),a.path.startsWith("/posts/")&&(a.meta.layout="post"),p.endsWith(".md")){let f=Yn.readFileSync(p,"utf-8"),{data:l,excerpt:y,content:h}=kb(f,{excerpt_separator:Mn}),E=e.config.siteConfig.lastUpdated,_=e.config.siteConfig.date?.format;if(l.date||(l.date=Yn.statSync(p).mtime),l.date=lm(l.date).format(_),E&&(l.updated||(l.updated=Yn.statSync(p).ctime)),l.updated=lm(l.updated).format(_),a.meta=Object.assign(a.meta,{frontmatter:Object.assign(c,l),excerpt:y?Mb(y,l.excerpt_type):""}),l.layout&&(a.meta.layout=l.layout),a.meta.frontmatter?.updated||(a.meta.frontmatter.updated=a.meta.frontmatter.date),a.meta.frontmatter.tags){let S=a.meta.frontmatter.tags;typeof S=="string"&&(a.meta.frontmatter.tags=[S])}n.siteConfig.statistics.enable&&em({options:n.siteConfig.statistics,route:a}),n.extendMd?.({route:a,data:l,excerpt:y,content:h,path:p})}return n.pages?.extendRoute?.(a,u),a}}),Pb({layoutsDirs:r.map(a=>`${a}/layouts`)}),Tb({extensions:["vue","md"],include:[/\.vue$/,/\.vue\?vue/,/\.md$/],exclude:[],allowOverrides:!0,dirs:r.map(a=>`${a}/components`).concat(r.map(a=>`${a}/layouts`)).concat(["src/components","components"]),dts:`${e.userRoot}/components.d.ts`,...n.components}),i,$b({runtimeOnly:!0,compositionOnly:!0,include:r.map(a=>`${a}/locales/**`)}),Ab(),Zd(e)]}async function fm(e,t={},r={}){return process.env.EDITOR=process.env.EDITOR||"code",await Ib(Nb(t,{plugins:await Rr(e,r)}))}var zn;function Ys(e,t,r){console.log(),console.log(` ${Gs("\u{1F30C} Valaxy")} ${pm(`v${Jr}`)}`),console.log(),console.log(`${Ye(" \u{1FA90} theme ")} > ${e.theme?Hb(e.theme):jb("none")}`),console.log(` ${Ye("\u{1F4C1}")} ${Ye(Lb.resolve(e.userRoot))}`),t&&(console.log(),console.log(`${Ye(" Preview ")} > ${Bb(`http://localhost:${Gs(t)}/`)}`),r&&Object.values(qb.networkInterfaces()).forEach(n=>(n||[]).filter(i=>i.family==="IPv4"&&!i.address.includes("127.0.0.1")).forEach(({address:i})=>{console.log(`${Ye(" Network ")} > ${pm(`http://${i}:${Gs(t)}/`)}`)})),console.log(),console.log(`${Ye(" shortcuts ")} > ${Ws("r")}${Ye("estart | ")}${Ws("o")}${Ye("pen | ")}${Ws("e")}${Ye("dit")}`)),console.log()}async function kr(e,t){zn&&await zn.close();let r=Ub(await Gn(e,"serve"),t);try{zn=await fm(e,r,{async onConfigReload(n,i,o=!1){o&&(dm.info("[valaxy]",`${Vb("force")} reload the server`),kr(e,t));let s=!1;n.theme!==i.theme&&(s=!0),s&&kr(e,t)}}),await zn.listen()}catch(n){dm.error(`failed to start server. error:
74
- `),console.error(n),process.exit(1)}}function hm(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),mm.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(t,r)=>{if(r.ctrl&&r.name==="c")process.exit();else{let[n]=e.filter(i=>i.name===t);if(n)try{n.action()}catch(i){console.error(`Failed to execute shortcut ${n.fullName}`,i)}}})}var Kn=Q(Re(),1);import{resolve as Gb}from"node:path";import{mergeConfig as gm,build as Wb}from"vite";import{build as Yb}from"vite-ssg/node";import zb from"vite-ssg-sitemap";import Kb from"consola";async function ym(e,t={}){let r=gm(t,{plugins:await Rr(e)});await Wb(r)}async function vm(e,t={}){let r={plugins:await Rr(e),ssr:{noExternal:["workbox-window",/vue-i18n/]}};r.ssgOptions={script:"async",formatting:"minify",includedRoutes(i,o){let s=["/:..all",Wp],a=i.filter(c=>c.startsWith("/posts/")).length,u=Math.ceil(a/e.config.siteConfig.pageSize),p=Array.from({length:u},(c,f)=>f+1);return o.filter(c=>!s.includes(c.path)).flatMap(c=>c.path==="/page/:page"?p.map(f=>`/page/${f}`):c.path)},onFinished(){zb({hostname:e.config.siteConfig.url})}};let n=gm(r,t);await Yb({},n)}var Em=async e=>{let{userRoot:t}=e,r=Gb(t,"dist/index.html");if(Kn.default.existsSync(r)){Kb.info("post process for ssg...");let n=await Kn.default.readFile(r,"utf-8"),i="</html>";if(!n.endsWith(i)){let o=n.lastIndexOf(i);await Kn.default.writeFile(r,n.slice(0,o+i.length),"utf-8")}}};var Sm=Q(Pn(),1),Xn=Q(Re(),1);import{dirname as Qb}from"node:path";import{cyan as Zb,dim as eC}from"kolorist";import tC from"gray-matter";import rC from"markdown-it";import{Feed as nC}from"feed";import Jn from"consola";var zs=Q(Re(),1);import _m from"dayjs";async function Jb(e){return await xr(e,"created")||(await zs.default.stat(e)).ctime}async function Xb(e){return await xr(e,"created")||(await zs.default.stat(e)).mtime}async function xm(e,t,r="YYYY-MM-DD HH:mm:ss",n=!0){e.date||(e.date=await Jb(t)),e.date=_m(e.date).format(r),n&&(e.updated||(e.updated=await Xb(t)),e.updated=_m(e.updated).format(r))}var iC=rC({html:!0,breaks:!0,linkify:!0});async function bm(e){let{config:t}=e,r=t.siteConfig;if(!r.url||r.url==="/"){Jn.error("You must set `url` (like `https://example.com`) in `site.config.ts` to generate rss.");return}let n=r.url,i=r.url.slice(0,-1),o={name:r.author?.name,email:r.author?.email,link:r.author?.link};Jn.info(`RSS Site Url: ${Zb(n)}`);let s=r.license?.type==="zero"?"1.0":"4.0",a={title:r.title||"Valaxy Blog",description:r.description,id:n||"valaxy",link:n,copyright:`CC ${r.license?.type?.toUpperCase()} ${s} ${new Date().getFullYear()} \xA9 ${r.author?.name}`,feedLinks:{json:`${n}feed.json`,atom:`${n}feed.atom`,rss:`${n}feed.xml`}},u=await(0,Sm.default)(`${e.userRoot}/pages/posts/**/*.md`),p=[];for await(let h of u){let E=Xn.default.readFileSync(h,"utf-8"),{data:_,content:S,excerpt:$}=tC(E,{excerpt_separator:Mn});if(_.draft){Jn.warn(`Ignore draft post: ${eC(h)}`);continue}if(_.hide)continue;await xm(_,h,r.date?.format,r.lastUpdated);let P=iC.render($||S.slice(0,100)).replace('src="/',`src="${i}/`);_.image?.startsWith("/")&&(_.image=i+_.image),p.push({title:"",..._,id:(_.id||"").toString(),date:new Date(_.date),published:new Date(_.updated||_.date),content:P,author:[o],link:i+h.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,"")})}p.sort((h,E)=>+new Date(E.published||E.date)-+new Date(h.published||h.date));let c=r.author?.avatar||"/favicon.svg";a.author=o,a.image=Yp(c)?r.author?.avatar:`${i}${As("/",c)}`,a.favicon=`${i}${r.feed?.favicon||r.favicon}`;let f=new nC(a);p.forEach(h=>f.addItem(h)),await Xn.default.ensureDir(Qb(`./dist/${r.feed?.name} || 'feed.xml'`));let l="./dist";["xml","atom","json"].forEach(h=>{let E="",_=`${l}/${r.feed?.name||"feed"}.${h}`;h==="xml"?E=f.rss2():h==="atom"?(r.feed?.name||(_=`${l}/atom.xml`),E=f.atom1()):h==="json"&&(E=f.json1()),Xn.default.writeFileSync(_,E,"utf-8"),Jn.info(`${h}: ${_}`)})}var Qn=Q(Re(),1),Cm=Q(Pn(),1);import Ks from"consola";import oC from"gray-matter";import{cyan as sC,dim as wm}from"kolorist";function zt(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}async function aC(e){Ks.info(`Generate List for Fuse Search by (${sC("fuse.js")}) ...`);let t=await(0,Cm.default)(`${e.userRoot}/pages/posts/**/*.md`),r=[];for await(let n of t){let i=Qn.default.readFileSync(n,"utf-8"),{data:o,excerpt:s,content:a}=oC(i,{excerpt_separator:"<!-- more -->"});if(o.draft){Ks.warn(`Ignore draft post: ${wm(n)}`);continue}o.hide||r.push({title:o.title||"",tags:(typeof o.tags=="string"?[o.tags]:o.tags)||[],categories:o.categories||[],author:e.config.siteConfig.author.name,excerpt:s||a.slice(0,100),link:encodeURI(n.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,""))})}return r}var Am=e=>{e.command("fuse [root]","generate fuse list for search",t=>zt(t).strict().help(),async({root:t})=>{yr();let r=await De({userRoot:t},"build"),n=await aC(r);await Qn.default.ensureDir("./dist");let i=`${r.userRoot}/dist/fuse-list.json`;Qn.default.writeJSONSync(i,n),Ks.info(`Generate fuse list in ${wm(i)}`)})};var uh=Q(nh(),1);import HC from"consola";import{writeFile as MC}from"node:fs/promises";import{join as sh,resolve as IC}from"node:path";import{render as NC}from"ejs";import LC from"dayjs";import{ensureSuffix as qC}from"@antfu/utils";import{access as TC}from"node:fs/promises";async function oi(e){try{return await TC(e),!0}catch{return!1}}import $C from"node:path";import{readFile as DC}from"node:fs/promises";var Pr=process.cwd(),ih=`---
73
+ `):wb}function cm(e,t={}){let{config:r}=e,n="/@valaxy",i=e.roots,o,s=!1,a;return{name:"valaxy:loader",enforce:"pre",async configResolved(u){a=u,o=await sm(e.userRoot,r.markdown||{katex:{}},e.pages,a.define,a.command==="build",e.config.siteConfig.lastUpdated)},configureServer(u){u.watcher.add([e.configFile,e.clientRoot,e.themeRoot,e.userRoot])},resolveId(u){return u.startsWith(n)?u:null},load(u){if(u==="/@valaxyjs/config")return`export default ${JSON.stringify(JSON.stringify(r))}`;if(u==="/@valaxyjs/context")return`export default ${JSON.stringify(JSON.stringify({userRoot:e.userRoot}))}`;if(u==="/@valaxyjs/styles")return Sb(i,e);if(u==="/@valaxyjs/locales")return bb(i);if(u==="/@valaxyjs/addons")return Cb(e);if(u==="/@valaxyjs/UserAppVue")return um(e.userRoot);if(u==="/@valaxyjs/ThemeAppVue")return um(e.themeRoot);if(u.startsWith(n))return{code:"",map:{mappings:""}}},async transform(u,p){if(p.endsWith(".md")){am(u,p),u.replace("{%","{%"),u.replace("%}","%}");let{vueSrc:c,deadLinks:f,includes:l}=await o(u,p,a.publicDir);return f.length&&(s=!0),l.length&&l.forEach(y=>{this.addWatchFile(y)}),c}},renderStart(){if(s&&!r.ignoreDeadLinks)throw new Error("One or more pages contain dead links.")},async handleHotUpdate(u){let{file:p,server:c,read:f}=u,l=h=>{t.onConfigReload?.(h,e.config),Object.assign(e.config,h),r=h;let E=["/@valaxyjs/config","/@valaxyjs/context"];return[...Array.from(E).map(S=>c.moduleGraph.getModuleById(S))].filter(S=>!!S)};if([e.configFile].includes(p)){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===e.siteConfigFile){let{siteConfig:h}=await Nn(e.userRoot);return r.siteConfig=$e(h,ks),l(r)}if(p===e.themeConfigFile){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===_b(e.themeRoot,"valaxy.config.ts")){let h=Ps(e),E=Ht(e.config,h),{config:_}=await Os(e,E);return l(_)}if(p.endsWith(".md")){let h=await f(),{pageData:E,vueSrc:_}=await o(h,p,Wt(e.userRoot,"public")),$={path:`/${ot(Eb(`${e.userRoot}/pages`,p))}`,pageData:E};c.ws.send({type:"custom",event:"valaxy:pageData",data:$}),u.read=()=>_}}}}var Us=new Rb({html:!0});function Mb(e="",t="html"){switch(t){case"md":return e;case"html":return Us.render(e);case"text":return Db(Us.render(e))}}async function Rr(e,t={}){let{roots:r,config:n}=e,i=await Yd(e),o=cm(e,t);await qs(Us,n.markdown,!0);let s=new Set(["annotation","math","menclose","mfrac","mglyph","mi","mlabeledtr","mn","mo","mover","mpadded","mphantom","mroot","mrow","mspace","msqrt","mstyle","msub","msubsup","msup","mtable","mtd","mtext","mtr","munder","munderover","semantics","meting-js"]);return[Fb({include:[/\.vue$/,/\.md$/],template:{compilerOptions:{isCustomElement:a=>s.has(a)},...n.vue?.template},...n.vue}),Xd(e),Qd(e),o,Ob({extensions:["vue","md"],dirs:r.map(a=>`${a}/pages`),...n.pages,async extendRoute(a,u){let p=a.component,c={};if(a.meta?a.meta.frontmatter||(a.meta.frontmatter=c):a.meta={frontmatter:c},a.path=encodeURI(a.path),a.path==="/"&&(a.meta.layout="home"),r.forEach(f=>{let l=f+a.component;Yn.existsSync(l)&&(p=l)}),a.path.startsWith("/posts/")&&(a.meta.layout="post"),p.endsWith(".md")){let f=Yn.readFileSync(p,"utf-8"),{data:l,excerpt:y,content:h}=kb(f,{excerpt_separator:Mn}),E=e.config.siteConfig.lastUpdated,_=e.config.siteConfig.date?.format;if(l.date||(l.date=Yn.statSync(p).mtime),l.date=lm(l.date).format(_),E&&(l.updated||(l.updated=Yn.statSync(p).ctime)),l.updated=lm(l.updated).format(_),a.meta=Object.assign(a.meta,{frontmatter:Object.assign(c,l),excerpt:y?Mb(y,l.excerpt_type):""}),l.layout&&(a.meta.layout=l.layout),a.meta.frontmatter?.updated||(a.meta.frontmatter.updated=a.meta.frontmatter.date),a.meta.frontmatter.tags){let S=a.meta.frontmatter.tags;typeof S=="string"&&(a.meta.frontmatter.tags=[S])}n.siteConfig.statistics.enable&&em({options:n.siteConfig.statistics,route:a}),n.extendMd?.({route:a,data:l,excerpt:y,content:h,path:p})}return n.pages?.extendRoute?.(a,u),a}}),Pb({layoutsDirs:r.map(a=>`${a}/layouts`)}),Tb({extensions:["vue","md"],include:[/\.vue$/,/\.vue\?vue/,/\.md$/],exclude:[],allowOverrides:!0,dirs:r.map(a=>`${a}/components`).concat(r.map(a=>`${a}/layouts`)).concat(["src/components","components"]),dts:`${e.userRoot}/components.d.ts`,...n.components}),i,$b({runtimeOnly:!0,compositionOnly:!0,include:r.map(a=>`${a}/locales/**`)}),Ab(),Zd(e)]}async function fm(e,t={},r={}){return process.env.EDITOR=process.env.EDITOR||"code",await Ib(Nb(t,{plugins:await Rr(e,r)}))}var zn;function Ys(e,t,r){console.log(),console.log(` ${Gs("\u{1F30C} Valaxy")} ${pm(`v${Jr}`)}`),console.log(),console.log(`${Ye(" \u{1FA90} theme ")} > ${e.theme?Hb(e.theme):jb("none")}`),console.log(` ${Ye("\u{1F4C1}")} ${Ye(Lb.resolve(e.userRoot))}`),t&&(console.log(),console.log(`${Ye(" Preview ")} > ${Bb(`http://localhost:${Gs(t)}/`)}`),r&&Object.values(qb.networkInterfaces()).forEach(n=>(n||[]).filter(i=>i.family==="IPv4"&&!i.address.includes("127.0.0.1")).forEach(({address:i})=>{console.log(`${Ye(" Network ")} > ${pm(`http://${i}:${Gs(t)}/`)}`)})),console.log(),console.log(`${Ye(" shortcuts ")} > ${Ws("r")}${Ye("estart | ")}${Ws("o")}${Ye("pen | ")}${Ws("e")}${Ye("dit")}`)),console.log()}async function kr(e,t){zn&&await zn.close();let r=Ub(await Gn(e,"serve"),t);try{zn=await fm(e,r,{async onConfigReload(n,i,o=!1){o&&(dm.info("[valaxy]",`${Vb("force")} reload the server`),kr(e,t));let s=!1;n.theme!==i.theme&&(s=!0),s&&kr(e,t)}}),await zn.listen()}catch(n){dm.error(`failed to start server. error:
74
+ `),console.error(n),process.exit(1)}}function hm(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),mm.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(t,r)=>{if(r.ctrl&&r.name==="c")process.exit();else{let[n]=e.filter(i=>i.name===t);if(n)try{n.action()}catch(i){console.error(`Failed to execute shortcut ${n.fullName}`,i)}}})}var Kn=Q(Re(),1);import{resolve as Gb}from"node:path";import{mergeConfig as gm,build as Wb}from"vite";import{build as Yb}from"vite-ssg/node";import zb from"vite-ssg-sitemap";import Kb from"consola";async function ym(e,t={}){let r=gm(t,{plugins:await Rr(e)});await Wb(r)}async function vm(e,t={}){let r={plugins:await Rr(e),ssr:{noExternal:["workbox-window",/vue-i18n/]}};r.ssgOptions={script:"async",formatting:"minify",includedRoutes(i,o){let s=["/:..all",Wp],a=i.filter(c=>c.startsWith("/posts/")).length,u=Math.ceil(a/e.config.siteConfig.pageSize),p=Array.from({length:u},(c,f)=>f+1);return o.filter(c=>!s.includes(c.path)).flatMap(c=>c.path==="/page/:page"?p.map(f=>`/page/${f}`):c.path)},onFinished(){zb({hostname:e.config.siteConfig.url})}};let n=gm(r,t);await Yb({},n)}async function Em(e){let{userRoot:t}=e,r=Gb(t,"dist/index.html");if(Kn.default.existsSync(r)){Kb.info("post process for ssg...");let n=await Kn.default.readFile(r,"utf-8"),i="</html>";if(!n.endsWith(i)){let o=n.lastIndexOf(i);await Kn.default.writeFile(r,n.slice(0,o+i.length),"utf-8")}}}var Sm=Q(Pn(),1),Xn=Q(Re(),1);import{dirname as Qb}from"node:path";import{cyan as Zb,dim as eC}from"kolorist";import tC from"gray-matter";import rC from"markdown-it";import{Feed as nC}from"feed";import Jn from"consola";var zs=Q(Re(),1);import _m from"dayjs";async function Jb(e){return await xr(e,"created")||(await zs.default.stat(e)).ctime}async function Xb(e){return await xr(e,"created")||(await zs.default.stat(e)).mtime}async function xm(e,t,r="YYYY-MM-DD HH:mm:ss",n=!0){e.date||(e.date=await Jb(t)),e.date=_m(e.date).format(r),n&&(e.updated||(e.updated=await Xb(t)),e.updated=_m(e.updated).format(r))}var iC=rC({html:!0,breaks:!0,linkify:!0});async function bm(e){let{config:t}=e,r=t.siteConfig;if(!r.url||r.url==="/"){Jn.error("You must set `url` (like `https://example.com`) in `site.config.ts` to generate rss.");return}let n=r.url,i=r.url.slice(0,-1),o={name:r.author?.name,email:r.author?.email,link:r.author?.link};Jn.info(`RSS Site Url: ${Zb(n)}`);let s=r.license?.type==="zero"?"1.0":"4.0",a={title:r.title||"Valaxy Blog",description:r.description,id:n||"valaxy",link:n,copyright:`CC ${r.license?.type?.toUpperCase()} ${s} ${new Date().getFullYear()} \xA9 ${r.author?.name}`,feedLinks:{json:`${n}feed.json`,atom:`${n}feed.atom`,rss:`${n}feed.xml`}},u=await(0,Sm.default)(`${e.userRoot}/pages/posts/**/*.md`),p=[];for await(let h of u){let E=Xn.default.readFileSync(h,"utf-8"),{data:_,content:S,excerpt:$}=tC(E,{excerpt_separator:Mn});if(_.draft){Jn.warn(`Ignore draft post: ${eC(h)}`);continue}if(_.hide)continue;await xm(_,h,r.date?.format,r.lastUpdated);let P=iC.render($||S.slice(0,100)).replace('src="/',`src="${i}/`);_.image?.startsWith("/")&&(_.image=i+_.image),p.push({title:"",..._,id:(_.id||"").toString(),date:new Date(_.date),published:new Date(_.updated||_.date),content:P,author:[o],link:i+h.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,"")})}p.sort((h,E)=>+new Date(E.published||E.date)-+new Date(h.published||h.date));let c=r.author?.avatar||"/favicon.svg";a.author=o,a.image=Yp(c)?r.author?.avatar:`${i}${As("/",c)}`,a.favicon=`${i}${r.feed?.favicon||r.favicon}`;let f=new nC(a);p.forEach(h=>f.addItem(h)),await Xn.default.ensureDir(Qb(`./dist/${r.feed?.name} || 'feed.xml'`));let l="./dist";["xml","atom","json"].forEach(h=>{let E="",_=`${l}/${r.feed?.name||"feed"}.${h}`;h==="xml"?E=f.rss2():h==="atom"?(r.feed?.name||(_=`${l}/atom.xml`),E=f.atom1()):h==="json"&&(E=f.json1()),Xn.default.writeFileSync(_,E,"utf-8"),Jn.info(`${h}: ${_}`)})}var Qn=Q(Re(),1),Cm=Q(Pn(),1);import Ks from"consola";import oC from"gray-matter";import{cyan as sC,dim as wm}from"kolorist";function zt(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}async function aC(e){Ks.info(`Generate List for Fuse Search by (${sC("fuse.js")}) ...`);let t=await(0,Cm.default)(`${e.userRoot}/pages/posts/**/*.md`),r=[];for await(let n of t){let i=Qn.default.readFileSync(n,"utf-8"),{data:o,excerpt:s,content:a}=oC(i,{excerpt_separator:"<!-- more -->"});if(o.draft){Ks.warn(`Ignore draft post: ${wm(n)}`);continue}o.hide||r.push({title:o.title||"",tags:(typeof o.tags=="string"?[o.tags]:o.tags)||[],categories:o.categories||[],author:e.config.siteConfig.author.name,excerpt:s||a.slice(0,100),link:encodeURI(n.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,""))})}return r}function Am(e){e.command("fuse [root]","generate fuse list for search",t=>zt(t).strict().help(),async({root:t})=>{yr();let r=await De({userRoot:t},"build"),n=await aC(r);await Qn.default.ensureDir("./dist");let i=`${r.userRoot}/dist/fuse-list.json`;Qn.default.writeJSONSync(i,n),Ks.info(`Generate fuse list in ${wm(i)}`)})}var uh=Q(nh(),1);import HC from"consola";import{writeFile as MC}from"node:fs/promises";import{join as sh,resolve as IC}from"node:path";import{render as NC}from"ejs";import LC from"dayjs";import{ensureSuffix as qC}from"@antfu/utils";import{access as TC}from"node:fs/promises";async function oi(e){try{return await TC(e),!0}catch{return!1}}import $C from"node:path";import{readFile as DC}from"node:fs/promises";var Pr=process.cwd(),ih=`---
75
75
  layout: <%=layout%>
76
76
  title: <%=title%>
77
77
  date: <%=date%>
78
78
  ---
79
- `;var oh=async e=>{let{clientRoot:t,themeRoot:r}=await De({userRoot:Pr}),n=[Pr,r,t];for(let i of n){let o=$C.resolve(i,"scaffolds",`${e}.md`);if(await oi(o))return DC(o,"utf-8")}return!1};var BC=IC(Pr,"pages"),ah=async e=>{let{path:t,title:r}=e,n=t||sh("posts",r),i=0;for(;;){let o=sh(BC,n);if(i&&(o=`${o}-${i}`),o=qC(".md",o),!await oi(o)){let s=await jC(e);return MC(o,s,"utf-8"),o}i++}};async function jC({date:e,title:t,layout:r="post"}){let n=await oh(r);n||(n=ih);let i="YYYY-MM-DD HH:mm:ss";return NC(n,{title:t,layout:r,date:e?LC().format(i):""})}var ch=e=>{e.command("new <title>","Draft a new post",t=>{t.usage("$0 <title> -p [path] -l [layout]").positional("title",{describe:"The title of the new post",required:!0}).option("path",{alias:"p",type:"string",describe:"the path to generate new post. Customize the path of post to generate"}).option("layout",{alias:"l",type:"string",default:"post"}).option("date",{alias:"d",type:"boolean",default:!0,describe:"Generate post with the current date"}).strict().help()},async({title:t,path:r,date:n,layout:i})=>{let o=await ah({title:t,date:n,layout:i,path:r});HC.success(`[valaxy new]: successfully generated file ${(0,uh.magenta)(o)}`)})};var tr=UC(YC(process.argv)).scriptName("valaxy").usage("$0 [args]").version(Jr).showHelpOnFail(!1).alias("h","help").alias("v","version");tr.command("* [root]","Start a local server for Valaxy",e=>zt(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:"info",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:t,open:r,remote:n,log:i})=>{ys(),er.default.existsSync(Zt.resolve(e,"pages"))||process.exit(0);let o=t||await Ai(4859),s=await De({userRoot:e}),a=sa({configFile:Zt.resolve(s.clientRoot,"vite.config.ts"),server:{watch:{ignored:[`!${s.themeRoot}/**`,`${s.userRoot}/**.md`]},port:o,strictPort:!0,open:r,host:n?"0.0.0.0":"localhost"},logLevel:i},s.config.vite||{});await kr(s,a),Ys(s,o,n),hm([{name:"r",fullName:"restart",action(){kr(s,a)}},{name:"o",fullName:"open",action(){GC(`http://localhost:${o}`)}},{name:"e",fullName:"edit",action(){VC(`code "${e}"`)}}])});tr.command("build [root]","build your blog to static content",e=>zt(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("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({ssg:e,root:t,output:r,log:n})=>{yr();let i=await De({userRoot:t},"build");Ys(i);let o=sa(await Gn(i,"build"),i.config.vite||{}),s=sa(o,{configFile:Zt.resolve(i.clientRoot,"vite.config.ts"),build:{emptyOutDir:!0,outDir:Zt.resolve(i.userRoot,r)},logLevel:n}),a=Zt.resolve(i.clientRoot,"template.html"),u=Zt.resolve(i.clientRoot,"index.html");er.default.existsSync(a)&&await er.default.copyFile(a,u);let p=await Wn(i);await er.default.writeFile(u,p,"utf-8");try{if(e){si.info(`use ${WC("vite-ssg")} to do ssg build...`);try{await vm(i,s),await Em(i)}catch(c){si.error("[vite-ssg] An internal error occurred."),console.log(c)}}else si.info("use vite do spa build..."),await ym(i,s)}catch(c){console.log(c)}finally{await er.default.copyFile(a,u)}});tr.command("rss [root]","generate rss feed",e=>zt(e).strict().help(),async({root:e})=>{yr(),si.info("Generate RSS ...");let t=await De({userRoot:e},"build");await bm(t)});ch(tr);Am(tr);function HO(){tr.help().parse()}export{xr as a,Yp as b,ot as c,As as d,re as e,zp as f,Ht as g,Rs as h,Jp as i,Xp as j,rd as k,Ge as l,J_ as m,eR as n,X_ as o,tR as p,nR as q,Q_ as r,iR as s,ks as t,nd as u,oR as v,Os as w,De as x,Ps as y,Gn as z,Wn as A,fm as B,ym as C,vm as D,Em as E,tr as F,HO as G};
79
+ `;async function oh(e){let{clientRoot:t,themeRoot:r}=await De({userRoot:Pr}),n=[Pr,r,t];for(let i of n){let o=$C.resolve(i,"scaffolds",`${e}.md`);if(await oi(o))return DC(o,"utf-8")}return!1}var BC=IC(Pr,"pages");async function ah(e){let{path:t,title:r}=e,n=t||sh("posts",r),i=0;for(;;){let o=sh(BC,n);if(i&&(o=`${o}-${i}`),o=qC(".md",o),!await oi(o)){let s=await jC(e);return MC(o,s,"utf-8"),o}i++}}async function jC({date:e,title:t,layout:r="post"}){let n=await oh(r);n||(n=ih);let i="YYYY-MM-DD HH:mm:ss";return NC(n,{title:t,layout:r,date:e?LC().format(i):""})}function ch(e){e.command("new <title>","Draft a new post",t=>{t.usage("$0 <title> -p [path] -l [layout]").positional("title",{describe:"The title of the new post",required:!0}).option("path",{alias:"p",type:"string",describe:"the path to generate new post. Customize the path of post to generate"}).option("layout",{alias:"l",type:"string",default:"post"}).option("date",{alias:"d",type:"boolean",default:!0,describe:"Generate post with the current date"}).strict().help()},async({title:t,path:r,date:n,layout:i})=>{let o=await ah({title:t,date:n,layout:i,path:r});HC.success(`[valaxy new]: successfully generated file ${(0,uh.magenta)(o)}`)})}var tr=UC(YC(process.argv)).scriptName("valaxy").usage("$0 [args]").version(Jr).showHelpOnFail(!1).alias("h","help").alias("v","version");tr.command("* [root]","Start a local server for Valaxy",e=>zt(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:"info",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:t,open:r,remote:n,log:i})=>{ys(),er.default.existsSync(Zt.resolve(e,"pages"))||process.exit(0);let o=t||await Ai(4859),s=await De({userRoot:e}),a=sa({configFile:Zt.resolve(s.clientRoot,"vite.config.ts"),server:{watch:{ignored:[`!${s.themeRoot}/**`,`${s.userRoot}/**.md`]},port:o,strictPort:!0,open:r,host:n?"0.0.0.0":"localhost"},logLevel:i},s.config.vite||{});await kr(s,a),Ys(s,o,n),hm([{name:"r",fullName:"restart",action(){kr(s,a)}},{name:"o",fullName:"open",action(){GC(`http://localhost:${o}`)}},{name:"e",fullName:"edit",action(){VC(`code "${e}"`)}}])});tr.command("build [root]","build your blog to static content",e=>zt(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("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({ssg:e,root:t,output:r,log:n})=>{yr();let i=await De({userRoot:t},"build");Ys(i);let o=sa(await Gn(i,"build"),i.config.vite||{}),s=sa(o,{configFile:Zt.resolve(i.clientRoot,"vite.config.ts"),build:{emptyOutDir:!0,outDir:Zt.resolve(i.userRoot,r)},logLevel:n}),a=Zt.resolve(i.clientRoot,"template.html"),u=Zt.resolve(i.clientRoot,"index.html");er.default.existsSync(a)&&await er.default.copyFile(a,u);let p=await Wn(i);await er.default.writeFile(u,p,"utf-8");try{if(e){si.info(`use ${WC("vite-ssg")} to do ssg build...`);try{await vm(i,s),await Em(i)}catch(c){si.error("[vite-ssg] An internal error occurred."),console.log(c)}}else si.info("use vite do spa build..."),await ym(i,s)}catch(c){console.log(c)}finally{await er.default.copyFile(a,u)}});tr.command("rss [root]","generate rss feed",e=>zt(e).strict().help(),async({root:e})=>{yr(),si.info("Generate RSS ...");let t=await De({userRoot:e},"build");await bm(t)});ch(tr);Am(tr);function HO(){tr.help().parse()}export{xr as a,Yp as b,ot as c,As as d,re as e,zp as f,Ht as g,Rs as h,Jp as i,Xp as j,rd as k,Ge as l,J_ as m,eR as n,X_ as o,tR as p,nR as q,Q_ as r,iR as s,ks as t,nd as u,oR as v,Os as w,De as x,Ps as y,Gn as z,Wn as A,fm as B,ym as C,vm as D,Em as E,tr as F,HO as G};
80
80
  /*! Bundled license information:
81
81
 
82
82
  is-extglob/index.js:
@@ -14,21 +14,21 @@ GFS4: `),console.error(e)});K[se]||(ha=global[se]||[],ya(K,ha),K.close=function(
14
14
  `)+r,i=n+1,n=e.indexOf(`
15
15
  `,i)}while(n!==-1);return o+=e.substr(i),o};Um.exports={stringReplaceAll:_C,stringEncaseCRLFWithFirstIndex:xC}});var Jm=v((eO,Km)=>{"use strict";var SC=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Wm=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,bC=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,CC=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,wC=new Map([["n",`
16
16
  `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function zm(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):wC.get(e)||e}function AC(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),i;for(let o of n){let s=Number(o);if(!Number.isNaN(s))r.push(s);else if(i=o.match(bC))r.push(i[2].replace(CC,(a,u,p)=>u?zm(u):p));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`)}return r}function RC(e){Wm.lastIndex=0;let t=[],r;for(;(r=Wm.exec(e))!==null;){let n=r[1];if(r[2]){let i=AC(n,r[2]);t.push([n].concat(i))}else t.push([n])}return t}function Ym(e,t){let r={};for(let i of t)for(let o of i.styles)r[o[0]]=i.inverse?null:o.slice(1);let n=e;for(let[i,o]of Object.entries(r))if(Array.isArray(o)){if(!(i in n))throw new Error(`Unknown Chalk style: ${i}`);n=o.length>0?n[i](...o):n[i]}return n}Km.exports=(e,t)=>{let r=[],n=[],i=[];if(t.replace(SC,(o,s,a,u,p,c)=>{if(s)i.push(zm(s));else if(u){let f=i.join("");i=[],n.push(r.length===0?f:Ym(e,r)(f)),r.push({inverse:a,styles:RC(u)})}else if(p){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(Ym(e,r)(i.join(""))),i=[],r.pop()}else i.push(c)}),n.push(i.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var nh=v((tO,rh)=>{"use strict";var Or=Bm(),{stdout:ra,stderr:na}=Vm(),{stringReplaceAll:kC,stringEncaseCRLFWithFirstIndex:FC}=Gm(),{isArray:ti}=Array,Qm=["ansi","ansi","ansi256","ansi16m"],Qt=Object.create(null),OC=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=ra?ra.level:0;e.level=t.level===void 0?r:t.level},ia=class{constructor(t){return Zm(t)}},Zm=e=>{let t={};return OC(t,e),t.template=(...r)=>th(t.template,...r),Object.setPrototypeOf(t,ri.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=ia,t.template};function ri(e){return Zm(e)}for(let[e,t]of Object.entries(Or))Qt[e]={get(){let r=ni(this,oa(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};Qt.visible={get(){let e=ni(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var eh=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of eh)Qt[e]={get(){let{level:t}=this;return function(...r){let n=oa(Or.color[Qm[t]][e](...r),Or.color.close,this._styler);return ni(this,n,this._isEmpty)}}};for(let e of eh){let t="bg"+e[0].toUpperCase()+e.slice(1);Qt[t]={get(){let{level:r}=this;return function(...n){let i=oa(Or.bgColor[Qm[r]][e](...n),Or.bgColor.close,this._styler);return ni(this,i,this._isEmpty)}}}}var PC=Object.defineProperties(()=>{},{...Qt,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),oa=(e,t,r)=>{let n,i;return r===void 0?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},ni=(e,t,r)=>{let n=(...i)=>ti(i[0])&&ti(i[0].raw)?Xm(n,th(n,...i)):Xm(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,PC),n._generator=e,n._styler=t,n._isEmpty=r,n},Xm=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=kC(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
17
- `);return o!==-1&&(t=FC(t,i,n,o)),n+t+i},ta,th=(e,...t)=>{let[r]=t;if(!ti(r)||!ti(r.raw))return t.join(" ");let n=t.slice(1),i=[r.raw[0]];for(let o=1;o<r.length;o++)i.push(String(n[o-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[o]));return ta===void 0&&(ta=Jm()),ta(e,i.join(""))};Object.defineProperties(ri.prototype,Qt);var ii=ri();ii.supportsColor=ra;ii.stderr=ri({level:na?na.level:0});ii.stderr.supportsColor=na;rh.exports=ii});var er=Q(Re(),1);var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _child_process = require('child_process');var _yargs = require('yargs'); var _yargs2 = _interopRequireDefault(_yargs);var _vite = require('vite');var _open2 = require('open'); var _open3 = _interopRequireDefault(_open2);var _consola = require('consola'); var _consola2 = _interopRequireDefault(_consola);var _kolorist = require('kolorist');var _helpers = require('yargs/helpers');var Jr="0.14.21";var _net = require('net'); var _net2 = _interopRequireDefault(_net);async function Ai(e){return await w1(e)?e:await Ai(e+1)}function w1(e){return new Promise(t=>{let r=_net2.default.createServer(n=>{n.write(`Echo server\r
18
- `),n.pipe(n)});r.listen(e,"0.0.0.0"),r.on("error",()=>{t(!1)}),r.on("listening",()=>{r.close(),t(!0)})})}var ld=Q(Re(),1),fd=Q(Pi(),1),pd=Q(Pn(),1);var _utils = require('@antfu/utils');function ms(e){return e!==null&&typeof e=="object"}function hs(e,t,r=".",n){if(!ms(t))return hs(e,{},r,n);let i=Object.assign({},t);for(let o in e){if(o==="__proto__"||o==="constructor")continue;let s=e[o];s!=null&&(n&&n(i,o,s,r)||(Array.isArray(s)&&Array.isArray(i[o])?i[o]=s.concat(i[o]):ms(s)&&ms(i[o])?i[o]=hs(s,i[o],(r?`${r}.`:"")+o.toString(),n):i[o]=s))}return i}function gr(e){return(...t)=>t.reduce((r,n)=>hs(r,n,"",e),{})}var $e=gr(),sA=gr((e,t,r,n)=>{if(typeof e[t]<"u"&&typeof r=="function")return e[t]=r(e[t]),!0}),aA=gr((e,t,r,n)=>{if(Array.isArray(e[t])&&typeof r=="function")return e[t]=r(e[t]),!0});var gs=()=>process.env.NODE_ENV==="production",ys=(e="development")=>{process.env.NODE_ENV=e,Ae.level=gs()?2:3},yr=()=>ys("production");var Ae=_consola2.default.create({level:gs()?2:3});var td=Q(Up(),1);var _isinstalledglobally = require('is-installed-globally'); var _isinstalledglobally2 = _interopRequireDefault(_isinstalledglobally);var _globaldirs = require('global-dirs'); var _globaldirs2 = _interopRequireDefault(_globaldirs);var _crossspawn = require('cross-spawn');function xr(e,t="updated"){return new Promise((r,n)=>{let i=["log"];t==="updated"&&i.push("-1"),i.push('--pretty="%ci"',e),t==="created"&&i.push("|","tail","-1");let o=_crossspawn.spawn.call(void 0, "git",i),s="";o.stdout.on("data",a=>s+=String(a)),o.on("close",()=>{r(+new Date(s))}),o.on("error",()=>{r(0)})})}var Mn="<!-- more -->",jt=/^https?:/i,Gp=/^pathname:\/\//,Wp="/:all(.*)*";function Yp(e){return jt.test(e)}function ot(e){return e.replace(/\\/g,"/")}function As(e,t){return t.startsWith(e)?t:e+t}function re(e){return`/@fs${As("/",ot(e))}`}function zp(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}var _unconfig = require('unconfig');async function yt(e,t={}){let{config:r,sources:n}=await await _unconfig.loadConfig.call(void 0, {sources:{files:e,rewrite:t.rewrite},cwd:t.cwd||process.cwd()}),i=_vite.normalizePath.call(void 0, n[0]||"");return{config:r,configFile:i}}var Ht=gr((e,t,r)=>{if(_utils.isFunction.call(void 0, e[t])&&_utils.isFunction.call(void 0, r)&&(e[t]=function(...n){e[t].call(this,...n),r.call(this,...n)}),t==="vite")return e[t]=_vite.mergeConfig.call(void 0, e[t],r),!0});async function Rs(e,t){return yt("valaxy.config",{rewrite(r){return typeof r=="function"?r(t||{}):r},cwd:e})}async function Jp(e){let{config:t,configFile:r}=await Rs(e.userRoot||process.cwd());t&&Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "valaxyConfig")} from ${_kolorist.dim.call(void 0, r)}`);let n=e.theme||t.theme||"yun";return{config:t,configFile:r,theme:n}}async function Xp(e,t){let r={};for(let n of e){let{config:i,configFile:o}=await yt("index",{rewrite(s,a){return typeof s=="function"?s(n,t):s},cwd:n.root});i&&(n.configFile=o,r=Ht(i,r))}return r}var rd=e=>`JSON.parse(${JSON.stringify(JSON.stringify(e))})`;function Ge(e,t=!1,r={preserveSymlinks:!1}){try{return(0,td.sync)(e,r)}catch(n){_consola2.default.log(n)}if(_isinstalledglobally2.default){try{return I.resolve(_path.join.call(void 0, _globaldirs2.default.yarn.packages,e))}catch (e21){}try{return I.resolve(_path.join.call(void 0, _globaldirs2.default.npm.packages,e))}catch (e22){}}if(t)throw new Error(`Failed to resolve package ${e}`);_consola2.default.error(`Failed to resolve package ${e}`)}function J_(e){return e}var eR=J_;function X_(e){return e}var tR=X_;function nR(e){return e}function Q_(e){return e}var iR=Q_,ks= exports.t ={mode:"auto",url:"/",lang:"en",title:"Valaxy Blog",description:"A blog generated by Valaxy.",subtitle:"Next Generation Static Blog Framework.",author:{avatar:"https://www.yunyoujun.cn/images/avatar.jpg",email:"i@valaxy.site",link:"https://valaxy.site",name:"VALAXY Developer",status:{emoji:"\u{1F30C}",message:"The moonlight is beautiful."}},favicon:"/favicon.svg",feed:{name:"",favicon:"/favicon.svg"},social:[],date:{format:""},lastUpdated:!0,license:{enabled:!0,language:"",type:"by-nc-sa"},sponsor:{enable:!0,title:"\u8D5E\u52A9",methods:[]},search:{enable:!1,type:"fuse"},comment:{enable:!1},cdn:{prefix:"https://unpkg.com/"},mediumZoom:{enable:!1,selector:"",options:{}},statistics:{enable:!1,readTime:{speed:{cn:300,en:100}}},pageSize:7},nd= exports.u ={ignoreDeadLinks:!0,siteConfig:ks,theme:"yun",themeConfig:{pkg:{name:"",version:""}},runtimeConfig:{addons:{}},features:{katex:!0},vite:{build:{rollupOptions:{external:[]}}}};function oR(e){return e}var Fs=Q(Re(),1);var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);function In(e,t){if(!e)return"";if(zp(e))if(t){let r=_fs2.default.lstatSync(t).isFile();return _path.resolve.call(void 0, r?_path.dirname.call(void 0, t):t,e)}else throw new Error(`entry is required when ${e} is path`);else return _path.dirname.call(void 0, Ge(`${e}/package.json`)||"")}async function sd(e,t=process.cwd()){let r={},n=o=>{o&&(r[o.name]=$e(r[o.name]||{},o))};if(Array.isArray(e))for(let o of e){if(typeof o=="string"){n(await od(o,{cwd:t}));continue}typeof o=="object"&&n($e(await od(o.name,{cwd:t}),o||{}))}let i=Object.values(r).filter(o=>o.enable);return Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "addons:")} ${_kolorist.yellow.call(void 0, i.map(o=>o.name).join(", "))}`),i}async function od(e,t={}){let r=ix(e,t.cwd||process.cwd()),n=_path.resolve.call(void 0, r,"./package.json");if(!Fs.default.existsSync(n)){Ae.error(`No addon named ${e} found`);return}let i=await Fs.default.readJSON(n);return{enable:!0,name:i.name,global:!!i.global,root:r,options:{},props:{}}}function ix(e,t){let r=e.startsWith("valaxy-addon")||e.startsWith(".")?e:`valaxy-addon-${e}`;return In(r,t)}function ad(e,t){let r=e.startsWith("valaxy-theme")||e.startsWith(".")?e:`valaxy-theme-${e}`;return In(r,t)}async function ax(e){return yt("site.config",{cwd:e})}async function Nn(e){let{config:t,configFile:r}=await ax(e);return t&&Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "siteConfig")} from ${_kolorist.dim.call(void 0, r)}`),{siteConfig:t,siteConfigFile:r}}async function lx(e){return yt("theme.config",{cwd:e})}async function ud(e){let{config:t,configFile:r}=await lx(e);return t&&Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "themeConfig")} from ${_kolorist.dim.call(void 0, r)}`),{themeConfig:t,themeConfigFile:r}}var hx=(0,fd.default)("valaxy:options");async function gx(e){let{config:t,themeRoot:r,theme:n}=e,i=t.siteConfig;i.url=_utils.ensureSuffix.call(void 0, "/",i.url||""),i.cdn.prefix=_utils.ensureSuffix.call(void 0, "/",i.cdn.prefix||"");let o=_path.resolve.call(void 0, r,"package.json");try{t.themeConfig.pkg=await ld.default.readJson(o,"utf-8")}catch (e23){console.error(`valaxy-theme-${n} doesn't have package.json`)}}async function Os(e,t){let{clientRoot:r,themeRoot:n,userRoot:i}=e,o=await sd(t.addons||[],e.userRoot),s=await Xp(o,e);t=Ht(t,s);let a=$e(t,nd);e.config={...a,runtimeConfig:{addons:{}}},e.addons=o,o.forEach(f=>{e.config.runtimeConfig.addons[f.name]=f});let u=o.map(({root:f})=>f),p=o.map(({name:f})=>f);e.addonRoots=u,e.roots=_utils.uniq.call(void 0, [r,n,...u,i]);let c=_optionalChain([e, 'access', _3 => _3.config, 'access', _4 => _4.vite, 'optionalAccess', _5 => _5.build, 'optionalAccess', _6 => _6.rollupOptions, 'optionalAccess', _7 => _7.external])||[];return e.config.vite.build.rollupOptions.external=c.filter(f=>!p.includes(f)),await gx(e),e}async function De(e={userRoot:process.cwd()},t="dev"){let r=_path.dirname.call(void 0, Ge("valaxy/package.json",!0)),n=_path.resolve.call(void 0, r,"client"),i=_path.resolve.call(void 0, e.userRoot||process.cwd()),{config:o,configFile:s,theme:a}=await Jp(e),{siteConfig:u,siteConfigFile:p}=await Nn(e.userRoot),{themeConfig:c,themeConfigFile:f}=await ud(e.userRoot);o=$e({siteConfig:u},{themeConfig:c},o);let l=ad(a,e.userRoot),y=(await(0,pd.default)(["**.md"],{cwd:_path.resolve.call(void 0, i,"pages"),ignore:["**/node_modules"]})).sort(),h={mode:t,pkgRoot:r,clientRoot:n,userRoot:i,themeRoot:l,addonRoots:[],roots:[],theme:a,config:{...o,runtimeConfig:{addons:{}}},configFile:s||"",siteConfigFile:p||"",themeConfigFile:f||"",pages:y,addons:[]};hx(h);let E=await Ps(h),_=Ht(o,E);return h=await Os(h,_),h}async function Ps(e){Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "valaxy.config.ts")} from ${_kolorist.yellow.call(void 0, `theme(${e.theme})`)}`);let{config:t}=await Rs(e.themeRoot,e);return t}var _readline = require('readline'); var mm = _interopRequireWildcard(_readline);var _os = require('os'); var _os2 = _interopRequireDefault(_os);var _markdownit = require('markdown-it'); var _markdownit2 = _interopRequireDefault(_markdownit);var _graymatter = require('gray-matter'); var _graymatter2 = _interopRequireDefault(_graymatter);var _pluginvue = require('@vitejs/plugin-vue'); var _pluginvue2 = _interopRequireDefault(_pluginvue);var _vitepluginpages = require('vite-plugin-pages'); var _vitepluginpages2 = _interopRequireDefault(_vitepluginpages);var _vitepluginvuelayouts = require('vite-plugin-vue-layouts'); var _vitepluginvuelayouts2 = _interopRequireDefault(_vitepluginvuelayouts);var _vite3 = require('unplugin-vue-components/vite'); var _vite4 = _interopRequireDefault(_vite3);var _vite5 = require('@intlify/unplugin-vue-i18n/vite'); var _vite6 = _interopRequireDefault(_vite5);var _dayjs = require('dayjs'); var _dayjs2 = _interopRequireDefault(_dayjs);var _htmltotext = require('html-to-text');var _markdownitanchor = require('markdown-it-anchor'); var _markdownitanchor2 = _interopRequireDefault(_markdownitanchor);var _markdownitattrs = require('markdown-it-attrs'); var _markdownitattrs2 = _interopRequireDefault(_markdownitattrs);var _markdownitemoji = require('markdown-it-emoji'); var _markdownitemoji2 = _interopRequireDefault(_markdownitemoji);var _markdownittasklists = require('markdown-it-task-lists'); var _markdownittasklists2 = _interopRequireDefault(_markdownittasklists);var _html_blocksjs = require('markdown-it/lib/common/html_blocks.js'); var _html_blocksjs2 = _interopRequireDefault(_html_blocksjs);var vx="[a-zA-Z_:@][a-zA-Z0-9:._-]*",Ex="[^\"'=<>`\\x00-\\x20]+",_x="'[^']*'",xx='"[^"]*"',Sx="(?:"+Ex+"|"+_x+"|"+xx+")",Ts="(?:\\s+"+vx+"(?:\\s*=\\s*"+Sx+")?)",dd="<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/?>",md="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",bx="<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->",Cx="<[?][\\s\\S]*?[?]>",wx="<![A-Z]+\\s+[^>]*>",Ax="<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",Rx=new RegExp("^(?:"+dd+"|"+md+"|"+bx+"|"+Cx+"|"+wx+"|"+Ax+")"),kx=new RegExp("^(?:"+dd+"|"+md+")"),Fx=new RegExp("^<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/>"),Ox=new RegExp("^<([A-Za-z][A-Za-z0-9\\-]*)"+Ts+"*\\s*>.*<\\/\\1\\s*>"),Px=_html_blocksjs2.default,Tx=["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"],$x=["template","component","transition","transition-group","keep-alive","slot","teleport"],Dx=({blockTags:e,inlineTags:t})=>{let r=[...e,...Px],n=[...t,...Tx.filter(o=>!$x.includes(o))];return[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp("^</?(?!("+n.join("|")+")(?![\\w-]))[A-Za-z][A-Za-z0-9\\-]*(?=(\\s|/?>|$))"),/^$/,!0],[new RegExp(kx.source+"\\s*$"),/^$/,!1]]},Mx=e=>{let t=Dx(e);return(r,n,i,o)=>{let s,a,u,p=r.bMarks[n]+r.tShift[n],c=r.eMarks[n];if(r.sCount[n]-r.blkIndent>=4||!r.md.options.html||r.src.charCodeAt(p)!==60)return!1;for(u=r.src.slice(p,c),s=0;s<t.length&&!t[s][0].test(u);s++);if(s===t.length)return!1;if(o)return t[s][2];if(s===6){let l=_nullishCoalesce(u.match(Fx), () => (u.match(Ox)));if(l){r.line=n+1;let y=r.push("html_inline","",0);return y.content=l[0],y.map=[n,r.line],y=r.push("inline","",0),y.content=u.slice(l[0].length),y.map=[n,r.line],y.children=[],!0}}if(a=n+1,!t[s][1].test(u)){for(;a<i&&!(r.sCount[a]<r.blkIndent);a++)if(p=r.bMarks[a]+r.tShift[a],c=r.eMarks[a],u=r.src.slice(p,c),t[s][1].test(u)){u.length!==0&&a++;break}}r.line=a;let f=r.push("html_block","",0);return f.map=[n,a],f.content=r.getLines(n,a,r.blkIndent,!0),!0}},Ix=e=>{let t=e|32;return t>=97&&t<=122},Nx=(e,t)=>{let{pos:r}=e;if(!e.md.options.html)return!1;let n=e.posMax;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;let i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!Ix(i))return!1;let o=e.src.slice(r).match(Rx);if(!o)return!1;if(!t){let s=e.push("html_inline","",0);s.content=e.src.slice(r,r+o[0].length)}return e.pos+=o[0].length,!0},hd=(e,{blockTags:t=[],inlineTags:r=[]}={})=>{let n=Mx({blockTags:t,inlineTags:r});e.block.ruler.at("html_block",n,{alt:["paragraph","reference","blockquote"]}),e.inline.ruler.at("html_inline",Nx)};var gd=(e,{grayMatterOptions:t,renderExcerpt:r=!0}={})=>{let n=e.render.bind(e);e.render=(i,o={})=>{let{data:s,content:a,excerpt:u=""}=_graymatter2.default.call(void 0, i,t);return o.content=a,o.frontmatter={...o.frontmatter,...s},o.excerpt=r&&u?n(u,{...o}):u,n(a,o)}};var qx={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},Bx=/[&<>'"]/g,vt=e=>e.replace(Bx,t=>qx[t]);var Sr=(e,{shouldAllowHtml:t,shouldEscapeText:r})=>{let n=_nullishCoalesce(e.children, () => ([])),i=["text","emoji","code_inline"];return t&&i.push("html_inline"),n.filter(s=>i.includes(s.type)&&!_optionalChain([s, 'access', _8 => _8.meta, 'optionalAccess', _9 => _9.isPermalinkSymbol])).reduce((s,a)=>r&&(a.type==="code_inline"||a.type==="text")?`${s}${vt(a.content)}`:`${s}${a.content}`,"").trim()},qn=(e,{level:t,shouldAllowHtml:r,shouldAllowNested:n,shouldEscapeText:i,slugify:o,format:s})=>{let a=[],u=[],p=c=>{for(;u.length!==0&&c.level<=u[0].level;)u.shift();u.length===0?(a.push(c),u.push(c)):(u[0].children.push(c),u.unshift(c))};for(let c=0;c<e.length;c+=1){let f=e[c];if(_optionalChain([f, 'optionalAccess', _10 => _10.type])!=="heading_open"||_optionalChain([f, 'optionalAccess', _11 => _11.level])!==0&&!n)continue;let l=Number.parseInt(f.tag.slice(1),10);if(!t.includes(l))continue;let y=e[c+1];if(!y)continue;let h=Sr(y,{shouldAllowHtml:r,shouldEscapeText:i}),E=_nullishCoalesce(f.attrGet("id"), () => (o(h)));p({level:l,title:_nullishCoalesce(_optionalChain([s, 'optionalCall', _12 => _12(h)]), () => (h)),slug:E,link:`#${E}`,children:[]})}return a},jx=/[\u0000-\u001f]/g,Hx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’<>,.?/]+/g,Vx=/[\u0300-\u036F]/g,Bn=e=>e.normalize("NFKD").replace(Vx,"").replace(jx,"").replace(Hx,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var yd=(e,{level:t=[2,3],shouldAllowNested:r=!1,slugify:n=Bn,format:i}={})=>{let o=e.renderer.render.bind(e.renderer);e.renderer.render=(s,a,u)=>(u.headers=qn(s,{level:t,shouldAllowHtml:!1,shouldAllowNested:r,shouldEscapeText:!1,slugify:n,format:i}),o(s,a,u))};var vd="script",Ed="style",br="template",Ux=/^<script\s+.*?\bsetup\b.*?>$/is,Gx=({customBlocks:e})=>{let t=Array.from(new Set([vd,Ed,...e])).join("|");return new RegExp(`^\\s*(?<content>(?<tagOpen><(?<type>${t})\\s?.*?>)(?<contentStripped>.*)(?<tagClose><\\/\\k<type>\\s*>))\\s*$`,"is")},_d=(e,{customBlocks:t=[]}={})=>{let r=Gx({customBlocks:t}),n=e.render.bind(e);e.render=(o,s={})=>{s.sfcBlocks={template:null,script:null,scriptSetup:null,scripts:[],styles:[],customBlocks:[]};let a=n(o,s);return s.sfcBlocks.template={type:br,content:`<${br}>${a}</${br}>`,contentStripped:a,tagOpen:`<${br}>`,tagClose:`</${br}>`},a};let i=e.renderer.rules.html_block;e.renderer.rules.html_block=(o,s,a,u,p)=>{if(!u.sfcBlocks)return i(o,s,a,u,p);let l=o[s].content.match(r);if(!l)return i(o,s,a,u,p);let y=l.groups;return y.type===vd?(u.sfcBlocks.scripts.push(y),Ux.test(y.tagOpen)?u.sfcBlocks.scriptSetup=y:u.sfcBlocks.script=y):y.type===Ed?u.sfcBlocks.styles.push(y):u.sfcBlocks.customBlocks.push(y),""}};var xd=e=>{let t=e.renderer.render.bind(e.renderer);e.renderer.render=(r,n,i)=>{let o=r.findIndex(s=>s.tag==="h1");return i.title=o>-1?Sr(r[o+1],{shouldAllowHtml:!1,shouldEscapeText:!1}):"",t(r,n,i)}};var Wx=({listTag:e,listClass:t,itemClass:r,linkTag:n,linkClass:i})=>{let o=vt(e),s=t?` class="${vt(t)}"`:"",a="li",u=r?` class="${vt(r)}"`:"",p=vt(n),c=i?` class="${vt(i)}"`:"",f=y=>n==="router-link"?` to="${y}"`:` href="${y}"`,l=y=>`<${o}${s}>${y.map(h=>`<${a}${u}${u}><${p}${c}${f(h.link)}>${h.title}</${p}>${h.children.length>0?l(h.children):""}</${a}>`).join("")}</${o}>`;return l},Yx=({pattern:e,containerTag:t,containerClass:r})=>(n,i,o,s)=>{if(n.sCount[i]-n.blkIndent>=4)return!1;let a=n.bMarks[i]+n.tShift[i],u=n.eMarks[i],p=n.src.slice(a,u).split(" ")[0];if(!e.test(p))return!1;if(s)return!0;n.line=i+1;let c=n.push("toc_open",t,1);c.markup="",c.map=[i,n.line],r&&c.attrSet("class",r);let f=n.push("toc_body","",0);f.markup=p,f.map=[i,n.line],f.hidden=!0;let l=n.push("toc_close",t,-1);return l.markup="",f.map=[i,n.line],!0},Sd=(e,{pattern:t=/^\[\[toc\]\]$/i,slugify:r=Bn,format:n,level:i=[2,3],shouldAllowNested:o=!1,containerTag:s="nav",containerClass:a="table-of-contents",listTag:u="ul",listClass:p="",itemClass:c="",linkTag:f="a",linkClass:l=""}={})=>{e.block.ruler.before("heading","toc",Yx({pattern:t,containerTag:s,containerClass:a}),{alt:["paragraph","reference","blockquote"]});let y=Wx({listTag:u,listClass:p,itemClass:c,linkTag:f,linkClass:l});e.renderer.rules.toc_body=h=>y(qn(h,{level:i,shouldAllowHtml:!0,shouldAllowNested:o,shouldEscapeText:!0,slugify:r,format:n}))};var _katex = require('katex'); var _katex2 = _interopRequireDefault(_katex);function Cd(e,t){let r=e.posMax,n=!0,i=!0,o=t>0?e.src.charCodeAt(t-1):-1,s=t+1<=r?e.src.charCodeAt(t+1):-1;return(o===32||o===9||s>=48&&s<=57)&&(i=!1),(s===32||s===9)&&(n=!1),{can_open:n,can_close:i}}function zx(e,t){let r,n,i,o;if(e.src[e.pos]!=="$")return!1;if(i=Cd(e,e.pos),!i.can_open)return t||(e.pending+="$"),e.pos+=1,!0;let s=e.pos+1;for(r=s;(r=e.src.indexOf("$",r))!==-1;){for(o=r-1;e.src[o]==="\\";)o-=1;if((r-o)%2===1)break;r+=1}return r===-1?(t||(e.pending+="$"),e.pos=s,!0):r-s===0?(t||(e.pending+="$$"),e.pos=s+1,!0):(i=Cd(e,r),i.can_close?(t||(n=e.push("math_inline","math",0),n.markup="$",n.content=e.src.slice(s,r)),e.pos=r+1,!0):(t||(e.pending+="$"),e.pos=s,!0))}function Kx(e,t,r,n){let i,o,s,a,u=!1,p=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(p+2>c||e.src.slice(p,p+2)!=="$$")return!1;if(p+=2,i=e.src.slice(p,c),n)return!0;for(i.trim().slice(-2)==="$$"&&(i=i.trim().slice(0,-2),u=!0),s=t;!u&&(s++,!(s>=r||(p=e.bMarks[s]+e.tShift[s],c=e.eMarks[s],p<c&&e.tShift[s]<e.blkIndent)));)e.src.slice(p,c).trim().slice(-2)==="$$"&&(a=e.src.slice(0,c).lastIndexOf("$$"),o=e.src.slice(p,a),u=!0);e.line=s+1;let f=e.push("math_block","math",0);return f.block=!0,f.content=(i&&i.trim()?`${i}
17
+ `);return o!==-1&&(t=FC(t,i,n,o)),n+t+i},ta,th=(e,...t)=>{let[r]=t;if(!ti(r)||!ti(r.raw))return t.join(" ");let n=t.slice(1),i=[r.raw[0]];for(let o=1;o<r.length;o++)i.push(String(n[o-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[o]));return ta===void 0&&(ta=Jm()),ta(e,i.join(""))};Object.defineProperties(ri.prototype,Qt);var ii=ri();ii.supportsColor=ra;ii.stderr=ri({level:na?na.level:0});ii.stderr.supportsColor=na;rh.exports=ii});var er=Q(Re(),1);var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _child_process = require('child_process');var _yargs = require('yargs'); var _yargs2 = _interopRequireDefault(_yargs);var _vite = require('vite');var _open2 = require('open'); var _open3 = _interopRequireDefault(_open2);var _consola = require('consola'); var _consola2 = _interopRequireDefault(_consola);var _kolorist = require('kolorist');var _helpers = require('yargs/helpers');var Jr="0.14.22";var _net = require('net'); var _net2 = _interopRequireDefault(_net);async function Ai(e){return await w1(e)?e:await Ai(e+1)}function w1(e){return new Promise(t=>{let r=_net2.default.createServer(n=>{n.write(`Echo server\r
18
+ `),n.pipe(n)});r.listen(e,"0.0.0.0"),r.on("error",()=>{t(!1)}),r.on("listening",()=>{r.close(),t(!0)})})}var ld=Q(Re(),1),fd=Q(Pi(),1),pd=Q(Pn(),1);var _utils = require('@antfu/utils');function ms(e){return e!==null&&typeof e=="object"}function hs(e,t,r=".",n){if(!ms(t))return hs(e,{},r,n);let i=Object.assign({},t);for(let o in e){if(o==="__proto__"||o==="constructor")continue;let s=e[o];s!=null&&(n&&n(i,o,s,r)||(Array.isArray(s)&&Array.isArray(i[o])?i[o]=s.concat(i[o]):ms(s)&&ms(i[o])?i[o]=hs(s,i[o],(r?`${r}.`:"")+o.toString(),n):i[o]=s))}return i}function gr(e){return(...t)=>t.reduce((r,n)=>hs(r,n,"",e),{})}var $e=gr(),sA=gr((e,t,r,n)=>{if(typeof e[t]<"u"&&typeof r=="function")return e[t]=r(e[t]),!0}),aA=gr((e,t,r,n)=>{if(Array.isArray(e[t])&&typeof r=="function")return e[t]=r(e[t]),!0});function gs(){return process.env.NODE_ENV==="production"}function ys(e="development"){process.env.NODE_ENV=e,Ae.level=gs()?2:3}function yr(){return ys("production")}var Ae=_consola2.default.create({level:gs()?2:3});var td=Q(Up(),1);var _isinstalledglobally = require('is-installed-globally'); var _isinstalledglobally2 = _interopRequireDefault(_isinstalledglobally);var _globaldirs = require('global-dirs'); var _globaldirs2 = _interopRequireDefault(_globaldirs);var _crossspawn = require('cross-spawn');function xr(e,t="updated"){return new Promise((r,n)=>{let i=["log"];t==="updated"&&i.push("-1"),i.push('--pretty="%ci"',e),t==="created"&&i.push("|","tail","-1");let o=_crossspawn.spawn.call(void 0, "git",i),s="";o.stdout.on("data",a=>s+=String(a)),o.on("close",()=>{r(+new Date(s))}),o.on("error",()=>{r(0)})})}var Mn="<!-- more -->",jt=/^https?:/i,Gp=/^pathname:\/\//,Wp="/:all(.*)*";function Yp(e){return jt.test(e)}function ot(e){return e.replace(/\\/g,"/")}function As(e,t){return t.startsWith(e)?t:e+t}function re(e){return`/@fs${As("/",ot(e))}`}function zp(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}var _unconfig = require('unconfig');async function yt(e,t={}){let{config:r,sources:n}=await await _unconfig.loadConfig.call(void 0, {sources:{files:e,rewrite:t.rewrite},cwd:t.cwd||process.cwd()}),i=_vite.normalizePath.call(void 0, n[0]||"");return{config:r,configFile:i}}var Ht=gr((e,t,r)=>{if(_utils.isFunction.call(void 0, e[t])&&_utils.isFunction.call(void 0, r)&&(e[t]=function(...n){e[t].call(this,...n),r.call(this,...n)}),t==="vite")return e[t]=_vite.mergeConfig.call(void 0, e[t],r),!0});async function Rs(e,t){return yt("valaxy.config",{rewrite(r){return typeof r=="function"?r(t||{}):r},cwd:e})}async function Jp(e){let{config:t,configFile:r}=await Rs(e.userRoot||process.cwd());t&&Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "valaxyConfig")} from ${_kolorist.dim.call(void 0, r)}`);let n=e.theme||t.theme||"yun";return{config:t,configFile:r,theme:n}}async function Xp(e,t){let r={};for(let n of e){let{config:i,configFile:o}=await yt("index",{rewrite(s,a){return typeof s=="function"?s(n,t):s},cwd:n.root});i&&(n.configFile=o,r=Ht(i,r))}return r}function rd(e){return`JSON.parse(${JSON.stringify(JSON.stringify(e))})`}function Ge(e,t=!1,r={preserveSymlinks:!1}){try{return(0,td.sync)(e,r)}catch(n){_consola2.default.log(n)}if(_isinstalledglobally2.default){try{return I.resolve(_path.join.call(void 0, _globaldirs2.default.yarn.packages,e))}catch (e21){}try{return I.resolve(_path.join.call(void 0, _globaldirs2.default.npm.packages,e))}catch (e22){}}if(t)throw new Error(`Failed to resolve package ${e}`);_consola2.default.error(`Failed to resolve package ${e}`)}function J_(e){return e}var eR=J_;function X_(e){return e}var tR=X_;function nR(e){return e}function Q_(e){return e}var iR=Q_,ks= exports.t ={mode:"auto",url:"/",lang:"en",title:"Valaxy Blog",description:"A blog generated by Valaxy.",subtitle:"Next Generation Static Blog Framework.",author:{avatar:"https://www.yunyoujun.cn/images/avatar.jpg",email:"i@valaxy.site",link:"https://valaxy.site",name:"VALAXY Developer",status:{emoji:"\u{1F30C}",message:"The moonlight is beautiful."}},favicon:"/favicon.svg",feed:{name:"",favicon:"/favicon.svg"},social:[],date:{format:""},lastUpdated:!0,license:{enabled:!0,language:"",type:"by-nc-sa"},sponsor:{enable:!0,title:"\u8D5E\u52A9",methods:[]},search:{enable:!1,type:"fuse"},comment:{enable:!1},cdn:{prefix:"https://unpkg.com/"},mediumZoom:{enable:!1,selector:"",options:{}},statistics:{enable:!1,readTime:{speed:{cn:300,en:100}}},pageSize:7},nd= exports.u ={ignoreDeadLinks:!0,siteConfig:ks,theme:"yun",themeConfig:{pkg:{name:"",version:""}},runtimeConfig:{addons:{}},features:{katex:!0},vite:{build:{rollupOptions:{external:[]}}}};function oR(e){return e}var Fs=Q(Re(),1);var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);function In(e,t){if(!e)return"";if(zp(e))if(t){let r=_fs2.default.lstatSync(t).isFile();return _path.resolve.call(void 0, r?_path.dirname.call(void 0, t):t,e)}else throw new Error(`entry is required when ${e} is path`);else return _path.dirname.call(void 0, Ge(`${e}/package.json`)||"")}async function sd(e,t=process.cwd()){let r={},n=o=>{o&&(r[o.name]=$e(r[o.name]||{},o))};if(Array.isArray(e))for(let o of e){if(typeof o=="string"){n(await od(o,{cwd:t}));continue}typeof o=="object"&&n($e(await od(o.name,{cwd:t}),o||{}))}let i=Object.values(r).filter(o=>o.enable);return Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "addons:")} ${_kolorist.yellow.call(void 0, i.map(o=>o.name).join(", "))}`),i}async function od(e,t={}){let r=ix(e,t.cwd||process.cwd()),n=_path.resolve.call(void 0, r,"./package.json");if(!Fs.default.existsSync(n)){Ae.error(`No addon named ${e} found`);return}let i=await Fs.default.readJSON(n);return{enable:!0,name:i.name,global:!!i.global,root:r,options:{},props:{}}}function ix(e,t){let r=e.startsWith("valaxy-addon")||e.startsWith(".")?e:`valaxy-addon-${e}`;return In(r,t)}function ad(e,t){let r=e.startsWith("valaxy-theme")||e.startsWith(".")?e:`valaxy-theme-${e}`;return In(r,t)}async function ax(e){return yt("site.config",{cwd:e})}async function Nn(e){let{config:t,configFile:r}=await ax(e);return t&&Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "siteConfig")} from ${_kolorist.dim.call(void 0, r)}`),{siteConfig:t,siteConfigFile:r}}async function lx(e){return yt("theme.config",{cwd:e})}async function ud(e){let{config:t,configFile:r}=await lx(e);return t&&Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "themeConfig")} from ${_kolorist.dim.call(void 0, r)}`),{themeConfig:t,themeConfigFile:r}}var hx=(0,fd.default)("valaxy:options");async function gx(e){let{config:t,themeRoot:r,theme:n}=e,i=t.siteConfig;i.url=_utils.ensureSuffix.call(void 0, "/",i.url||""),i.cdn.prefix=_utils.ensureSuffix.call(void 0, "/",i.cdn.prefix||"");let o=_path.resolve.call(void 0, r,"package.json");try{t.themeConfig.pkg=await ld.default.readJson(o,"utf-8")}catch (e23){console.error(`valaxy-theme-${n} doesn't have package.json`)}}async function Os(e,t){let{clientRoot:r,themeRoot:n,userRoot:i}=e,o=await sd(t.addons||[],e.userRoot),s=await Xp(o,e);t=Ht(t,s);let a=$e(t,nd);e.config={...a,runtimeConfig:{addons:{}}},e.addons=o,o.forEach(f=>{e.config.runtimeConfig.addons[f.name]=f});let u=o.map(({root:f})=>f),p=o.map(({name:f})=>f);e.addonRoots=u,e.roots=_utils.uniq.call(void 0, [r,n,...u,i]);let c=_optionalChain([e, 'access', _3 => _3.config, 'access', _4 => _4.vite, 'optionalAccess', _5 => _5.build, 'optionalAccess', _6 => _6.rollupOptions, 'optionalAccess', _7 => _7.external])||[];return e.config.vite.build.rollupOptions.external=c.filter(f=>!p.includes(f)),await gx(e),e}async function De(e={userRoot:process.cwd()},t="dev"){let r=_path.dirname.call(void 0, Ge("valaxy/package.json",!0)),n=_path.resolve.call(void 0, r,"client"),i=_path.resolve.call(void 0, e.userRoot||process.cwd()),{config:o,configFile:s,theme:a}=await Jp(e),{siteConfig:u,siteConfigFile:p}=await Nn(e.userRoot),{themeConfig:c,themeConfigFile:f}=await ud(e.userRoot);o=$e({siteConfig:u},{themeConfig:c},o);let l=ad(a,e.userRoot),y=(await(0,pd.default)(["**.md"],{cwd:_path.resolve.call(void 0, i,"pages"),ignore:["**/node_modules"]})).sort(),h={mode:t,pkgRoot:r,clientRoot:n,userRoot:i,themeRoot:l,addonRoots:[],roots:[],theme:a,config:{...o,runtimeConfig:{addons:{}}},configFile:s||"",siteConfigFile:p||"",themeConfigFile:f||"",pages:y,addons:[]};hx(h);let E=await Ps(h),_=Ht(o,E);return h=await Os(h,_),h}async function Ps(e){Ae.info(`Resolve ${_kolorist.cyan.call(void 0, "valaxy.config.ts")} from ${_kolorist.yellow.call(void 0, `theme(${e.theme})`)}`);let{config:t}=await Rs(e.themeRoot,e);return t}var _readline = require('readline'); var mm = _interopRequireWildcard(_readline);var _os = require('os'); var _os2 = _interopRequireDefault(_os);var _markdownit = require('markdown-it'); var _markdownit2 = _interopRequireDefault(_markdownit);var _graymatter = require('gray-matter'); var _graymatter2 = _interopRequireDefault(_graymatter);var _pluginvue = require('@vitejs/plugin-vue'); var _pluginvue2 = _interopRequireDefault(_pluginvue);var _vitepluginpages = require('vite-plugin-pages'); var _vitepluginpages2 = _interopRequireDefault(_vitepluginpages);var _vitepluginvuelayouts = require('vite-plugin-vue-layouts'); var _vitepluginvuelayouts2 = _interopRequireDefault(_vitepluginvuelayouts);var _vite3 = require('unplugin-vue-components/vite'); var _vite4 = _interopRequireDefault(_vite3);var _vite5 = require('@intlify/unplugin-vue-i18n/vite'); var _vite6 = _interopRequireDefault(_vite5);var _dayjs = require('dayjs'); var _dayjs2 = _interopRequireDefault(_dayjs);var _htmltotext = require('html-to-text');var _markdownitanchor = require('markdown-it-anchor'); var _markdownitanchor2 = _interopRequireDefault(_markdownitanchor);var _markdownitattrs = require('markdown-it-attrs'); var _markdownitattrs2 = _interopRequireDefault(_markdownitattrs);var _markdownitemoji = require('markdown-it-emoji'); var _markdownitemoji2 = _interopRequireDefault(_markdownitemoji);var _markdownittasklists = require('markdown-it-task-lists'); var _markdownittasklists2 = _interopRequireDefault(_markdownittasklists);var _html_blocksjs = require('markdown-it/lib/common/html_blocks.js'); var _html_blocksjs2 = _interopRequireDefault(_html_blocksjs);var vx="[a-zA-Z_:@][a-zA-Z0-9:._-]*",Ex="[^\"'=<>`\\x00-\\x20]+",_x="'[^']*'",xx='"[^"]*"',Sx="(?:"+Ex+"|"+_x+"|"+xx+")",Ts="(?:\\s+"+vx+"(?:\\s*=\\s*"+Sx+")?)",dd="<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/?>",md="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",bx="<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->",Cx="<[?][\\s\\S]*?[?]>",wx="<![A-Z]+\\s+[^>]*>",Ax="<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",Rx=new RegExp("^(?:"+dd+"|"+md+"|"+bx+"|"+Cx+"|"+wx+"|"+Ax+")"),kx=new RegExp("^(?:"+dd+"|"+md+")"),Fx=new RegExp("^<[A-Za-z][A-Za-z0-9\\-]*"+Ts+"*\\s*\\/>"),Ox=new RegExp("^<([A-Za-z][A-Za-z0-9\\-]*)"+Ts+"*\\s*>.*<\\/\\1\\s*>"),Px=_html_blocksjs2.default,Tx=["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"],$x=["template","component","transition","transition-group","keep-alive","slot","teleport"],Dx=({blockTags:e,inlineTags:t})=>{let r=[...e,...Px],n=[...t,...Tx.filter(o=>!$x.includes(o))];return[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp("^</?(?!("+n.join("|")+")(?![\\w-]))[A-Za-z][A-Za-z0-9\\-]*(?=(\\s|/?>|$))"),/^$/,!0],[new RegExp(kx.source+"\\s*$"),/^$/,!1]]},Mx=e=>{let t=Dx(e);return(r,n,i,o)=>{let s,a,u,p=r.bMarks[n]+r.tShift[n],c=r.eMarks[n];if(r.sCount[n]-r.blkIndent>=4||!r.md.options.html||r.src.charCodeAt(p)!==60)return!1;for(u=r.src.slice(p,c),s=0;s<t.length&&!t[s][0].test(u);s++);if(s===t.length)return!1;if(o)return t[s][2];if(s===6){let l=_nullishCoalesce(u.match(Fx), () => (u.match(Ox)));if(l){r.line=n+1;let y=r.push("html_inline","",0);return y.content=l[0],y.map=[n,r.line],y=r.push("inline","",0),y.content=u.slice(l[0].length),y.map=[n,r.line],y.children=[],!0}}if(a=n+1,!t[s][1].test(u)){for(;a<i&&!(r.sCount[a]<r.blkIndent);a++)if(p=r.bMarks[a]+r.tShift[a],c=r.eMarks[a],u=r.src.slice(p,c),t[s][1].test(u)){u.length!==0&&a++;break}}r.line=a;let f=r.push("html_block","",0);return f.map=[n,a],f.content=r.getLines(n,a,r.blkIndent,!0),!0}},Ix=e=>{let t=e|32;return t>=97&&t<=122},Nx=(e,t)=>{let{pos:r}=e;if(!e.md.options.html)return!1;let n=e.posMax;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;let i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!Ix(i))return!1;let o=e.src.slice(r).match(Rx);if(!o)return!1;if(!t){let s=e.push("html_inline","",0);s.content=e.src.slice(r,r+o[0].length)}return e.pos+=o[0].length,!0},hd=(e,{blockTags:t=[],inlineTags:r=[]}={})=>{let n=Mx({blockTags:t,inlineTags:r});e.block.ruler.at("html_block",n,{alt:["paragraph","reference","blockquote"]}),e.inline.ruler.at("html_inline",Nx)};var gd=(e,{grayMatterOptions:t,renderExcerpt:r=!0}={})=>{let n=e.render.bind(e);e.render=(i,o={})=>{let{data:s,content:a,excerpt:u=""}=_graymatter2.default.call(void 0, i,t);return o.content=a,o.frontmatter={...o.frontmatter,...s},o.excerpt=r&&u?n(u,{...o}):u,n(a,o)}};var qx={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},Bx=/[&<>'"]/g,vt=e=>e.replace(Bx,t=>qx[t]);var Sr=(e,{shouldAllowHtml:t,shouldEscapeText:r})=>{let n=_nullishCoalesce(e.children, () => ([])),i=["text","emoji","code_inline"];return t&&i.push("html_inline"),n.filter(s=>i.includes(s.type)&&!_optionalChain([s, 'access', _8 => _8.meta, 'optionalAccess', _9 => _9.isPermalinkSymbol])).reduce((s,a)=>r&&(a.type==="code_inline"||a.type==="text")?`${s}${vt(a.content)}`:`${s}${a.content}`,"").trim()},qn=(e,{level:t,shouldAllowHtml:r,shouldAllowNested:n,shouldEscapeText:i,slugify:o,format:s})=>{let a=[],u=[],p=c=>{for(;u.length!==0&&c.level<=u[0].level;)u.shift();u.length===0?(a.push(c),u.push(c)):(u[0].children.push(c),u.unshift(c))};for(let c=0;c<e.length;c+=1){let f=e[c];if(_optionalChain([f, 'optionalAccess', _10 => _10.type])!=="heading_open"||_optionalChain([f, 'optionalAccess', _11 => _11.level])!==0&&!n)continue;let l=Number.parseInt(f.tag.slice(1),10);if(!t.includes(l))continue;let y=e[c+1];if(!y)continue;let h=Sr(y,{shouldAllowHtml:r,shouldEscapeText:i}),E=_nullishCoalesce(f.attrGet("id"), () => (o(h)));p({level:l,title:_nullishCoalesce(_optionalChain([s, 'optionalCall', _12 => _12(h)]), () => (h)),slug:E,link:`#${E}`,children:[]})}return a},jx=/[\u0000-\u001f]/g,Hx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’<>,.?/]+/g,Vx=/[\u0300-\u036F]/g,Bn=e=>e.normalize("NFKD").replace(Vx,"").replace(jx,"").replace(Hx,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var yd=(e,{level:t=[2,3],shouldAllowNested:r=!1,slugify:n=Bn,format:i}={})=>{let o=e.renderer.render.bind(e.renderer);e.renderer.render=(s,a,u)=>(u.headers=qn(s,{level:t,shouldAllowHtml:!1,shouldAllowNested:r,shouldEscapeText:!1,slugify:n,format:i}),o(s,a,u))};var vd="script",Ed="style",br="template",Ux=/^<script\s+.*?\bsetup\b.*?>$/is,Gx=({customBlocks:e})=>{let t=Array.from(new Set([vd,Ed,...e])).join("|");return new RegExp(`^\\s*(?<content>(?<tagOpen><(?<type>${t})\\s?.*?>)(?<contentStripped>.*)(?<tagClose><\\/\\k<type>\\s*>))\\s*$`,"is")},_d=(e,{customBlocks:t=[]}={})=>{let r=Gx({customBlocks:t}),n=e.render.bind(e);e.render=(o,s={})=>{s.sfcBlocks={template:null,script:null,scriptSetup:null,scripts:[],styles:[],customBlocks:[]};let a=n(o,s);return s.sfcBlocks.template={type:br,content:`<${br}>${a}</${br}>`,contentStripped:a,tagOpen:`<${br}>`,tagClose:`</${br}>`},a};let i=e.renderer.rules.html_block;e.renderer.rules.html_block=(o,s,a,u,p)=>{if(!u.sfcBlocks)return i(o,s,a,u,p);let l=o[s].content.match(r);if(!l)return i(o,s,a,u,p);let y=l.groups;return y.type===vd?(u.sfcBlocks.scripts.push(y),Ux.test(y.tagOpen)?u.sfcBlocks.scriptSetup=y:u.sfcBlocks.script=y):y.type===Ed?u.sfcBlocks.styles.push(y):u.sfcBlocks.customBlocks.push(y),""}};var xd=e=>{let t=e.renderer.render.bind(e.renderer);e.renderer.render=(r,n,i)=>{let o=r.findIndex(s=>s.tag==="h1");return i.title=o>-1?Sr(r[o+1],{shouldAllowHtml:!1,shouldEscapeText:!1}):"",t(r,n,i)}};var Wx=({listTag:e,listClass:t,itemClass:r,linkTag:n,linkClass:i})=>{let o=vt(e),s=t?` class="${vt(t)}"`:"",a="li",u=r?` class="${vt(r)}"`:"",p=vt(n),c=i?` class="${vt(i)}"`:"",f=y=>n==="router-link"?` to="${y}"`:` href="${y}"`,l=y=>`<${o}${s}>${y.map(h=>`<${a}${u}${u}><${p}${c}${f(h.link)}>${h.title}</${p}>${h.children.length>0?l(h.children):""}</${a}>`).join("")}</${o}>`;return l},Yx=({pattern:e,containerTag:t,containerClass:r})=>(n,i,o,s)=>{if(n.sCount[i]-n.blkIndent>=4)return!1;let a=n.bMarks[i]+n.tShift[i],u=n.eMarks[i],p=n.src.slice(a,u).split(" ")[0];if(!e.test(p))return!1;if(s)return!0;n.line=i+1;let c=n.push("toc_open",t,1);c.markup="",c.map=[i,n.line],r&&c.attrSet("class",r);let f=n.push("toc_body","",0);f.markup=p,f.map=[i,n.line],f.hidden=!0;let l=n.push("toc_close",t,-1);return l.markup="",f.map=[i,n.line],!0},Sd=(e,{pattern:t=/^\[\[toc\]\]$/i,slugify:r=Bn,format:n,level:i=[2,3],shouldAllowNested:o=!1,containerTag:s="nav",containerClass:a="table-of-contents",listTag:u="ul",listClass:p="",itemClass:c="",linkTag:f="a",linkClass:l=""}={})=>{e.block.ruler.before("heading","toc",Yx({pattern:t,containerTag:s,containerClass:a}),{alt:["paragraph","reference","blockquote"]});let y=Wx({listTag:u,listClass:p,itemClass:c,linkTag:f,linkClass:l});e.renderer.rules.toc_body=h=>y(qn(h,{level:i,shouldAllowHtml:!0,shouldAllowNested:o,shouldEscapeText:!0,slugify:r,format:n}))};var _katex = require('katex'); var _katex2 = _interopRequireDefault(_katex);function Cd(e,t){let r=e.posMax,n=!0,i=!0,o=t>0?e.src.charCodeAt(t-1):-1,s=t+1<=r?e.src.charCodeAt(t+1):-1;return(o===32||o===9||s>=48&&s<=57)&&(i=!1),(s===32||s===9)&&(n=!1),{can_open:n,can_close:i}}function zx(e,t){let r,n,i,o;if(e.src[e.pos]!=="$")return!1;if(i=Cd(e,e.pos),!i.can_open)return t||(e.pending+="$"),e.pos+=1,!0;let s=e.pos+1;for(r=s;(r=e.src.indexOf("$",r))!==-1;){for(o=r-1;e.src[o]==="\\";)o-=1;if((r-o)%2===1)break;r+=1}return r===-1?(t||(e.pending+="$"),e.pos=s,!0):r-s===0?(t||(e.pending+="$$"),e.pos=s+1,!0):(i=Cd(e,r),i.can_close?(t||(n=e.push("math_inline","math",0),n.markup="$",n.content=e.src.slice(s,r)),e.pos=r+1,!0):(t||(e.pending+="$"),e.pos=s,!0))}function Kx(e,t,r,n){let i,o,s,a,u=!1,p=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(p+2>c||e.src.slice(p,p+2)!=="$$")return!1;if(p+=2,i=e.src.slice(p,c),n)return!0;for(i.trim().slice(-2)==="$$"&&(i=i.trim().slice(0,-2),u=!0),s=t;!u&&(s++,!(s>=r||(p=e.bMarks[s]+e.tShift[s],c=e.eMarks[s],p<c&&e.tShift[s]<e.blkIndent)));)e.src.slice(p,c).trim().slice(-2)==="$$"&&(a=e.src.slice(0,c).lastIndexOf("$$"),o=e.src.slice(p,a),u=!0);e.line=s+1;let f=e.push("math_block","math",0);return f.block=!0,f.content=(i&&i.trim()?`${i}
19
19
  `:"")+e.getLines(t+1,s,e.tShift[t],!0)+(o&&o.trim()?o:""),f.map=[t,e.line],f.markup="$$",!0}function $s(e,t){t=t||{};let r=function(s){t.displayMode=!1;try{return _katex2.default.renderToString(s,t)}catch(a){return t.throwOnError&&console.warn(a),s}},n=function(s,a){return r(s[a].content)},i=function(s){t.displayMode=!0;try{return`<p>${_katex2.default.renderToString(s,t)}</p>`}catch(a){return t.throwOnError&&console.warn(a),s}},o=function(s,a){return`${i(s[a].content)}
20
20
  `};e.inline.ruler.after("escape","math_inline",zx),e.block.ruler.after("blockquote","math_block",Kx,{alt:["paragraph","reference","blockquote","list"]}),e.renderer.rules.math_inline=n,e.renderer.rules.math_block=o}var _markdownitcontainer = require('markdown-it-container'); var _markdownitcontainer2 = _interopRequireDefault(_markdownitcontainer);function Jx(e,{icon:t,color:r,text:n,langs:i}={}){return[_markdownitcontainer2.default,e,{render(o,s){let a=o[s],u=a.info.trim().slice(e.length).trim();if(a.nesting===1){if(e==="details")return`<details class="${e} custom-block">${`<summary>${u}</summary>`}
21
21
  `;let p="";t&&(p=`<i class="icon ${t}" ${r?`style="color: ${r}"`:""}></i>`);let c=`<span lang="en">${u||n}</span>`;return i&&Object.keys(i).forEach(f=>{c+=`<span lang="${f}">${u||i[f]}</span>`}),`<div class="${e} custom-block"><p class="custom-block-title">${p}${c}</p>
22
22
  `}else return e==="details"?`</details>
23
23
  `:`</div>
24
- `}}]}var wd={tip:{text:"TIP",langs:{"zh-CN":"\u63D0\u793A"}},warning:{text:"WARNING",langs:{"zh-CN":"\u6CE8\u610F"}},danger:{text:"DANGER",langs:{"zh-CN":"\u8B66\u544A"}},info:{text:"INFO",langs:{"zh-CN":"\u4FE1\u606F"}},details:{text:"Details",langs:{"zh-CN":"\u8BE6\u60C5"}}},Ad=(e,t={})=>{Object.keys(wd).forEach(n=>{let i={...wd[n],...t[n]||{}};e.use(...Jx(n,i))}),e.use(_markdownitcontainer2.default,"v-pre",{render:(n,i)=>n[i].nesting===1?`<div v-pre>
24
+ `}}]}var wd={tip:{text:"TIP",langs:{"zh-CN":"\u63D0\u793A"}},warning:{text:"WARNING",langs:{"zh-CN":"\u6CE8\u610F"}},danger:{text:"DANGER",langs:{"zh-CN":"\u8B66\u544A"}},info:{text:"INFO",langs:{"zh-CN":"\u4FE1\u606F"}},details:{text:"Details",langs:{"zh-CN":"\u8BE6\u60C5"}}};function Ad(e,t={}){Object.keys(wd).forEach(n=>{let i={...wd[n],...t[n]||{}};e.use(...Jx(n,i))}),e.use(_markdownitcontainer2.default,"v-pre",{render:(n,i)=>n[i].nesting===1?`<div v-pre>
25
25
  `:`</div>
26
26
  `}),["zh-CN","en"].forEach(n=>{e.use(_markdownitcontainer2.default,n,{render:(i,o)=>i[o].nesting===1?`<div lang="${n}">
27
27
  `:`</div>
28
- `})})};var kd=Q(Rd(),1),Qx=/[\u0000-\u001F]/g,Zx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.…?/]+/g,Un=e=>(0,kd.remove)(e).replace(Qx,"").replace(Zx,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto);var eS=128,Et,Vt,tS=e=>{!Et||Et.length<e?(Et=Buffer.allocUnsafe(e*eS),_crypto2.default.randomFillSync(Et),Vt=0):Vt+e>Et.length&&(_crypto2.default.randomFillSync(Et),Vt=0),Vt+=e},rS=e=>(tS(e-=0),Et.subarray(Vt-e,Vt)),nS=(e,t,r)=>{let n=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*n*t/e.length);return(o=t)=>{let s="";for(;;){let a=r(i),u=i;for(;u--;)if(s+=e[a[u]&n]||"",s.length===o)return s}}},Od=(e,t=21)=>nS(e,t,rS);var Nd=Q(Ls(),1);var _shiki = require('shiki');function wr(e,t={}){return({code:r})=>{let n=_nullishCoalesce(t.tagRegExp, () => (/(?:\/\/|\/\*{1,2}) *\[!code ([\w+-]+)(?::(\d+))?] *(?:\*{1,2}\/)?/)),i=[];return r=r.split(`
28
+ `})})}var kd=Q(Rd(),1),Qx=/[\u0000-\u001F]/g,Zx=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.…?/]+/g;function Un(e){return(0,kd.remove)(e).replace(Qx,"").replace(Zx,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase()}var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto);var eS=128,Et,Vt,tS=e=>{!Et||Et.length<e?(Et=Buffer.allocUnsafe(e*eS),_crypto2.default.randomFillSync(Et),Vt=0):Vt+e>Et.length&&(_crypto2.default.randomFillSync(Et),Vt=0),Vt+=e},rS=e=>(tS(e-=0),Et.subarray(Vt-e,Vt)),nS=(e,t,r)=>{let n=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*n*t/e.length);return(o=t)=>{let s="";for(;;){let a=r(i),u=i;for(;u--;)if(s+=e[a[u]&n]||"",s.length===o)return s}}},Od=(e,t=21)=>nS(e,t,rS);var Nd=Q(Ls(),1);var _shiki = require('shiki');function wr(e,t={}){return({code:r})=>{let n=_nullishCoalesce(t.tagRegExp, () => (/(?:\/\/|\/\*{1,2}) *\[!code ([\w+-]+)(?::(\d+))?] *(?:\*{1,2}\/)?/)),i=[];return r=r.split(`
29
29
  `).map((o,s)=>{let[a,u,p]=_nullishCoalesce(o.match(n), () => ([]));return!a||!Object.keys(e).includes(u)?o:(Array.from({length:Number(_nullishCoalesce(p, () => (1)))}).forEach((c,f)=>{i.push({line:s+f+1,classes:e[u]})}),o.replace(n,""))}).join(`
30
- `),{code:r,lineOptions:i}}}function Ut(e,t,r){let n=new RegExp(`<${_nullishCoalesce(r, () => ("w+"))}[^>]*class="([\\w+-:;\\/* ]*)"`);return t=Array.isArray(t)?t:[t],e.replace(n,(i,o)=>i.replace(o,`${o} ${t}`))}function $d(e={}){let t=_nullishCoalesce(e.commonDiffClass, () => ("diff")),r=_nullishCoalesce(e.removedLinesClasses, () => (["remove"])),n=_nullishCoalesce(e.removedLinesClasses, () => (["add"])),i=_nullishCoalesce(e.removeLineTag, () => ("--")),o=_nullishCoalesce(e.addLineTag, () => ("++")),s=_nullishCoalesce(e.hasDiffClass, () => ("has-diff"));return{name:"diff",handler:wr({[i]:[t,...r],[o]:[t,...n]},e),postProcess:({code:a})=>a.includes(t)?Ut(a,s,"pre"):a}}function Dd(e={}){let t=_nullishCoalesce(e.hasFocusClass, () => ("has-focus")),r=_nullishCoalesce(e.hasFocusedLinesClass, () => ("has-focused-lines")),n=_nullishCoalesce(e.focusTag, () => ("focus"));return{name:"focus",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function Md(e={}){let t=_nullishCoalesce(e.hasHighlightClass, () => ("has-highlight")),r=_nullishCoalesce(e.hasHighlightedLinesClass, () => ("has-highlighted-lines")),n=_nullishCoalesce(e.highlightTag, () => ("hl"));return{name:"highlight",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function aS(e,t,r){return e.reduce((n,i)=>{let{code:o,lineOptions:s}=_nullishCoalesce(_optionalChain([i, 'access', _13 => _13.handler, 'optionalCall', _14 => _14({code:n.code,lang:r})]), () => (n));return{code:o,lineOptions:[...n.lineOptions,...s]}},{code:t,lineOptions:[]})}function uS(e,t,r){return e.reduce((n,i)=>_nullishCoalesce(_optionalChain([i, 'access', _15 => _15.postProcess, 'optionalCall', _16 => _16({code:n,lang:r})]), () => (n)),t)}async function Id(e={}){let t=await _shiki.getHighlighter.call(void 0, e),r=_nullishCoalesce(e.processors, () => ([]));return{...t,codeToHtml:(n,i)=>{let o=typeof i=="object"?i.lang:i,s=typeof i=="object"?_nullishCoalesce(i.lineOptions, () => ([])):[],a=typeof i=="object"?i.theme:void 0,{code:u,lineOptions:p}=aS(r,n,o),c=t.codeToHtml(u,{lang:o,theme:a,lineOptions:[...p,...s]});return uS(r,c,o)}}}var cS=Od("abcdefghijklmnopqrstuvwxyz",10),lS=e=>{e=e.replace(/^(?:\[.*?\])?.*?([\d,-]+).*/,"$1").trim();let t=[];return e?(e.split(",").map(r=>r.split("-").map(n=>parseInt(n,10))).forEach(([r,n])=>{r&&n?t.push(...Array.from({length:n-r+1},(i,o)=>r+o)):t.push(r)}),t.map(r=>({line:r,classes:["highlighted"]}))):[]},fS={name:"error-level",handler:wr({error:["highlighted","error"],warning:["highlighted","warning"]})};async function Ld(e="material-theme-palenight",t="txt"){let r=typeof e=="string"||"name"in e,n=f=>typeof f=="string"?f:f.name,i=[Dd(),Md({hasHighlightClass:"highlighted"}),$d(),fS],o=await Id({themes:r?[e]:[e.dark,e.light],processors:i}),s=/<pre[^>]*(style=".*?")/,a=/^<pre(.*?)>/,u=/-vue$/,p=/:(no-)?line-numbers$/,c=/\{\{.*?\}\}/g;return(f,l,y)=>{let h=u.test(l)?"":"v-pre";l=l.replace(p,"").replace(u,"").toLowerCase()||t,l&&(o.getLoadedLanguages().includes(l)||(l!==t&&console.warn(Nd.default.yellow(`The language '${l}' is not loaded, falling back to '${t}' for syntax highlighting.`)),l=t));let E=lS(y),_=N=>N.replace(a,(C,b)=>`<pre ${h}${b}>`).replace(s,(C,b)=>C.replace(b,"")),S=new Map,$=N=>h?N:N.replace(c,C=>{let b=S.get(C);return b||(b=cS(),S.set(C,b)),b}),P=N=>(S.forEach((C,b)=>{N=N.replaceAll(C,b)}),N);if(r)return _(P(o.codeToHtml($(f),{lang:l,lineOptions:E,theme:n(e)})));let V=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.dark)})),"va-code-dark","pre"),L=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.light)})),"va-code-light","pre");return V+L}}var pS=/^<pre .*?><code>/,qd=e=>{let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i,o]=r,s=n[i],a=s.attrs&&s.attrs[0];if(!a)return t(...r);let u=a[0];if(!u||!/[\d,-]+/.test(u))return t(...r);let p=u.split(",").map(h=>h.split("-").map(E=>parseInt(E,10))),c=o.highlight?o.highlight(s.content,s.info,""):s.content;return`<div class="highlight-lines">${c.replace(pS,"").split(`
31
- `).map((h,E)=>{let _=E+1;return p.some(([$,P])=>$&&P?_>=$&&_<=P:_===$)?'<div class="highlighted">&nbsp;</div>':"<br>"}).join("")}</div>`+c}},Bd=e=>{let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i]=r,o=n[i],s=t(...r);return`<div class="language-${o.info.trim()}"><span class="copy"></span>${s}</div>`}};var _url = require('url');var mS=/(^|.*\/)index.md(#?.*)$/i,jd=(e,t,r)=>{e.renderer.rules.link_open=(o,s,a,u,p)=>{let c=o[s],f=c.attrIndex("href");if(f>=0){let l=c.attrs[f],y=l[1];jt.test(y)?(Object.entries(t).forEach(([E,_])=>{c.attrSet(E,_)}),l[1]=y.replace(Gp,"")):!y.startsWith("#")&&!y.startsWith("mailto:")&&!/\.(?!html|md)\w+($|\?)/i.test(y)&&n(l,u),l[1]=l[1].replace(/\bimport\.meta/g,"import%2Emeta").replace(/\bprocess\.env/g,"process%2Eenv")}return p.renderToken(o,s,a)};function n(o,s){let a=o[1],u=a.match(mS);if(u){let[,p,c]=u;a=p+c}else{let p=a.replace(/[?#].*$/,"");p.endsWith(".md")&&(p=p.replace(/\.md$/,s.cleanUrls==="disabled"?".html":"")),s.cleanUrls==="disabled"&&!p.endsWith(".html")&&!p.endsWith("/")&&(p+=".html");let c=new (0, _url.URL)(a,"http://a.com");a=p+c.search+c.hash}!a.startsWith("/")&&!/^\.\//.test(a)&&(a=`./${a}`),i(a.replace(/\.html$/,""),s),a.startsWith("/")&&(a=`${r}${a}`.replace(/\/+/g,"/")),o[1]=decodeURI(a)}function i(o,s){(s.links||(s.links=[])).push(o)}};async function qs(e,t={},r=!1,n="/"){return e.use(qd).use(Bd).use(Ad,t.blocks).use(jd,{target:"_blank",rel:"noreferrer",...t.externalLinks},n),_optionalChain([t, 'access', _17 => _17.attrs, 'optionalAccess', _18 => _18.disable])||e.use(_markdownitattrs2.default,t.attrs),e.use($s,t.katex),e.use(_markdownitemoji2.default),r||e.use(_markdownitanchor2.default,{slugify:Un,permalink:_markdownitanchor2.default.permalink.ariaHidden({}),...t.anchor}),e.use(hd).use(gd,{...t.frontmatter}).use(yd,{slugify:Un,...t.headers}).use(_d,{...t.sfc}).use(xd).use(Sd,{slugify:Un,...t.toc}),e.use(_markdownittasklists2.default),t.config&&t.config(e),e}var Vd=async(e={})=>{let t=_markdownit2.default.call(void 0, {html:!0,linkify:!0,highlight:await Ld(e.theme),...e.options});return await qs(t,e),t};var _jiti = require('jiti'); var _jiti2 = _interopRequireDefault(_jiti);var _unocss = require('unocss');var Ud=Q(Re(),1);function Gd(e,t,r=""){return e={...e},Object.keys(t).forEach(n=>{_utils.isObject.call(void 0, e[n])?e[n]=Gd(e[n],t[n],r?`${r}.${n}`:n):Array.isArray(e[n])?e[n]=[...e[n],...t[n]]:e[n]=t[n]}),e}async function Wd(e,t,r,n,i=!0){let o=n;for(let s of e){let a=_path.resolve.call(void 0, s,"setup",t);if(Ud.default.existsSync(a)){let{default:u}=_jiti2.default.call(void 0, __filename)(a),p=await u(r);p!==null&&(o=i?Gd(o,p):p)}}return o}var PS=async e=>{let{config:t}=e,r=["i-ri-clipboard-line","i-ri-archive-line","i-ri-folder-2-line","i-ri-price-tag-3-line","i-ri-cloud-line"].concat(_optionalChain([e, 'access', _19 => _19.config, 'access', _20 => _20.unocss, 'optionalAccess', _21 => _21.safelist])||[]),n="animate-fade-in m-auto text-left".split(" ").concat(["rotate-y-180"]).concat(r),i=t.siteConfig;_optionalChain([i, 'access', _22 => _22.social, 'optionalAccess', _23 => _23.length])&&i.social.forEach(s=>n.push(_optionalChain([s, 'optionalAccess', _24 => _24.icon])||""));let o=_optionalChain([i, 'access', _25 => _25.sponsor, 'optionalAccess', _26 => _26.methods])||[];return o.length&&o.forEach(s=>n.push(_optionalChain([s, 'optionalAccess', _27 => _27.icon])||"")),n},TS=async e=>{let{config:t}=e;return{shortcuts:[["btn","px-4 py-1 rounded inline-block bg-$va-c-primary text-white cursor-pointer transition hover:bg-$va-c-primary-light disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50"],["icon-btn","inline-flex justify-center items-center cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-sky-600"],["va-card","shadow hover:shadow-lg"]],presets:[_unocss.presetUno.call(void 0, _optionalChain([t, 'access', _28 => _28.unocssPresets, 'optionalAccess', _29 => _29.uno])),_unocss.presetAttributify.call(void 0, _optionalChain([t, 'access', _30 => _30.unocssPresets, 'optionalAccess', _31 => _31.attributify])),_unocss.presetIcons.call(void 0, {scale:1.2,..._optionalChain([t, 'access', _32 => _32.unocssPresets, 'optionalAccess', _33 => _33.icons])}),_unocss.presetTypography.call(void 0, _optionalChain([t, 'access', _34 => _34.unocssPresets, 'optionalAccess', _35 => _35.typography]))],rules:[["font-serif",{"font-family":"var(--va-font-serif)"}],["font-sans",{"font-family":"var(--va-font-sans)"}],["font-mono",{"font-family":"var(--va-font-mono)"}]],transformers:[_unocss.transformerDirectives.call(void 0, ),_unocss.transformerVariantGroup.call(void 0, )],safelist:await PS(e)}},Yd=async e=>{let t=await Promise.resolve().then(() => require("unocss/vite")).then(l=>l.default),{unocss:r}=e.config,n=await TS(e),{themeRoot:i,clientRoot:o,roots:s}=e,a=["uno.config.ts","unocss.config.ts"],u=[];[i,o].forEach(l=>a.forEach(y=>u.push(_path.resolve.call(void 0, l,y))));let c={},f=[];return u.forEach(l=>{if(_fs.existsSync.call(void 0, l)){let y=_jiti2.default.call(void 0, __filename)(l);"default"in y&&(y=y.default),c=$e(c,y),f.push(l)}}),c=await Wd(s,"unocss.ts",{},c,!0),t({configDeps:f,configFile:!1,...$e(r||{},c,n)})};var Jd=Q(Re(),1);var Ar=Q(Re(),1);async function Gn({userRoot:e,themeRoot:t},r){let n={mode:"development",command:r},i={},o=_utils.uniq.call(void 0, [t,e]).map(s=>_path.join.call(void 0, s,"vite.config.ts"));for await(let s of o){if(!Ar.default.existsSync(s))continue;let a=await _vite.loadConfigFromFile.call(void 0, n,s);_optionalChain([a, 'optionalAccess', _36 => _36.config])&&(i=_vite.mergeConfig.call(void 0, i,a.config))}return i}async function Wn({clientRoot:e,themeRoot:t,userRoot:r,config:n}){let i=_path.resolve.call(void 0, e,"template.html"),o=await Ar.default.readFile(i,"utf-8"),s="",a="";n.siteConfig.favicon&&(s+=`<link rel="icon" href="${n.siteConfig.favicon}">`);let u=[r,t];n.siteConfig.mode==="auto"&&(s+=`
30
+ `),{code:r,lineOptions:i}}}function Ut(e,t,r){let n=new RegExp(`<${_nullishCoalesce(r, () => ("w+"))}[^>]*class="([\\w+-:;\\/* ]*)"`);return t=Array.isArray(t)?t:[t],e.replace(n,(i,o)=>i.replace(o,`${o} ${t}`))}function $d(e={}){let t=_nullishCoalesce(e.commonDiffClass, () => ("diff")),r=_nullishCoalesce(e.removedLinesClasses, () => (["remove"])),n=_nullishCoalesce(e.removedLinesClasses, () => (["add"])),i=_nullishCoalesce(e.removeLineTag, () => ("--")),o=_nullishCoalesce(e.addLineTag, () => ("++")),s=_nullishCoalesce(e.hasDiffClass, () => ("has-diff"));return{name:"diff",handler:wr({[i]:[t,...r],[o]:[t,...n]},e),postProcess:({code:a})=>a.includes(t)?Ut(a,s,"pre"):a}}function Dd(e={}){let t=_nullishCoalesce(e.hasFocusClass, () => ("has-focus")),r=_nullishCoalesce(e.hasFocusedLinesClass, () => ("has-focused-lines")),n=_nullishCoalesce(e.focusTag, () => ("focus"));return{name:"focus",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function Md(e={}){let t=_nullishCoalesce(e.hasHighlightClass, () => ("has-highlight")),r=_nullishCoalesce(e.hasHighlightedLinesClass, () => ("has-highlighted-lines")),n=_nullishCoalesce(e.highlightTag, () => ("hl"));return{name:"highlight",handler:wr({[n]:[t]},e),postProcess:({code:i})=>i.includes(t)?Ut(i,r,"pre"):i}}function aS(e,t,r){return e.reduce((n,i)=>{let{code:o,lineOptions:s}=_nullishCoalesce(_optionalChain([i, 'access', _13 => _13.handler, 'optionalCall', _14 => _14({code:n.code,lang:r})]), () => (n));return{code:o,lineOptions:[...n.lineOptions,...s]}},{code:t,lineOptions:[]})}function uS(e,t,r){return e.reduce((n,i)=>_nullishCoalesce(_optionalChain([i, 'access', _15 => _15.postProcess, 'optionalCall', _16 => _16({code:n,lang:r})]), () => (n)),t)}async function Id(e={}){let t=await _shiki.getHighlighter.call(void 0, e),r=_nullishCoalesce(e.processors, () => ([]));return{...t,codeToHtml:(n,i)=>{let o=typeof i=="object"?i.lang:i,s=typeof i=="object"?_nullishCoalesce(i.lineOptions, () => ([])):[],a=typeof i=="object"?i.theme:void 0,{code:u,lineOptions:p}=aS(r,n,o),c=t.codeToHtml(u,{lang:o,theme:a,lineOptions:[...p,...s]});return uS(r,c,o)}}}var cS=Od("abcdefghijklmnopqrstuvwxyz",10);function lS(e){e=e.replace(/^(?:\[.*?\])?.*?([\d,-]+).*/,"$1").trim();let t=[];return e?(e.split(",").map(r=>r.split("-").map(n=>parseInt(n,10))).forEach(([r,n])=>{r&&n?t.push(...Array.from({length:n-r+1},(i,o)=>r+o)):t.push(r)}),t.map(r=>({line:r,classes:["highlighted"]}))):[]}var fS={name:"error-level",handler:wr({error:["highlighted","error"],warning:["highlighted","warning"]})};async function Ld(e="material-theme-palenight",t="txt"){let r=typeof e=="string"||"name"in e,n=f=>typeof f=="string"?f:f.name,i=[Dd(),Md({hasHighlightClass:"highlighted"}),$d(),fS],o=await Id({themes:r?[e]:[e.dark,e.light],processors:i}),s=/<pre[^>]*(style=".*?")/,a=/^<pre(.*?)>/,u=/-vue$/,p=/:(no-)?line-numbers$/,c=/\{\{.*?\}\}/g;return(f,l,y)=>{let h=u.test(l)?"":"v-pre";l=l.replace(p,"").replace(u,"").toLowerCase()||t,l&&(o.getLoadedLanguages().includes(l)||(l!==t&&console.warn(Nd.default.yellow(`The language '${l}' is not loaded, falling back to '${t}' for syntax highlighting.`)),l=t));let E=lS(y),_=N=>N.replace(a,(C,b)=>`<pre ${h}${b}>`).replace(s,(C,b)=>C.replace(b,"")),S=new Map,$=N=>h?N:N.replace(c,C=>{let b=S.get(C);return b||(b=cS(),S.set(C,b)),b}),P=N=>(S.forEach((C,b)=>{N=N.replaceAll(C,b)}),N);if(r)return _(P(o.codeToHtml($(f),{lang:l,lineOptions:E,theme:n(e)})));let V=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.dark)})),"va-code-dark","pre"),L=Ut(_(o.codeToHtml(f,{lang:l,lineOptions:E,theme:n(e.light)})),"va-code-light","pre");return V+L}}var pS=/^<pre .*?><code>/;function qd(e){let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i,o]=r,s=n[i],a=s.attrs&&s.attrs[0];if(!a)return t(...r);let u=a[0];if(!u||!/[\d,-]+/.test(u))return t(...r);let p=u.split(",").map(h=>h.split("-").map(E=>parseInt(E,10))),c=o.highlight?o.highlight(s.content,s.info,""):s.content;return`<div class="highlight-lines">${c.replace(pS,"").split(`
31
+ `).map((h,E)=>{let _=E+1;return p.some(([$,P])=>$&&P?_>=$&&_<=P:_===$)?'<div class="highlighted">&nbsp;</div>':"<br>"}).join("")}</div>`+c}}function Bd(e){let t=e.renderer.rules.fence;e.renderer.rules.fence=(...r)=>{let[n,i]=r,o=n[i],s=t(...r);return`<div class="language-${o.info.trim()}"><span class="copy"></span>${s}</div>`}}var _url = require('url');var mS=/(^|.*\/)index.md(#?.*)$/i;function jd(e,t,r){e.renderer.rules.link_open=(o,s,a,u,p)=>{let c=o[s],f=c.attrIndex("href");if(f>=0){let l=c.attrs[f],y=l[1];jt.test(y)?(Object.entries(t).forEach(([E,_])=>{c.attrSet(E,_)}),l[1]=y.replace(Gp,"")):!y.startsWith("#")&&!y.startsWith("mailto:")&&!/\.(?!html|md)\w+($|\?)/i.test(y)&&n(l,u),l[1]=l[1].replace(/\bimport\.meta/g,"import%2Emeta").replace(/\bprocess\.env/g,"process%2Eenv")}return p.renderToken(o,s,a)};function n(o,s){let a=o[1],u=a.match(mS);if(u){let[,p,c]=u;a=p+c}else{let p=a.replace(/[?#].*$/,"");p.endsWith(".md")&&(p=p.replace(/\.md$/,s.cleanUrls==="disabled"?".html":"")),s.cleanUrls==="disabled"&&!p.endsWith(".html")&&!p.endsWith("/")&&(p+=".html");let c=new (0, _url.URL)(a,"http://a.com");a=p+c.search+c.hash}!a.startsWith("/")&&!/^\.\//.test(a)&&(a=`./${a}`),i(a.replace(/\.html$/,""),s),a.startsWith("/")&&(a=`${r}${a}`.replace(/\/+/g,"/")),o[1]=decodeURI(a)}function i(o,s){(s.links||(s.links=[])).push(o)}}async function qs(e,t={},r=!1,n="/"){return e.use(qd).use(Bd).use(Ad,t.blocks).use(jd,{target:"_blank",rel:"noreferrer",...t.externalLinks},n),_optionalChain([t, 'access', _17 => _17.attrs, 'optionalAccess', _18 => _18.disable])||e.use(_markdownitattrs2.default,t.attrs),e.use($s,t.katex),e.use(_markdownitemoji2.default),r||e.use(_markdownitanchor2.default,{slugify:Un,permalink:_markdownitanchor2.default.permalink.ariaHidden({}),...t.anchor}),e.use(hd).use(gd,{...t.frontmatter}).use(yd,{slugify:Un,...t.headers}).use(_d,{...t.sfc}).use(xd).use(Sd,{slugify:Un,...t.toc}),e.use(_markdownittasklists2.default),t.config&&t.config(e),e}async function Vd(e={}){let t=_markdownit2.default.call(void 0, {html:!0,linkify:!0,highlight:await Ld(e.theme),...e.options});return await qs(t,e),t}var _jiti = require('jiti'); var _jiti2 = _interopRequireDefault(_jiti);var _unocss = require('unocss');var Ud=Q(Re(),1);function Gd(e,t,r=""){return e={...e},Object.keys(t).forEach(n=>{_utils.isObject.call(void 0, e[n])?e[n]=Gd(e[n],t[n],r?`${r}.${n}`:n):Array.isArray(e[n])?e[n]=[...e[n],...t[n]]:e[n]=t[n]}),e}async function Wd(e,t,r,n,i=!0){let o=n;for(let s of e){let a=_path.resolve.call(void 0, s,"setup",t);if(Ud.default.existsSync(a)){let{default:u}=_jiti2.default.call(void 0, __filename)(a),p=await u(r);p!==null&&(o=i?Gd(o,p):p)}}return o}async function PS(e){let{config:t}=e,r=["i-ri-clipboard-line","i-ri-archive-line","i-ri-folder-2-line","i-ri-price-tag-3-line","i-ri-cloud-line"].concat(_optionalChain([e, 'access', _19 => _19.config, 'access', _20 => _20.unocss, 'optionalAccess', _21 => _21.safelist])||[]),n="animate-fade-in m-auto text-left".split(" ").concat(["rotate-y-180"]).concat(r),i=t.siteConfig;_optionalChain([i, 'access', _22 => _22.social, 'optionalAccess', _23 => _23.length])&&i.social.forEach(s=>n.push(_optionalChain([s, 'optionalAccess', _24 => _24.icon])||""));let o=_optionalChain([i, 'access', _25 => _25.sponsor, 'optionalAccess', _26 => _26.methods])||[];return o.length&&o.forEach(s=>n.push(_optionalChain([s, 'optionalAccess', _27 => _27.icon])||"")),n}async function TS(e){let{config:t}=e;return{shortcuts:[["btn","px-4 py-1 rounded inline-block bg-$va-c-primary text-white cursor-pointer transition hover:bg-$va-c-primary-light disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50"],["icon-btn","inline-flex justify-center items-center cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-sky-600"],["va-card","shadow hover:shadow-lg"]],presets:[_unocss.presetUno.call(void 0, _optionalChain([t, 'access', _28 => _28.unocssPresets, 'optionalAccess', _29 => _29.uno])),_unocss.presetAttributify.call(void 0, _optionalChain([t, 'access', _30 => _30.unocssPresets, 'optionalAccess', _31 => _31.attributify])),_unocss.presetIcons.call(void 0, {scale:1.2,..._optionalChain([t, 'access', _32 => _32.unocssPresets, 'optionalAccess', _33 => _33.icons])}),_unocss.presetTypography.call(void 0, _optionalChain([t, 'access', _34 => _34.unocssPresets, 'optionalAccess', _35 => _35.typography]))],rules:[["font-serif",{"font-family":"var(--va-font-serif)"}],["font-sans",{"font-family":"var(--va-font-sans)"}],["font-mono",{"font-family":"var(--va-font-mono)"}]],transformers:[_unocss.transformerDirectives.call(void 0, ),_unocss.transformerVariantGroup.call(void 0, )],safelist:await PS(e)}}async function Yd(e){let t=await Promise.resolve().then(() => require("unocss/vite")).then(l=>l.default),{unocss:r}=e.config,n=await TS(e),{themeRoot:i,clientRoot:o,roots:s}=e,a=["uno.config.ts","unocss.config.ts"],u=[];[i,o].forEach(l=>a.forEach(y=>u.push(_path.resolve.call(void 0, l,y))));let c={},f=[];return u.forEach(l=>{if(_fs.existsSync.call(void 0, l)){let y=_jiti2.default.call(void 0, __filename)(l);"default"in y&&(y=y.default),c=$e(c,y),f.push(l)}}),c=await Wd(s,"unocss.ts",{},c,!0),t({configDeps:f,configFile:!1,...$e(r||{},c,n)})}var Jd=Q(Re(),1);var Ar=Q(Re(),1);async function Gn({userRoot:e,themeRoot:t},r){let n={mode:"development",command:r},i={},o=_utils.uniq.call(void 0, [t,e]).map(s=>_path.join.call(void 0, s,"vite.config.ts"));for await(let s of o){if(!Ar.default.existsSync(s))continue;let a=await _vite.loadConfigFromFile.call(void 0, n,s);_optionalChain([a, 'optionalAccess', _36 => _36.config])&&(i=_vite.mergeConfig.call(void 0, i,a.config))}return i}async function Wn({clientRoot:e,themeRoot:t,userRoot:r,config:n}){let i=_path.resolve.call(void 0, e,"template.html"),o=await Ar.default.readFile(i,"utf-8"),s="",a="";n.siteConfig.favicon&&(s+=`<link rel="icon" href="${n.siteConfig.favicon}">`);let u=[r,t];n.siteConfig.mode==="auto"&&(s+=`
32
32
  <script>
33
33
  const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
34
34
  const colorSchemeSetting = localStorage.getItem('vueuse-color-scheme') || 'auto';
@@ -45,7 +45,7 @@ GFS4: `),console.error(e)});K[se]||(ha=global[se]||[],ya(K,ha),K.close=function(
45
45
  ${(_optionalChain([f, 'access', _37 => _37.match, 'call', _38 => _38(/<head>([\s\S]*?)<\/head>/im), 'optionalAccess', _39 => _39[1]])||"").trim()}`,a+=`
46
46
  ${(_optionalChain([f, 'access', _40 => _40.match, 'call', _41 => _41(/<body>([\s\S]*?)<\/body>/im), 'optionalAccess', _42 => _42[1]])||"").trim()}`}return o=o.replace("__ENTRY__",re(_path.join.call(void 0, e,"main.ts"))).replace("<!-- head -->",s).replace("<!-- body -->",a),o}var jS=["@vueuse/schema-org","@vueuse/head","@vueuse/integrations/useFuse","body-scroll-lock","dayjs","dayjs/locale/zh-cn","dayjs/plugin/relativeTime","katex","nprogress","unocss","vue","vue-router","vue-i18n","fuse.js","medium-zoom"],Kd=["@vueuse/core","@vueuse/shared","@unocss/reset","unocss","vue","vue-demi","valaxy","/@valaxyjs/config","/@valaxyjs/context","/@valaxyjs/addons","/@valaxyjs/locales","/@valaxyjs/styles"];function Xd(e){return{name:"valaxy:site",config(t){let r={root:e.clientRoot,publicDir:_path.join.call(void 0, e.userRoot,"public"),define:Hs(e),resolve:{alias:HS(e),dedupe:["vue"]},optimizeDeps:{entries:[_path.resolve.call(void 0, e.clientRoot,"main.ts")],include:[...jS.filter(n=>!Kd.includes(n))],exclude:Kd},server:{fs:{allow:_utils.uniq.call(void 0, [_vite.searchForWorkspaceRoot.call(void 0, e.clientRoot),_vite.searchForWorkspaceRoot.call(void 0, e.themeRoot),_vite.searchForWorkspaceRoot.call(void 0, e.userRoot),_path.dirname.call(void 0, Ge("katex/package.json",!0))])}}};return _isinstalledglobally2.default&&(r.cacheDir=_path.join.call(void 0, e.pkgRoot,"node_modules/.vite"),r.resolve.alias.vue=`${Ge("vue/dist/vue.esm-browser.js",!0)}`),_vite.mergeConfig.call(void 0, t,r)},configureServer(t){return()=>{t.middlewares.use(async(r,n,i)=>{if(r.url.endsWith(".html")){n.setHeader("Content-Type","text/html"),n.statusCode=200,n.end(await Wn(e));return}if(r.url==="/atom.xml"){n.setHeader("Content-Type","application/xml"),n.statusCode=200,n.end(await Jd.default.readFile(_path.resolve.call(void 0, e.userRoot,"dist/atom.xml"),"utf-8"));return}i()})}}}}function Hs(e){return{__DEV__:e.mode==="dev"?"true":"false"}}function HS(e){let t=[{find:"~/",replacement:`${re(e.userRoot)}/`},{find:"valaxy/client/",replacement:`${re(e.clientRoot)}/`},{find:"valaxy/package.json",replacement:re(_path.resolve.call(void 0, e.clientRoot,"../package.json"))},{find:"valaxy",replacement:re(_path.resolve.call(void 0, e.clientRoot,"index.ts"))},{find:"@valaxyjs/client/",replacement:`${re(e.clientRoot)}/`},{find:`valaxy-theme-${e.theme}/`,replacement:`${re(_path.resolve.call(void 0, e.themeRoot))}/`},{find:`valaxy-theme-${e.theme}`,replacement:`${re(_path.resolve.call(void 0, e.themeRoot))}/client/index.ts`}];return e.addons.forEach(r=>{t.push({find:r.name,replacement:`${re(_path.resolve.call(void 0, r.root))}/client/index.ts`})}),t}function Qd({clientRoot:e,themeRoot:t,userRoot:r}){let n=_utils.slash.call(void 0, _path.resolve.call(void 0, e,"setup"));return{name:"valaxy:setup",enforce:"pre",async transform(i,o){if(o.startsWith(n)){let s=o.slice(n.length+1).replace(/\?.*$/,""),a=[],u=[];return _utils.uniq.call(void 0, [t,r]).map(c=>_path.join.call(void 0, c,"setup",s)).forEach((c,f)=>{if(!_fs.existsSync.call(void 0, c))return;a.push(`import __n${f} from '${re(c)}'`);let l=`__n${f}`;/\binjection_return\b/g.test(i)&&(l=`injection_return = ${l}`),/\binjection_arg\b/g.test(i)?l+="(injection_arg)":l+="()",u.push(`// ${c}`,l)}),i=i.replace("/* __imports__ */",a.join(`
47
47
  `)),i=i.replace("/* __injections__ */",u.join(`
48
- `)),i}return null}}}function Zd(e){let t=_utils.objectEntries.call(void 0, Hs(e));return[{name:"valaxy:flags",enforce:"pre",transform(r,n){if(n.match(/\.vue($|\?)/)){let i=r;if(t.forEach(([o,s])=>{r=r.replace(new RegExp(o,"g"),s)}),i!==r)return r}}}]}var XS=e=>{let t=(e.match(/[\u4E00-\u9FA5]/g)||[]).length,r=(e.replace(/[\u4E00-\u9FA5]/g,"").match(/[a-zA-Z0-9_\u0392-\u03C9\u0400-\u04FF]+|[\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF\u3040-\u309F\uAC00-\uD7AF\u0400-\u04FF]+|[\u00E4\u00C4\u00E5\u00C5\u00F6\u00D6]+|\w+/g)||[]).length;return{cn:t,en:r}},QS=({cn:e,en:t},r)=>{let n=e/(r.speed.cn||300)+t/(r.speed.en||100);return n<1?1:Math.ceil(n)},ZS=({cn:e,en:t})=>{let r=e+t;return r<1e3?r:`${Math.round(r/100)/10}k`},eb=(e,t)=>{let r=XS(e);return{countData:r,wordCount:ZS(r),readingTime:QS(r,t.readTime)}},em=({route:e,options:t})=>{if(_fs.existsSync.call(void 0, e.component)){let r=_fs.readFileSync.call(void 0, e.component,"utf-8"),{wordCount:n,readingTime:i}=eb(r,{readTime:Object.assign({speed:{cn:300,en:100}},t.readTime)});e.meta.frontmatter&&(e.meta.frontmatter.wordCount||(e.meta.frontmatter.wordCount=n),e.meta.frontmatter.readingTime||(e.meta.frontmatter.readingTime=i))}};var Yt=Q(Re(),1);var _pascalcase = require('pascal-case');var Gt=Q(Ls(),1),im=Q(Pi(),1);var _lrucache = require('lru-cache'); var _lrucache2 = _interopRequireDefault(_lrucache);var rb="\u200B",nb="<wbr>",tm=(0,im.default)("vitepress:md"),rm=new (0, _lrucache2.default)({max:1024}),ib=/<!--\s*@include:\s*(.*?)\s*-->/g;function ob(e={},t){let r=["process.env"];return t&&r.push("import.meta",...Object.keys(e)),new RegExp(`\\b(${r.map(n=>n.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")).join("|")})`,"g")}function om(e,t,r){return e=e.replace(/<a (.*?)>(.*?)<\/a>/g,"<AppLink $1>$2</AppLink>"),e.replace(t,n=>`${n[0]}${r}${n.slice(1)}`)}var sb=(e,t,r)=>{if(typeof t.title=="string"){let n=e.parseInline(t.title,{})[0];if(n)return Sr(n,{shouldAllowHtml:!1,shouldEscapeText:!1})}return r},ab=(e,t)=>{if(!e||!e.length)return;let r=e.find(([n,i={}])=>n==="meta"&&i.name===t&&i.content);return r&&r[1].content},ub=e=>{let{description:t,head:r}=e;return t!==void 0?t:r&&ab(r,"description")||""};async function sm(e,t={},r,n,i=!1,o=!1,s="with-subfolders"){let a=await Vd(t);r=r.map(p=>ot(p.replace(/\.md$/,"")).replace(/\/index$/,""));let u=ob(n,i);return async(p,c,f)=>{let l=ot(_path2.default.relative(e,c)),y=_path2.default.dirname(c),h=rm.get(p);if(h)return tm(`[cache hit] ${l}`),h;let E=Date.now(),_=[];p=p.replace(ib,(m,g)=>{try{let R=_path2.default.join(y,g),k=_fs2.default.readFileSync(R,"utf-8");return _.push(ot(R)),k}catch (e24){return m}});let S={path:c,relativePath:l,cleanUrls:s},$=a.render(p,S),{frontmatter:P={},headers:V=[],links:L=[],sfcBlocks:N,title:C=""}=S,b=[],x=m=>{console.warn(Gt.default.yellow(`
48
+ `)),i}return null}}}function Zd(e){let t=_utils.objectEntries.call(void 0, Hs(e));return[{name:"valaxy:flags",enforce:"pre",transform(r,n){if(n.match(/\.vue($|\?)/)){let i=r;if(t.forEach(([o,s])=>{r=r.replace(new RegExp(o,"g"),s)}),i!==r)return r}}}]}function XS(e){let t=(e.match(/[\u4E00-\u9FA5]/g)||[]).length,r=(e.replace(/[\u4E00-\u9FA5]/g,"").match(/[a-zA-Z0-9_\u0392-\u03C9\u0400-\u04FF]+|[\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF\u3040-\u309F\uAC00-\uD7AF\u0400-\u04FF]+|[\u00E4\u00C4\u00E5\u00C5\u00F6\u00D6]+|\w+/g)||[]).length;return{cn:t,en:r}}function QS({cn:e,en:t},r){let n=e/(r.speed.cn||300)+t/(r.speed.en||100);return n<1?1:Math.ceil(n)}function ZS({cn:e,en:t}){let r=e+t;return r<1e3?r:`${Math.round(r/100)/10}k`}function eb(e,t){let r=XS(e);return{countData:r,wordCount:ZS(r),readingTime:QS(r,t.readTime)}}function em({route:e,options:t}){if(_fs.existsSync.call(void 0, e.component)){let r=_fs.readFileSync.call(void 0, e.component,"utf-8"),{wordCount:n,readingTime:i}=eb(r,{readTime:Object.assign({speed:{cn:300,en:100}},t.readTime)});e.meta.frontmatter&&(e.meta.frontmatter.wordCount||(e.meta.frontmatter.wordCount=n),e.meta.frontmatter.readingTime||(e.meta.frontmatter.readingTime=i))}}var Yt=Q(Re(),1);var _pascalcase = require('pascal-case');var Gt=Q(Ls(),1),im=Q(Pi(),1);var _lrucache = require('lru-cache'); var _lrucache2 = _interopRequireDefault(_lrucache);var rb="\u200B",nb="<wbr>",tm=(0,im.default)("vitepress:md"),rm=new (0, _lrucache2.default)({max:1024}),ib=/<!--\s*@include:\s*(.*?)\s*-->/g;function ob(e={},t){let r=["process.env"];return t&&r.push("import.meta",...Object.keys(e)),new RegExp(`\\b(${r.map(n=>n.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")).join("|")})`,"g")}function om(e,t,r){return e=e.replace(/<a (.*?)>(.*?)<\/a>/g,"<AppLink $1>$2</AppLink>"),e.replace(t,n=>`${n[0]}${r}${n.slice(1)}`)}function sb(e,t,r){if(typeof t.title=="string"){let n=e.parseInline(t.title,{})[0];if(n)return Sr(n,{shouldAllowHtml:!1,shouldEscapeText:!1})}return r}function ab(e,t){if(!e||!e.length)return;let r=e.find(([n,i={}])=>n==="meta"&&i.name===t&&i.content);return r&&r[1].content}function ub(e){let{description:t,head:r}=e;return t!==void 0?t:r&&ab(r,"description")||""}async function sm(e,t={},r,n,i=!1,o=!1,s="with-subfolders"){let a=await Vd(t);r=r.map(p=>ot(p.replace(/\.md$/,"")).replace(/\/index$/,""));let u=ob(n,i);return async(p,c,f)=>{let l=ot(_path2.default.relative(e,c)),y=_path2.default.dirname(c),h=rm.get(p);if(h)return tm(`[cache hit] ${l}`),h;let E=Date.now(),_=[];p=p.replace(ib,(m,g)=>{try{let R=_path2.default.join(y,g),k=_fs2.default.readFileSync(R,"utf-8");return _.push(ot(R)),k}catch (e24){return m}});let S={path:c,relativePath:l,cleanUrls:s},$=a.render(p,S),{frontmatter:P={},headers:V=[],links:L=[],sfcBlocks:N,title:C=""}=S,b=[],x=m=>{console.warn(Gt.default.yellow(`
49
49
  (!) Found dead link ${Gt.default.cyan(m)} in file ${Gt.default.white(Gt.default.dim(c))}
50
50
  If it is intended, you can use:
51
51
  ${Gt.default.cyan(`<a href="${m}" target="_blank" rel="noreferrer">${m}</a>`)}`)),b.push(m)};if(L){let m=_path2.default.dirname(c);for(let g of L){if(/\.(?!html|md)\w+($|\?)/i.test(g))continue;if(g.replace(jt,"").startsWith("//localhost:")){x(g);continue}g=g.replace(/[?#].*$/,"").replace(/\.(html|md)$/,"");let R=decodeURIComponent(ot(g.startsWith("/")?g.slice(1):_path2.default.relative(e,_path2.default.resolve(m,g)))).replace(/\/index$/,"");(R.endsWith("/")?r.includes(R.slice(0,-1)):r.includes(R)||_fs2.default.existsSync(_path2.default.resolve(m,f,`${R}.html`))||_fs2.default.existsSync(_path2.default.resolve(m,f,`${R}/index.html`)))||x(g)}}let D={title:sb(a,P,C),titleTemplate:P.titleTemplate,description:ub(P),frontmatter:P,headers:V,relativePath:l,path:_path2.default.join(e,l)};o&&(D.lastUpdated=await xr(c));let d="ValaxyMain";function w(){return["main-header","main-header-after","main-nav","main-content","main-content-after","main-nav-before","main-nav-after","comment","footer","aside","aside-custom"].map(R=>`<template #${R}><slot name="${R}" /></template>`).join("")}let O=[...mb(_nullishCoalesce(_optionalChain([N, 'optionalAccess', _43 => _43.scripts, 'access', _44 => _44.map, 'call', _45 => _45(m=>m.content)]), () => ([])),D,u),`<template><${d} :frontmatter="frontmatter" :data="data">`,`<template #main-content-md>${om($,u,nb)}</template>`,w(),"<slot />",`</${d}></template>`,..._nullishCoalesce(_optionalChain([N, 'optionalAccess', _46 => _46.styles, 'access', _47 => _47.map, 'call', _48 => _48(m=>m.content)]), () => ([])),..._nullishCoalesce(_optionalChain([N, 'optionalAccess', _49 => _49.customBlocks, 'access', _50 => _50.map, 'call', _51 => _51(m=>m.content)]), () => ([]))].join(`
@@ -70,13 +70,13 @@ ${a}</script>`);return e}function am(e,t){e.includes("{%")&&e.includes("%}")&&_c
70
70
  `)}function Cb(e){let t=e.addons.filter(o=>o.global).filter(o=>Yt.default.existsSync(_path.join.call(void 0, o.root,"./App.vue"))),r=o=>`Addon${_pascalcase.pascalCase.call(void 0, o)}App`,n=t.map(o=>`import ${r(o.name)} from "${o.name}/App.vue"`).join(`
71
71
  `),i=t.map(o=>`{ component: ${r(o.name)}, props: ${JSON.stringify(o.props)} }`).join(",");return`${n}
72
72
  export default [${i}]`}var wb='import { defineComponent } from "vue"; export default defineComponent({ render: () => null });';function um(e){let t=_path.join.call(void 0, e,"App.vue");return Yt.default.existsSync(t)?[`import AppVue from "${re(t)}"`,"export default AppVue"].join(`
73
- `):wb}function cm(e,t={}){let{config:r}=e,n="/@valaxy",i=e.roots,o,s=!1,a;return{name:"valaxy:loader",enforce:"pre",async configResolved(u){a=u,o=await sm(e.userRoot,r.markdown||{katex:{}},e.pages,a.define,a.command==="build",e.config.siteConfig.lastUpdated)},configureServer(u){u.watcher.add([e.configFile,e.clientRoot,e.themeRoot,e.userRoot])},resolveId(u){return u.startsWith(n)?u:null},load(u){if(u==="/@valaxyjs/config")return`export default ${JSON.stringify(JSON.stringify(r))}`;if(u==="/@valaxyjs/context")return`export default ${JSON.stringify(JSON.stringify({userRoot:e.userRoot}))}`;if(u==="/@valaxyjs/styles")return Sb(i,e);if(u==="/@valaxyjs/locales")return bb(i);if(u==="/@valaxyjs/addons")return Cb(e);if(u==="/@valaxyjs/UserAppVue")return um(e.userRoot);if(u==="/@valaxyjs/ThemeAppVue")return um(e.themeRoot);if(u.startsWith(n))return{code:"",map:{mappings:""}}},async transform(u,p){if(p.endsWith(".md")){am(u,p),u.replace("{%","{%"),u.replace("%}","%}");let{vueSrc:c,deadLinks:f,includes:l}=await o(u,p,a.publicDir);return f.length&&(s=!0),l.length&&l.forEach(y=>{this.addWatchFile(y)}),c}},renderStart(){if(s&&!r.ignoreDeadLinks)throw new Error("One or more pages contain dead links.")},async handleHotUpdate(u){let{file:p,server:c,read:f}=u,l=h=>{_optionalChain([t, 'access', _55 => _55.onConfigReload, 'optionalCall', _56 => _56(h,e.config)]),Object.assign(e.config,h),r=h;let E=["/@valaxyjs/config","/@valaxyjs/context"];return[...Array.from(E).map(S=>c.moduleGraph.getModuleById(S))].filter(S=>!!S)};if([e.configFile].includes(p)){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===e.siteConfigFile){let{siteConfig:h}=await Nn(e.userRoot);return r.siteConfig=$e(h,ks),l(r)}if(p===e.themeConfigFile){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===_path.resolve.call(void 0, e.themeRoot,"valaxy.config.ts")){let h=Ps(e),E=Ht(e.config,h),{config:_}=await Os(e,E);return l(_)}if(p.endsWith(".md")){let h=await f(),{pageData:E,vueSrc:_}=await o(h,p,_path.join.call(void 0, e.userRoot,"public")),$={path:`/${ot(_path.relative.call(void 0, `${e.userRoot}/pages`,p))}`,pageData:E};c.ws.send({type:"custom",event:"valaxy:pageData",data:$}),u.read=()=>_}}}}var Us=new (0, _markdownit2.default)({html:!0}),Mb=(e="",t="html")=>{switch(t){case"md":return e;case"html":return Us.render(e);case"text":return _htmltotext.convert.call(void 0, Us.render(e))}};async function Rr(e,t={}){let{roots:r,config:n}=e,i=await Yd(e),o=cm(e,t);await qs(Us,n.markdown,!0);let s=new Set(["annotation","math","menclose","mfrac","mglyph","mi","mlabeledtr","mn","mo","mover","mpadded","mphantom","mroot","mrow","mspace","msqrt","mstyle","msub","msubsup","msup","mtable","mtd","mtext","mtr","munder","munderover","semantics","meting-js"]);return[_pluginvue2.default.call(void 0, {include:[/\.vue$/,/\.md$/],template:{compilerOptions:{isCustomElement:a=>s.has(a)},..._optionalChain([n, 'access', _57 => _57.vue, 'optionalAccess', _58 => _58.template])},...n.vue}),Xd(e),Qd(e),o,_vitepluginpages2.default.call(void 0, {extensions:["vue","md"],dirs:r.map(a=>`${a}/pages`),...n.pages,async extendRoute(a,u){let p=a.component,c={};if(a.meta?a.meta.frontmatter||(a.meta.frontmatter=c):a.meta={frontmatter:c},a.path=encodeURI(a.path),a.path==="/"&&(a.meta.layout="home"),r.forEach(f=>{let l=f+a.component;_fs2.default.existsSync(l)&&(p=l)}),a.path.startsWith("/posts/")&&(a.meta.layout="post"),p.endsWith(".md")){let f=_fs2.default.readFileSync(p,"utf-8"),{data:l,excerpt:y,content:h}=_graymatter2.default.call(void 0, f,{excerpt_separator:Mn}),E=e.config.siteConfig.lastUpdated,_=_optionalChain([e, 'access', _59 => _59.config, 'access', _60 => _60.siteConfig, 'access', _61 => _61.date, 'optionalAccess', _62 => _62.format]);if(l.date||(l.date=_fs2.default.statSync(p).mtime),l.date=_dayjs2.default.call(void 0, l.date).format(_),E&&(l.updated||(l.updated=_fs2.default.statSync(p).ctime)),l.updated=_dayjs2.default.call(void 0, l.updated).format(_),a.meta=Object.assign(a.meta,{frontmatter:Object.assign(c,l),excerpt:y?Mb(y,l.excerpt_type):""}),l.layout&&(a.meta.layout=l.layout),_optionalChain([a, 'access', _63 => _63.meta, 'access', _64 => _64.frontmatter, 'optionalAccess', _65 => _65.updated])||(a.meta.frontmatter.updated=a.meta.frontmatter.date),a.meta.frontmatter.tags){let S=a.meta.frontmatter.tags;typeof S=="string"&&(a.meta.frontmatter.tags=[S])}n.siteConfig.statistics.enable&&em({options:n.siteConfig.statistics,route:a}),_optionalChain([n, 'access', _66 => _66.extendMd, 'optionalCall', _67 => _67({route:a,data:l,excerpt:y,content:h,path:p})])}return _optionalChain([n, 'access', _68 => _68.pages, 'optionalAccess', _69 => _69.extendRoute, 'optionalCall', _70 => _70(a,u)]),a}}),_vitepluginvuelayouts2.default.call(void 0, {layoutsDirs:r.map(a=>`${a}/layouts`)}),_vite4.default.call(void 0, {extensions:["vue","md"],include:[/\.vue$/,/\.vue\?vue/,/\.md$/],exclude:[],allowOverrides:!0,dirs:r.map(a=>`${a}/components`).concat(r.map(a=>`${a}/layouts`)).concat(["src/components","components"]),dts:`${e.userRoot}/components.d.ts`,...n.components}),i,_vite6.default.call(void 0, {runtimeOnly:!0,compositionOnly:!0,include:r.map(a=>`${a}/locales/**`)}),_vite.splitVendorChunkPlugin.call(void 0, ),Zd(e)]}async function fm(e,t={},r={}){return process.env.EDITOR=process.env.EDITOR||"code",await _vite.createServer.call(void 0, _vite.mergeConfig.call(void 0, t,{plugins:await Rr(e,r)}))}var zn;function Ys(e,t,r){console.log(),console.log(` ${_kolorist.bold.call(void 0, "\u{1F30C} Valaxy")} ${_kolorist.blue.call(void 0, `v${Jr}`)}`),console.log(),console.log(`${_kolorist.dim.call(void 0, " \u{1FA90} theme ")} > ${e.theme?_kolorist.green.call(void 0, e.theme):_kolorist.gray.call(void 0, "none")}`),console.log(` ${_kolorist.dim.call(void 0, "\u{1F4C1}")} ${_kolorist.dim.call(void 0, _path2.default.resolve(e.userRoot))}`),t&&(console.log(),console.log(`${_kolorist.dim.call(void 0, " Preview ")} > ${_kolorist.cyan.call(void 0, `http://localhost:${_kolorist.bold.call(void 0, t)}/`)}`),r&&Object.values(_os2.default.networkInterfaces()).forEach(n=>(n||[]).filter(i=>i.family==="IPv4"&&!i.address.includes("127.0.0.1")).forEach(({address:i})=>{console.log(`${_kolorist.dim.call(void 0, " Network ")} > ${_kolorist.blue.call(void 0, `http://${i}:${_kolorist.bold.call(void 0, t)}/`)}`)})),console.log(),console.log(`${_kolorist.dim.call(void 0, " shortcuts ")} > ${_kolorist.underline.call(void 0, "r")}${_kolorist.dim.call(void 0, "estart | ")}${_kolorist.underline.call(void 0, "o")}${_kolorist.dim.call(void 0, "pen | ")}${_kolorist.underline.call(void 0, "e")}${_kolorist.dim.call(void 0, "dit")}`)),console.log()}async function kr(e,t){zn&&await zn.close();let r=_vite.mergeConfig.call(void 0, await Gn(e,"serve"),t);try{zn=await fm(e,r,{async onConfigReload(n,i,o=!1){o&&(_consola2.default.info("[valaxy]",`${_kolorist.yellow.call(void 0, "force")} reload the server`),kr(e,t));let s=!1;n.theme!==i.theme&&(s=!0),s&&kr(e,t)}}),await zn.listen()}catch(n){_consola2.default.error(`failed to start server. error:
74
- `),console.error(n),process.exit(1)}}function hm(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),mm.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(t,r)=>{if(r.ctrl&&r.name==="c")process.exit();else{let[n]=e.filter(i=>i.name===t);if(n)try{n.action()}catch(i){console.error(`Failed to execute shortcut ${n.fullName}`,i)}}})}var Kn=Q(Re(),1);var _node = require('vite-ssg/node');var _vitessgsitemap = require('vite-ssg-sitemap'); var _vitessgsitemap2 = _interopRequireDefault(_vitessgsitemap);async function ym(e,t={}){let r=_vite.mergeConfig.call(void 0, t,{plugins:await Rr(e)});await _vite.build.call(void 0, r)}async function vm(e,t={}){let r={plugins:await Rr(e),ssr:{noExternal:["workbox-window",/vue-i18n/]}};r.ssgOptions={script:"async",formatting:"minify",includedRoutes(i,o){let s=["/:..all",Wp],a=i.filter(c=>c.startsWith("/posts/")).length,u=Math.ceil(a/e.config.siteConfig.pageSize),p=Array.from({length:u},(c,f)=>f+1);return o.filter(c=>!s.includes(c.path)).flatMap(c=>c.path==="/page/:page"?p.map(f=>`/page/${f}`):c.path)},onFinished(){_vitessgsitemap2.default.call(void 0, {hostname:e.config.siteConfig.url})}};let n=_vite.mergeConfig.call(void 0, r,t);await _node.build.call(void 0, {},n)}var Em=async e=>{let{userRoot:t}=e,r=_path.resolve.call(void 0, t,"dist/index.html");if(Kn.default.existsSync(r)){_consola2.default.info("post process for ssg...");let n=await Kn.default.readFile(r,"utf-8"),i="</html>";if(!n.endsWith(i)){let o=n.lastIndexOf(i);await Kn.default.writeFile(r,n.slice(0,o+i.length),"utf-8")}}};var Sm=Q(Pn(),1),Xn=Q(Re(),1);var _feed = require('feed');var zs=Q(Re(),1);async function Jb(e){return await xr(e,"created")||(await zs.default.stat(e)).ctime}async function Xb(e){return await xr(e,"created")||(await zs.default.stat(e)).mtime}async function xm(e,t,r="YYYY-MM-DD HH:mm:ss",n=!0){e.date||(e.date=await Jb(t)),e.date=_dayjs2.default.call(void 0, e.date).format(r),n&&(e.updated||(e.updated=await Xb(t)),e.updated=_dayjs2.default.call(void 0, e.updated).format(r))}var iC=_markdownit2.default.call(void 0, {html:!0,breaks:!0,linkify:!0});async function bm(e){let{config:t}=e,r=t.siteConfig;if(!r.url||r.url==="/"){_consola2.default.error("You must set `url` (like `https://example.com`) in `site.config.ts` to generate rss.");return}let n=r.url,i=r.url.slice(0,-1),o={name:_optionalChain([r, 'access', _71 => _71.author, 'optionalAccess', _72 => _72.name]),email:_optionalChain([r, 'access', _73 => _73.author, 'optionalAccess', _74 => _74.email]),link:_optionalChain([r, 'access', _75 => _75.author, 'optionalAccess', _76 => _76.link])};_consola2.default.info(`RSS Site Url: ${_kolorist.cyan.call(void 0, n)}`);let s=_optionalChain([r, 'access', _77 => _77.license, 'optionalAccess', _78 => _78.type])==="zero"?"1.0":"4.0",a={title:r.title||"Valaxy Blog",description:r.description,id:n||"valaxy",link:n,copyright:`CC ${_optionalChain([r, 'access', _79 => _79.license, 'optionalAccess', _80 => _80.type, 'optionalAccess', _81 => _81.toUpperCase, 'call', _82 => _82()])} ${s} ${new Date().getFullYear()} \xA9 ${_optionalChain([r, 'access', _83 => _83.author, 'optionalAccess', _84 => _84.name])}`,feedLinks:{json:`${n}feed.json`,atom:`${n}feed.atom`,rss:`${n}feed.xml`}},u=await(0,Sm.default)(`${e.userRoot}/pages/posts/**/*.md`),p=[];for await(let h of u){let E=Xn.default.readFileSync(h,"utf-8"),{data:_,content:S,excerpt:$}=_graymatter2.default.call(void 0, E,{excerpt_separator:Mn});if(_.draft){_consola2.default.warn(`Ignore draft post: ${_kolorist.dim.call(void 0, h)}`);continue}if(_.hide)continue;await xm(_,h,_optionalChain([r, 'access', _85 => _85.date, 'optionalAccess', _86 => _86.format]),r.lastUpdated);let P=iC.render($||S.slice(0,100)).replace('src="/',`src="${i}/`);_optionalChain([_, 'access', _87 => _87.image, 'optionalAccess', _88 => _88.startsWith, 'call', _89 => _89("/")])&&(_.image=i+_.image),p.push({title:"",..._,id:(_.id||"").toString(),date:new Date(_.date),published:new Date(_.updated||_.date),content:P,author:[o],link:i+h.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,"")})}p.sort((h,E)=>+new Date(E.published||E.date)-+new Date(h.published||h.date));let c=_optionalChain([r, 'access', _90 => _90.author, 'optionalAccess', _91 => _91.avatar])||"/favicon.svg";a.author=o,a.image=Yp(c)?_optionalChain([r, 'access', _92 => _92.author, 'optionalAccess', _93 => _93.avatar]):`${i}${As("/",c)}`,a.favicon=`${i}${_optionalChain([r, 'access', _94 => _94.feed, 'optionalAccess', _95 => _95.favicon])||r.favicon}`;let f=new (0, _feed.Feed)(a);p.forEach(h=>f.addItem(h)),await Xn.default.ensureDir(_path.dirname.call(void 0, `./dist/${_optionalChain([r, 'access', _96 => _96.feed, 'optionalAccess', _97 => _97.name])} || 'feed.xml'`));let l="./dist";["xml","atom","json"].forEach(h=>{let E="",_=`${l}/${_optionalChain([r, 'access', _98 => _98.feed, 'optionalAccess', _99 => _99.name])||"feed"}.${h}`;h==="xml"?E=f.rss2():h==="atom"?(_optionalChain([r, 'access', _100 => _100.feed, 'optionalAccess', _101 => _101.name])||(_=`${l}/atom.xml`),E=f.atom1()):h==="json"&&(E=f.json1()),Xn.default.writeFileSync(_,E,"utf-8"),_consola2.default.info(`${h}: ${_}`)})}var Qn=Q(Re(),1),Cm=Q(Pn(),1);function zt(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}async function aC(e){_consola2.default.info(`Generate List for Fuse Search by (${_kolorist.cyan.call(void 0, "fuse.js")}) ...`);let t=await(0,Cm.default)(`${e.userRoot}/pages/posts/**/*.md`),r=[];for await(let n of t){let i=Qn.default.readFileSync(n,"utf-8"),{data:o,excerpt:s,content:a}=_graymatter2.default.call(void 0, i,{excerpt_separator:"<!-- more -->"});if(o.draft){_consola2.default.warn(`Ignore draft post: ${_kolorist.dim.call(void 0, n)}`);continue}o.hide||r.push({title:o.title||"",tags:(typeof o.tags=="string"?[o.tags]:o.tags)||[],categories:o.categories||[],author:e.config.siteConfig.author.name,excerpt:s||a.slice(0,100),link:encodeURI(n.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,""))})}return r}var Am=e=>{e.command("fuse [root]","generate fuse list for search",t=>zt(t).strict().help(),async({root:t})=>{yr();let r=await De({userRoot:t},"build"),n=await aC(r);await Qn.default.ensureDir("./dist");let i=`${r.userRoot}/dist/fuse-list.json`;Qn.default.writeJSONSync(i,n),_consola2.default.info(`Generate fuse list in ${_kolorist.dim.call(void 0, i)}`)})};var uh=Q(nh(),1);var _promises = require('fs/promises');var _ejs = require('ejs');async function oi(e){try{return await _promises.access.call(void 0, e),!0}catch (e25){return!1}}var Pr=process.cwd(),ih=`---
73
+ `):wb}function cm(e,t={}){let{config:r}=e,n="/@valaxy",i=e.roots,o,s=!1,a;return{name:"valaxy:loader",enforce:"pre",async configResolved(u){a=u,o=await sm(e.userRoot,r.markdown||{katex:{}},e.pages,a.define,a.command==="build",e.config.siteConfig.lastUpdated)},configureServer(u){u.watcher.add([e.configFile,e.clientRoot,e.themeRoot,e.userRoot])},resolveId(u){return u.startsWith(n)?u:null},load(u){if(u==="/@valaxyjs/config")return`export default ${JSON.stringify(JSON.stringify(r))}`;if(u==="/@valaxyjs/context")return`export default ${JSON.stringify(JSON.stringify({userRoot:e.userRoot}))}`;if(u==="/@valaxyjs/styles")return Sb(i,e);if(u==="/@valaxyjs/locales")return bb(i);if(u==="/@valaxyjs/addons")return Cb(e);if(u==="/@valaxyjs/UserAppVue")return um(e.userRoot);if(u==="/@valaxyjs/ThemeAppVue")return um(e.themeRoot);if(u.startsWith(n))return{code:"",map:{mappings:""}}},async transform(u,p){if(p.endsWith(".md")){am(u,p),u.replace("{%","{%"),u.replace("%}","%}");let{vueSrc:c,deadLinks:f,includes:l}=await o(u,p,a.publicDir);return f.length&&(s=!0),l.length&&l.forEach(y=>{this.addWatchFile(y)}),c}},renderStart(){if(s&&!r.ignoreDeadLinks)throw new Error("One or more pages contain dead links.")},async handleHotUpdate(u){let{file:p,server:c,read:f}=u,l=h=>{_optionalChain([t, 'access', _55 => _55.onConfigReload, 'optionalCall', _56 => _56(h,e.config)]),Object.assign(e.config,h),r=h;let E=["/@valaxyjs/config","/@valaxyjs/context"];return[...Array.from(E).map(S=>c.moduleGraph.getModuleById(S))].filter(S=>!!S)};if([e.configFile].includes(p)){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===e.siteConfigFile){let{siteConfig:h}=await Nn(e.userRoot);return r.siteConfig=$e(h,ks),l(r)}if(p===e.themeConfigFile){let{config:h}=await De({userRoot:e.userRoot});return l(h)}if(p===_path.resolve.call(void 0, e.themeRoot,"valaxy.config.ts")){let h=Ps(e),E=Ht(e.config,h),{config:_}=await Os(e,E);return l(_)}if(p.endsWith(".md")){let h=await f(),{pageData:E,vueSrc:_}=await o(h,p,_path.join.call(void 0, e.userRoot,"public")),$={path:`/${ot(_path.relative.call(void 0, `${e.userRoot}/pages`,p))}`,pageData:E};c.ws.send({type:"custom",event:"valaxy:pageData",data:$}),u.read=()=>_}}}}var Us=new (0, _markdownit2.default)({html:!0});function Mb(e="",t="html"){switch(t){case"md":return e;case"html":return Us.render(e);case"text":return _htmltotext.convert.call(void 0, Us.render(e))}}async function Rr(e,t={}){let{roots:r,config:n}=e,i=await Yd(e),o=cm(e,t);await qs(Us,n.markdown,!0);let s=new Set(["annotation","math","menclose","mfrac","mglyph","mi","mlabeledtr","mn","mo","mover","mpadded","mphantom","mroot","mrow","mspace","msqrt","mstyle","msub","msubsup","msup","mtable","mtd","mtext","mtr","munder","munderover","semantics","meting-js"]);return[_pluginvue2.default.call(void 0, {include:[/\.vue$/,/\.md$/],template:{compilerOptions:{isCustomElement:a=>s.has(a)},..._optionalChain([n, 'access', _57 => _57.vue, 'optionalAccess', _58 => _58.template])},...n.vue}),Xd(e),Qd(e),o,_vitepluginpages2.default.call(void 0, {extensions:["vue","md"],dirs:r.map(a=>`${a}/pages`),...n.pages,async extendRoute(a,u){let p=a.component,c={};if(a.meta?a.meta.frontmatter||(a.meta.frontmatter=c):a.meta={frontmatter:c},a.path=encodeURI(a.path),a.path==="/"&&(a.meta.layout="home"),r.forEach(f=>{let l=f+a.component;_fs2.default.existsSync(l)&&(p=l)}),a.path.startsWith("/posts/")&&(a.meta.layout="post"),p.endsWith(".md")){let f=_fs2.default.readFileSync(p,"utf-8"),{data:l,excerpt:y,content:h}=_graymatter2.default.call(void 0, f,{excerpt_separator:Mn}),E=e.config.siteConfig.lastUpdated,_=_optionalChain([e, 'access', _59 => _59.config, 'access', _60 => _60.siteConfig, 'access', _61 => _61.date, 'optionalAccess', _62 => _62.format]);if(l.date||(l.date=_fs2.default.statSync(p).mtime),l.date=_dayjs2.default.call(void 0, l.date).format(_),E&&(l.updated||(l.updated=_fs2.default.statSync(p).ctime)),l.updated=_dayjs2.default.call(void 0, l.updated).format(_),a.meta=Object.assign(a.meta,{frontmatter:Object.assign(c,l),excerpt:y?Mb(y,l.excerpt_type):""}),l.layout&&(a.meta.layout=l.layout),_optionalChain([a, 'access', _63 => _63.meta, 'access', _64 => _64.frontmatter, 'optionalAccess', _65 => _65.updated])||(a.meta.frontmatter.updated=a.meta.frontmatter.date),a.meta.frontmatter.tags){let S=a.meta.frontmatter.tags;typeof S=="string"&&(a.meta.frontmatter.tags=[S])}n.siteConfig.statistics.enable&&em({options:n.siteConfig.statistics,route:a}),_optionalChain([n, 'access', _66 => _66.extendMd, 'optionalCall', _67 => _67({route:a,data:l,excerpt:y,content:h,path:p})])}return _optionalChain([n, 'access', _68 => _68.pages, 'optionalAccess', _69 => _69.extendRoute, 'optionalCall', _70 => _70(a,u)]),a}}),_vitepluginvuelayouts2.default.call(void 0, {layoutsDirs:r.map(a=>`${a}/layouts`)}),_vite4.default.call(void 0, {extensions:["vue","md"],include:[/\.vue$/,/\.vue\?vue/,/\.md$/],exclude:[],allowOverrides:!0,dirs:r.map(a=>`${a}/components`).concat(r.map(a=>`${a}/layouts`)).concat(["src/components","components"]),dts:`${e.userRoot}/components.d.ts`,...n.components}),i,_vite6.default.call(void 0, {runtimeOnly:!0,compositionOnly:!0,include:r.map(a=>`${a}/locales/**`)}),_vite.splitVendorChunkPlugin.call(void 0, ),Zd(e)]}async function fm(e,t={},r={}){return process.env.EDITOR=process.env.EDITOR||"code",await _vite.createServer.call(void 0, _vite.mergeConfig.call(void 0, t,{plugins:await Rr(e,r)}))}var zn;function Ys(e,t,r){console.log(),console.log(` ${_kolorist.bold.call(void 0, "\u{1F30C} Valaxy")} ${_kolorist.blue.call(void 0, `v${Jr}`)}`),console.log(),console.log(`${_kolorist.dim.call(void 0, " \u{1FA90} theme ")} > ${e.theme?_kolorist.green.call(void 0, e.theme):_kolorist.gray.call(void 0, "none")}`),console.log(` ${_kolorist.dim.call(void 0, "\u{1F4C1}")} ${_kolorist.dim.call(void 0, _path2.default.resolve(e.userRoot))}`),t&&(console.log(),console.log(`${_kolorist.dim.call(void 0, " Preview ")} > ${_kolorist.cyan.call(void 0, `http://localhost:${_kolorist.bold.call(void 0, t)}/`)}`),r&&Object.values(_os2.default.networkInterfaces()).forEach(n=>(n||[]).filter(i=>i.family==="IPv4"&&!i.address.includes("127.0.0.1")).forEach(({address:i})=>{console.log(`${_kolorist.dim.call(void 0, " Network ")} > ${_kolorist.blue.call(void 0, `http://${i}:${_kolorist.bold.call(void 0, t)}/`)}`)})),console.log(),console.log(`${_kolorist.dim.call(void 0, " shortcuts ")} > ${_kolorist.underline.call(void 0, "r")}${_kolorist.dim.call(void 0, "estart | ")}${_kolorist.underline.call(void 0, "o")}${_kolorist.dim.call(void 0, "pen | ")}${_kolorist.underline.call(void 0, "e")}${_kolorist.dim.call(void 0, "dit")}`)),console.log()}async function kr(e,t){zn&&await zn.close();let r=_vite.mergeConfig.call(void 0, await Gn(e,"serve"),t);try{zn=await fm(e,r,{async onConfigReload(n,i,o=!1){o&&(_consola2.default.info("[valaxy]",`${_kolorist.yellow.call(void 0, "force")} reload the server`),kr(e,t));let s=!1;n.theme!==i.theme&&(s=!0),s&&kr(e,t)}}),await zn.listen()}catch(n){_consola2.default.error(`failed to start server. error:
74
+ `),console.error(n),process.exit(1)}}function hm(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),mm.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(t,r)=>{if(r.ctrl&&r.name==="c")process.exit();else{let[n]=e.filter(i=>i.name===t);if(n)try{n.action()}catch(i){console.error(`Failed to execute shortcut ${n.fullName}`,i)}}})}var Kn=Q(Re(),1);var _node = require('vite-ssg/node');var _vitessgsitemap = require('vite-ssg-sitemap'); var _vitessgsitemap2 = _interopRequireDefault(_vitessgsitemap);async function ym(e,t={}){let r=_vite.mergeConfig.call(void 0, t,{plugins:await Rr(e)});await _vite.build.call(void 0, r)}async function vm(e,t={}){let r={plugins:await Rr(e),ssr:{noExternal:["workbox-window",/vue-i18n/]}};r.ssgOptions={script:"async",formatting:"minify",includedRoutes(i,o){let s=["/:..all",Wp],a=i.filter(c=>c.startsWith("/posts/")).length,u=Math.ceil(a/e.config.siteConfig.pageSize),p=Array.from({length:u},(c,f)=>f+1);return o.filter(c=>!s.includes(c.path)).flatMap(c=>c.path==="/page/:page"?p.map(f=>`/page/${f}`):c.path)},onFinished(){_vitessgsitemap2.default.call(void 0, {hostname:e.config.siteConfig.url})}};let n=_vite.mergeConfig.call(void 0, r,t);await _node.build.call(void 0, {},n)}async function Em(e){let{userRoot:t}=e,r=_path.resolve.call(void 0, t,"dist/index.html");if(Kn.default.existsSync(r)){_consola2.default.info("post process for ssg...");let n=await Kn.default.readFile(r,"utf-8"),i="</html>";if(!n.endsWith(i)){let o=n.lastIndexOf(i);await Kn.default.writeFile(r,n.slice(0,o+i.length),"utf-8")}}}var Sm=Q(Pn(),1),Xn=Q(Re(),1);var _feed = require('feed');var zs=Q(Re(),1);async function Jb(e){return await xr(e,"created")||(await zs.default.stat(e)).ctime}async function Xb(e){return await xr(e,"created")||(await zs.default.stat(e)).mtime}async function xm(e,t,r="YYYY-MM-DD HH:mm:ss",n=!0){e.date||(e.date=await Jb(t)),e.date=_dayjs2.default.call(void 0, e.date).format(r),n&&(e.updated||(e.updated=await Xb(t)),e.updated=_dayjs2.default.call(void 0, e.updated).format(r))}var iC=_markdownit2.default.call(void 0, {html:!0,breaks:!0,linkify:!0});async function bm(e){let{config:t}=e,r=t.siteConfig;if(!r.url||r.url==="/"){_consola2.default.error("You must set `url` (like `https://example.com`) in `site.config.ts` to generate rss.");return}let n=r.url,i=r.url.slice(0,-1),o={name:_optionalChain([r, 'access', _71 => _71.author, 'optionalAccess', _72 => _72.name]),email:_optionalChain([r, 'access', _73 => _73.author, 'optionalAccess', _74 => _74.email]),link:_optionalChain([r, 'access', _75 => _75.author, 'optionalAccess', _76 => _76.link])};_consola2.default.info(`RSS Site Url: ${_kolorist.cyan.call(void 0, n)}`);let s=_optionalChain([r, 'access', _77 => _77.license, 'optionalAccess', _78 => _78.type])==="zero"?"1.0":"4.0",a={title:r.title||"Valaxy Blog",description:r.description,id:n||"valaxy",link:n,copyright:`CC ${_optionalChain([r, 'access', _79 => _79.license, 'optionalAccess', _80 => _80.type, 'optionalAccess', _81 => _81.toUpperCase, 'call', _82 => _82()])} ${s} ${new Date().getFullYear()} \xA9 ${_optionalChain([r, 'access', _83 => _83.author, 'optionalAccess', _84 => _84.name])}`,feedLinks:{json:`${n}feed.json`,atom:`${n}feed.atom`,rss:`${n}feed.xml`}},u=await(0,Sm.default)(`${e.userRoot}/pages/posts/**/*.md`),p=[];for await(let h of u){let E=Xn.default.readFileSync(h,"utf-8"),{data:_,content:S,excerpt:$}=_graymatter2.default.call(void 0, E,{excerpt_separator:Mn});if(_.draft){_consola2.default.warn(`Ignore draft post: ${_kolorist.dim.call(void 0, h)}`);continue}if(_.hide)continue;await xm(_,h,_optionalChain([r, 'access', _85 => _85.date, 'optionalAccess', _86 => _86.format]),r.lastUpdated);let P=iC.render($||S.slice(0,100)).replace('src="/',`src="${i}/`);_optionalChain([_, 'access', _87 => _87.image, 'optionalAccess', _88 => _88.startsWith, 'call', _89 => _89("/")])&&(_.image=i+_.image),p.push({title:"",..._,id:(_.id||"").toString(),date:new Date(_.date),published:new Date(_.updated||_.date),content:P,author:[o],link:i+h.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,"")})}p.sort((h,E)=>+new Date(E.published||E.date)-+new Date(h.published||h.date));let c=_optionalChain([r, 'access', _90 => _90.author, 'optionalAccess', _91 => _91.avatar])||"/favicon.svg";a.author=o,a.image=Yp(c)?_optionalChain([r, 'access', _92 => _92.author, 'optionalAccess', _93 => _93.avatar]):`${i}${As("/",c)}`,a.favicon=`${i}${_optionalChain([r, 'access', _94 => _94.feed, 'optionalAccess', _95 => _95.favicon])||r.favicon}`;let f=new (0, _feed.Feed)(a);p.forEach(h=>f.addItem(h)),await Xn.default.ensureDir(_path.dirname.call(void 0, `./dist/${_optionalChain([r, 'access', _96 => _96.feed, 'optionalAccess', _97 => _97.name])} || 'feed.xml'`));let l="./dist";["xml","atom","json"].forEach(h=>{let E="",_=`${l}/${_optionalChain([r, 'access', _98 => _98.feed, 'optionalAccess', _99 => _99.name])||"feed"}.${h}`;h==="xml"?E=f.rss2():h==="atom"?(_optionalChain([r, 'access', _100 => _100.feed, 'optionalAccess', _101 => _101.name])||(_=`${l}/atom.xml`),E=f.atom1()):h==="json"&&(E=f.json1()),Xn.default.writeFileSync(_,E,"utf-8"),_consola2.default.info(`${h}: ${_}`)})}var Qn=Q(Re(),1),Cm=Q(Pn(),1);function zt(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}async function aC(e){_consola2.default.info(`Generate List for Fuse Search by (${_kolorist.cyan.call(void 0, "fuse.js")}) ...`);let t=await(0,Cm.default)(`${e.userRoot}/pages/posts/**/*.md`),r=[];for await(let n of t){let i=Qn.default.readFileSync(n,"utf-8"),{data:o,excerpt:s,content:a}=_graymatter2.default.call(void 0, i,{excerpt_separator:"<!-- more -->"});if(o.draft){_consola2.default.warn(`Ignore draft post: ${_kolorist.dim.call(void 0, n)}`);continue}o.hide||r.push({title:o.title||"",tags:(typeof o.tags=="string"?[o.tags]:o.tags)||[],categories:o.categories||[],author:e.config.siteConfig.author.name,excerpt:s||a.slice(0,100),link:encodeURI(n.replace(`${e.userRoot}/pages`,"").replace(/\.md$/,""))})}return r}function Am(e){e.command("fuse [root]","generate fuse list for search",t=>zt(t).strict().help(),async({root:t})=>{yr();let r=await De({userRoot:t},"build"),n=await aC(r);await Qn.default.ensureDir("./dist");let i=`${r.userRoot}/dist/fuse-list.json`;Qn.default.writeJSONSync(i,n),_consola2.default.info(`Generate fuse list in ${_kolorist.dim.call(void 0, i)}`)})}var uh=Q(nh(),1);var _promises = require('fs/promises');var _ejs = require('ejs');async function oi(e){try{return await _promises.access.call(void 0, e),!0}catch (e25){return!1}}var Pr=process.cwd(),ih=`---
75
75
  layout: <%=layout%>
76
76
  title: <%=title%>
77
77
  date: <%=date%>
78
78
  ---
79
- `;var oh=async e=>{let{clientRoot:t,themeRoot:r}=await De({userRoot:Pr}),n=[Pr,r,t];for(let i of n){let o=_path2.default.resolve(i,"scaffolds",`${e}.md`);if(await oi(o))return _promises.readFile.call(void 0, o,"utf-8")}return!1};var BC=_path.resolve.call(void 0, Pr,"pages"),ah=async e=>{let{path:t,title:r}=e,n=t||_path.join.call(void 0, "posts",r),i=0;for(;;){let o=_path.join.call(void 0, BC,n);if(i&&(o=`${o}-${i}`),o=_utils.ensureSuffix.call(void 0, ".md",o),!await oi(o)){let s=await jC(e);return _promises.writeFile.call(void 0, o,s,"utf-8"),o}i++}};async function jC({date:e,title:t,layout:r="post"}){let n=await oh(r);n||(n=ih);let i="YYYY-MM-DD HH:mm:ss";return _ejs.render.call(void 0, n,{title:t,layout:r,date:e?_dayjs2.default.call(void 0, ).format(i):""})}var ch=e=>{e.command("new <title>","Draft a new post",t=>{t.usage("$0 <title> -p [path] -l [layout]").positional("title",{describe:"The title of the new post",required:!0}).option("path",{alias:"p",type:"string",describe:"the path to generate new post. Customize the path of post to generate"}).option("layout",{alias:"l",type:"string",default:"post"}).option("date",{alias:"d",type:"boolean",default:!0,describe:"Generate post with the current date"}).strict().help()},async({title:t,path:r,date:n,layout:i})=>{let o=await ah({title:t,date:n,layout:i,path:r});_consola2.default.success(`[valaxy new]: successfully generated file ${(0,uh.magenta)(o)}`)})};var tr=_yargs2.default.call(void 0, _helpers.hideBin.call(void 0, process.argv)).scriptName("valaxy").usage("$0 [args]").version(Jr).showHelpOnFail(!1).alias("h","help").alias("v","version");tr.command("* [root]","Start a local server for Valaxy",e=>zt(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:"info",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:t,open:r,remote:n,log:i})=>{ys(),er.default.existsSync(_path2.default.resolve(e,"pages"))||process.exit(0);let o=t||await Ai(4859),s=await De({userRoot:e}),a=_vite.mergeConfig.call(void 0, {configFile:_path2.default.resolve(s.clientRoot,"vite.config.ts"),server:{watch:{ignored:[`!${s.themeRoot}/**`,`${s.userRoot}/**.md`]},port:o,strictPort:!0,open:r,host:n?"0.0.0.0":"localhost"},logLevel:i},s.config.vite||{});await kr(s,a),Ys(s,o,n),hm([{name:"r",fullName:"restart",action(){kr(s,a)}},{name:"o",fullName:"open",action(){_open3.default.call(void 0, `http://localhost:${o}`)}},{name:"e",fullName:"edit",action(){_child_process.exec.call(void 0, `code "${e}"`)}}])});tr.command("build [root]","build your blog to static content",e=>zt(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("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({ssg:e,root:t,output:r,log:n})=>{yr();let i=await De({userRoot:t},"build");Ys(i);let o=_vite.mergeConfig.call(void 0, await Gn(i,"build"),i.config.vite||{}),s=_vite.mergeConfig.call(void 0, o,{configFile:_path2.default.resolve(i.clientRoot,"vite.config.ts"),build:{emptyOutDir:!0,outDir:_path2.default.resolve(i.userRoot,r)},logLevel:n}),a=_path2.default.resolve(i.clientRoot,"template.html"),u=_path2.default.resolve(i.clientRoot,"index.html");er.default.existsSync(a)&&await er.default.copyFile(a,u);let p=await Wn(i);await er.default.writeFile(u,p,"utf-8");try{if(e){_consola2.default.info(`use ${_kolorist.yellow.call(void 0, "vite-ssg")} to do ssg build...`);try{await vm(i,s),await Em(i)}catch(c){_consola2.default.error("[vite-ssg] An internal error occurred."),console.log(c)}}else _consola2.default.info("use vite do spa build..."),await ym(i,s)}catch(c){console.log(c)}finally{await er.default.copyFile(a,u)}});tr.command("rss [root]","generate rss feed",e=>zt(e).strict().help(),async({root:e})=>{yr(),_consola2.default.info("Generate RSS ...");let t=await De({userRoot:e},"build");await bm(t)});ch(tr);Am(tr);function HO(){tr.help().parse()}exports.a = xr; exports.b = Yp; exports.c = ot; exports.d = As; exports.e = re; exports.f = zp; exports.g = Ht; exports.h = Rs; exports.i = Jp; exports.j = Xp; exports.k = rd; exports.l = Ge; exports.m = J_; exports.n = eR; exports.o = X_; exports.p = tR; exports.q = nR; exports.r = Q_; exports.s = iR; exports.t = ks; exports.u = nd; exports.v = oR; exports.w = Os; exports.x = De; exports.y = Ps; exports.z = Gn; exports.A = Wn; exports.B = fm; exports.C = ym; exports.D = vm; exports.E = Em; exports.F = tr; exports.G = HO;
79
+ `;async function oh(e){let{clientRoot:t,themeRoot:r}=await De({userRoot:Pr}),n=[Pr,r,t];for(let i of n){let o=_path2.default.resolve(i,"scaffolds",`${e}.md`);if(await oi(o))return _promises.readFile.call(void 0, o,"utf-8")}return!1}var BC=_path.resolve.call(void 0, Pr,"pages");async function ah(e){let{path:t,title:r}=e,n=t||_path.join.call(void 0, "posts",r),i=0;for(;;){let o=_path.join.call(void 0, BC,n);if(i&&(o=`${o}-${i}`),o=_utils.ensureSuffix.call(void 0, ".md",o),!await oi(o)){let s=await jC(e);return _promises.writeFile.call(void 0, o,s,"utf-8"),o}i++}}async function jC({date:e,title:t,layout:r="post"}){let n=await oh(r);n||(n=ih);let i="YYYY-MM-DD HH:mm:ss";return _ejs.render.call(void 0, n,{title:t,layout:r,date:e?_dayjs2.default.call(void 0, ).format(i):""})}function ch(e){e.command("new <title>","Draft a new post",t=>{t.usage("$0 <title> -p [path] -l [layout]").positional("title",{describe:"The title of the new post",required:!0}).option("path",{alias:"p",type:"string",describe:"the path to generate new post. Customize the path of post to generate"}).option("layout",{alias:"l",type:"string",default:"post"}).option("date",{alias:"d",type:"boolean",default:!0,describe:"Generate post with the current date"}).strict().help()},async({title:t,path:r,date:n,layout:i})=>{let o=await ah({title:t,date:n,layout:i,path:r});_consola2.default.success(`[valaxy new]: successfully generated file ${(0,uh.magenta)(o)}`)})}var tr=_yargs2.default.call(void 0, _helpers.hideBin.call(void 0, process.argv)).scriptName("valaxy").usage("$0 [args]").version(Jr).showHelpOnFail(!1).alias("h","help").alias("v","version");tr.command("* [root]","Start a local server for Valaxy",e=>zt(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:"info",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:t,open:r,remote:n,log:i})=>{ys(),er.default.existsSync(_path2.default.resolve(e,"pages"))||process.exit(0);let o=t||await Ai(4859),s=await De({userRoot:e}),a=_vite.mergeConfig.call(void 0, {configFile:_path2.default.resolve(s.clientRoot,"vite.config.ts"),server:{watch:{ignored:[`!${s.themeRoot}/**`,`${s.userRoot}/**.md`]},port:o,strictPort:!0,open:r,host:n?"0.0.0.0":"localhost"},logLevel:i},s.config.vite||{});await kr(s,a),Ys(s,o,n),hm([{name:"r",fullName:"restart",action(){kr(s,a)}},{name:"o",fullName:"open",action(){_open3.default.call(void 0, `http://localhost:${o}`)}},{name:"e",fullName:"edit",action(){_child_process.exec.call(void 0, `code "${e}"`)}}])});tr.command("build [root]","build your blog to static content",e=>zt(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("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({ssg:e,root:t,output:r,log:n})=>{yr();let i=await De({userRoot:t},"build");Ys(i);let o=_vite.mergeConfig.call(void 0, await Gn(i,"build"),i.config.vite||{}),s=_vite.mergeConfig.call(void 0, o,{configFile:_path2.default.resolve(i.clientRoot,"vite.config.ts"),build:{emptyOutDir:!0,outDir:_path2.default.resolve(i.userRoot,r)},logLevel:n}),a=_path2.default.resolve(i.clientRoot,"template.html"),u=_path2.default.resolve(i.clientRoot,"index.html");er.default.existsSync(a)&&await er.default.copyFile(a,u);let p=await Wn(i);await er.default.writeFile(u,p,"utf-8");try{if(e){_consola2.default.info(`use ${_kolorist.yellow.call(void 0, "vite-ssg")} to do ssg build...`);try{await vm(i,s),await Em(i)}catch(c){_consola2.default.error("[vite-ssg] An internal error occurred."),console.log(c)}}else _consola2.default.info("use vite do spa build..."),await ym(i,s)}catch(c){console.log(c)}finally{await er.default.copyFile(a,u)}});tr.command("rss [root]","generate rss feed",e=>zt(e).strict().help(),async({root:e})=>{yr(),_consola2.default.info("Generate RSS ...");let t=await De({userRoot:e},"build");await bm(t)});ch(tr);Am(tr);function HO(){tr.help().parse()}exports.a = xr; exports.b = Yp; exports.c = ot; exports.d = As; exports.e = re; exports.f = zp; exports.g = Ht; exports.h = Rs; exports.i = Jp; exports.j = Xp; exports.k = rd; exports.l = Ge; exports.m = J_; exports.n = eR; exports.o = X_; exports.p = tR; exports.q = nR; exports.r = Q_; exports.s = iR; exports.t = ks; exports.u = nd; exports.v = oR; exports.w = Os; exports.x = De; exports.y = Ps; exports.z = Gn; exports.A = Wn; exports.B = fm; exports.C = ym; exports.D = vm; exports.E = Em; exports.F = tr; exports.G = HO;
80
80
  /*! Bundled license information:
81
81
 
82
82
  is-extglob/index.js:
package/dist/node/cli.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEL4MYIMEcjs = require('../chunk-EL4MYIME.cjs');exports.cli = _chunkEL4MYIMEcjs.F; exports.run = _chunkEL4MYIMEcjs.G;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkSKLY3VD5cjs = require('../chunk-SKLY3VD5.cjs');exports.cli = _chunkSKLY3VD5cjs.F; exports.run = _chunkSKLY3VD5cjs.G;
package/dist/node/cli.mjs CHANGED
@@ -1 +1 @@
1
- import{F as a,G as b}from"../chunk-W2TOXCX6.mjs";export{a as cli,b as run};
1
+ import{F as a,G as b}from"../chunk-S3DNS4MB.mjs";export{a as cli,b as run};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEL4MYIMEcjs = require('../chunk-EL4MYIME.cjs');exports.build = _chunkEL4MYIMEcjs.C; exports.cli = _chunkEL4MYIMEcjs.F; exports.createServer = _chunkEL4MYIMEcjs.B; exports.defaultSiteConfig = _chunkEL4MYIMEcjs.t; exports.defaultValaxyConfig = _chunkEL4MYIMEcjs.u; exports.defineAddon = _chunkEL4MYIMEcjs.n; exports.defineConfig = _chunkEL4MYIMEcjs.s; exports.defineSiteConfig = _chunkEL4MYIMEcjs.q; exports.defineTheme = _chunkEL4MYIMEcjs.p; exports.defineUnoSetup = _chunkEL4MYIMEcjs.v; exports.defineValaxyAddon = _chunkEL4MYIMEcjs.m; exports.defineValaxyConfig = _chunkEL4MYIMEcjs.r; exports.defineValaxyTheme = _chunkEL4MYIMEcjs.o; exports.ensurePrefix = _chunkEL4MYIMEcjs.d; exports.getGitTimestamp = _chunkEL4MYIMEcjs.a; exports.getIndexHtml = _chunkEL4MYIMEcjs.A; exports.isExternal = _chunkEL4MYIMEcjs.b; exports.isPath = _chunkEL4MYIMEcjs.f; exports.mergeValaxyConfig = _chunkEL4MYIMEcjs.g; exports.mergeViteConfigs = _chunkEL4MYIMEcjs.z; exports.postProcessForSSG = _chunkEL4MYIMEcjs.E; exports.processValaxyOptions = _chunkEL4MYIMEcjs.w; exports.resolveAddonConfig = _chunkEL4MYIMEcjs.j; exports.resolveImportPath = _chunkEL4MYIMEcjs.l; exports.resolveOptions = _chunkEL4MYIMEcjs.x; exports.resolveThemeValaxyConfig = _chunkEL4MYIMEcjs.y; exports.resolveValaxyConfig = _chunkEL4MYIMEcjs.i; exports.resolveValaxyConfigFromRoot = _chunkEL4MYIMEcjs.h; exports.run = _chunkEL4MYIMEcjs.G; exports.slash = _chunkEL4MYIMEcjs.c; exports.ssgBuild = _chunkEL4MYIMEcjs.D; exports.toAtFS = _chunkEL4MYIMEcjs.e; exports.transformObject = _chunkEL4MYIMEcjs.k;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkSKLY3VD5cjs = require('../chunk-SKLY3VD5.cjs');exports.build = _chunkSKLY3VD5cjs.C; exports.cli = _chunkSKLY3VD5cjs.F; exports.createServer = _chunkSKLY3VD5cjs.B; exports.defaultSiteConfig = _chunkSKLY3VD5cjs.t; exports.defaultValaxyConfig = _chunkSKLY3VD5cjs.u; exports.defineAddon = _chunkSKLY3VD5cjs.n; exports.defineConfig = _chunkSKLY3VD5cjs.s; exports.defineSiteConfig = _chunkSKLY3VD5cjs.q; exports.defineTheme = _chunkSKLY3VD5cjs.p; exports.defineUnoSetup = _chunkSKLY3VD5cjs.v; exports.defineValaxyAddon = _chunkSKLY3VD5cjs.m; exports.defineValaxyConfig = _chunkSKLY3VD5cjs.r; exports.defineValaxyTheme = _chunkSKLY3VD5cjs.o; exports.ensurePrefix = _chunkSKLY3VD5cjs.d; exports.getGitTimestamp = _chunkSKLY3VD5cjs.a; exports.getIndexHtml = _chunkSKLY3VD5cjs.A; exports.isExternal = _chunkSKLY3VD5cjs.b; exports.isPath = _chunkSKLY3VD5cjs.f; exports.mergeValaxyConfig = _chunkSKLY3VD5cjs.g; exports.mergeViteConfigs = _chunkSKLY3VD5cjs.z; exports.postProcessForSSG = _chunkSKLY3VD5cjs.E; exports.processValaxyOptions = _chunkSKLY3VD5cjs.w; exports.resolveAddonConfig = _chunkSKLY3VD5cjs.j; exports.resolveImportPath = _chunkSKLY3VD5cjs.l; exports.resolveOptions = _chunkSKLY3VD5cjs.x; exports.resolveThemeValaxyConfig = _chunkSKLY3VD5cjs.y; exports.resolveValaxyConfig = _chunkSKLY3VD5cjs.i; exports.resolveValaxyConfigFromRoot = _chunkSKLY3VD5cjs.h; exports.run = _chunkSKLY3VD5cjs.G; exports.slash = _chunkSKLY3VD5cjs.c; exports.ssgBuild = _chunkSKLY3VD5cjs.D; exports.toAtFS = _chunkSKLY3VD5cjs.e; exports.transformObject = _chunkSKLY3VD5cjs.k;
@@ -245,7 +245,7 @@ declare function ssgBuild(options: ResolvedValaxyOptions, viteConfig?: InlineCon
245
245
  * todo find why
246
246
  * @param options
247
247
  */
248
- declare const postProcessForSSG: (options: ResolvedValaxyOptions) => Promise<void>;
248
+ declare function postProcessForSSG(options: ResolvedValaxyOptions): Promise<void>;
249
249
 
250
250
  declare function defineValaxyAddon<AddonOptions = {}>(addonFunc: (addonOptions?: AddonOptions, valaxyOptions?: ResolvedValaxyOptions) => ValaxyAddon): (addonOptions?: AddonOptions, valaxyOptions?: ResolvedValaxyOptions) => ValaxyAddon;
251
251
  declare const defineAddon: typeof defineValaxyAddon;
@@ -329,7 +329,7 @@ declare function resolveAddonConfig(addons: ValaxyAddonResolver[], options?: Res
329
329
  * @param obj
330
330
  * @returns
331
331
  */
332
- declare const transformObject: (obj: any) => string;
332
+ declare function transformObject(obj: any): string;
333
333
  declare function resolveImportPath(importName: string, ensure?: true): string;
334
334
 
335
335
  export { ResolvedValaxyOptions, UnoSetup, UserValaxyNodeConfig, ValaxyAddonExport, ValaxyAddonFn, ValaxyAddonLike, ValaxyAddonResolver, ValaxyAddons, ValaxyConfigExport, ValaxyConfigExtendKey, ValaxyConfigFn, ValaxyEntryOptions, ValaxyExtendConfig, ValaxyNodeConfig, ValaxyPickConfig, ValaxyServerOptions, ValaxyTheme, build, createServer, defaultSiteConfig, defaultValaxyConfig, defineAddon, defineConfig, defineSiteConfig, defineTheme, defineUnoSetup, defineValaxyAddon, defineValaxyConfig, defineValaxyTheme, ensurePrefix, getGitTimestamp, getIndexHtml, isExternal, isPath, mergeValaxyConfig, mergeViteConfigs, postProcessForSSG, processValaxyOptions, resolveAddonConfig, resolveImportPath, resolveOptions, resolveThemeValaxyConfig, resolveValaxyConfig, resolveValaxyConfigFromRoot, slash, ssgBuild, toAtFS, transformObject };
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,a as o,b as r,c as m,d as p,e as t,f as e,g as f,h as x,i,j as a,k as b,l as c,m as d,n as g,o as h,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"../chunk-W2TOXCX6.mjs";export{C as build,F as cli,B as createServer,q as defaultSiteConfig,s as defaultValaxyConfig,g as defineAddon,n as defineConfig,k as defineSiteConfig,j as defineTheme,u as defineUnoSetup,d as defineValaxyAddon,l as defineValaxyConfig,h as defineValaxyTheme,p as ensurePrefix,o as getGitTimestamp,A as getIndexHtml,r as isExternal,e as isPath,f as mergeValaxyConfig,z as mergeViteConfigs,E as postProcessForSSG,v as processValaxyOptions,a as resolveAddonConfig,c as resolveImportPath,w as resolveOptions,y as resolveThemeValaxyConfig,i as resolveValaxyConfig,x as resolveValaxyConfigFromRoot,G as run,m as slash,D as ssgBuild,t as toAtFS,b as transformObject};
1
+ import{A,B,C,D,E,F,G,a as o,b as r,c as m,d as p,e as t,f as e,g as f,h as x,i,j as a,k as b,l as c,m as d,n as g,o as h,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"../chunk-S3DNS4MB.mjs";export{C as build,F as cli,B as createServer,q as defaultSiteConfig,s as defaultValaxyConfig,g as defineAddon,n as defineConfig,k as defineSiteConfig,j as defineTheme,u as defineUnoSetup,d as defineValaxyAddon,l as defineValaxyConfig,h as defineValaxyTheme,p as ensurePrefix,o as getGitTimestamp,A as getIndexHtml,r as isExternal,e as isPath,f as mergeValaxyConfig,z as mergeViteConfigs,E as postProcessForSSG,v as processValaxyOptions,a as resolveAddonConfig,c as resolveImportPath,w as resolveOptions,y as resolveThemeValaxyConfig,i as resolveValaxyConfig,x as resolveValaxyConfigFromRoot,G as run,m as slash,D as ssgBuild,t as toAtFS,b as transformObject};
@@ -1,6 +1,30 @@
1
1
  export { D as DefaultThemeConfig, P as PartialDeep, R as RuntimeConfig, S as SiteConfig, b as SocialLink, U as UserSiteConfig, c as UserValaxyConfig, a as ValaxyAddon, V as ValaxyConfig } from '../config-6ba89780.js';
2
2
  import 'medium-zoom';
3
3
 
4
+ interface Album {
5
+ /**
6
+ * @description:en-US Album Link
7
+ */
8
+ url: string;
9
+ /**
10
+ * @description:en-US Album cover
11
+ * url
12
+ */
13
+ cover: string;
14
+ /**
15
+ * @description:en-US Album caption
16
+ */
17
+ caption: string;
18
+ /**
19
+ * @description:en-US Album description
20
+ */
21
+ desc: string;
22
+ }
23
+ interface Photo {
24
+ src: string;
25
+ caption: string;
26
+ desc: string;
27
+ }
4
28
  interface PageFrontMatter extends Record<string, any> {
5
29
  /**
6
30
  * Path of post
@@ -97,6 +121,16 @@ interface PageFrontMatter extends Record<string, any> {
97
121
  * @url https://github.com/francoischalifour/medium-zoom
98
122
  */
99
123
  medium_zoom: boolean;
124
+ /**
125
+ * @description:en-US Albums
126
+ * @description:zh-CN 相册
127
+ */
128
+ albums: Album[];
129
+ /**
130
+ * For layout Gallery
131
+ * @description:en-US Photos
132
+ */
133
+ photos: Photo[];
100
134
  }
101
135
  interface PostFrontMatter extends PageFrontMatter {
102
136
  /**
@@ -209,4 +243,4 @@ interface PageDataPayload {
209
243
  }
210
244
  declare type HeadConfig = [string, Record<string, string>] | [string, Record<string, string>, string];
211
245
 
212
- export { CleanUrlsMode, HeadConfig, Header, Page, PageData, PageDataPayload, PageFrontMatter, Post, PostFrontMatter };
246
+ export { Album, CleanUrlsMode, HeadConfig, Header, Page, PageData, PageDataPayload, PageFrontMatter, Photo, Post, PostFrontMatter };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "valaxy",
3
3
  "type": "module",
4
- "version": "0.14.21",
4
+ "version": "0.14.22",
5
5
  "description": "📄 Vite & Vue powered static blog generator.",
6
6
  "author": {
7
7
  "email": "me@yunyoujun.cn",
package/types/posts.ts CHANGED
@@ -1,3 +1,29 @@
1
+ export interface Album {
2
+ /**
3
+ * @description:en-US Album Link
4
+ */
5
+ url: string
6
+ /**
7
+ * @description:en-US Album cover
8
+ * url
9
+ */
10
+ cover: string
11
+ /**
12
+ * @description:en-US Album caption
13
+ */
14
+ caption: string
15
+ /**
16
+ * @description:en-US Album description
17
+ */
18
+ desc: string
19
+ }
20
+
21
+ export interface Photo {
22
+ src: string
23
+ caption: string
24
+ desc: string
25
+ }
26
+
1
27
  export interface PageFrontMatter extends Record<string, any> {
2
28
  /**
3
29
  * Path of post
@@ -101,6 +127,18 @@ export interface PageFrontMatter extends Record<string, any> {
101
127
  * @url https://github.com/francoischalifour/medium-zoom
102
128
  */
103
129
  medium_zoom: boolean
130
+
131
+ /**
132
+ * @description:en-US Albums
133
+ * @description:zh-CN 相册
134
+ */
135
+ albums: Album[]
136
+
137
+ /**
138
+ * For layout Gallery
139
+ * @description:en-US Photos
140
+ */
141
+ photos: Photo[]
104
142
  }
105
143
 
106
144
  export interface PostFrontMatter extends PageFrontMatter {