valaxy 0.0.2 → 0.0.5
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.
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/bin/valaxy.js +11 -0
- package/dist/build-LSWX3GTV.mjs +1 -0
- package/dist/build-QCHURQKL.js +1 -0
- package/dist/chunk-7NQGUR4O.mjs +1 -0
- package/dist/chunk-DEKAH6ZE.js +1 -0
- package/dist/chunk-TIPISWPV.mjs +10 -0
- package/dist/chunk-ZX4FV7OA.js +10 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +2 -0
- package/dist/cli.mjs +2 -0
- package/dist/index.d.ts +203 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +75 -3
- package/src/client/App.vue +16 -0
- package/src/client/components/AppLink.vue +20 -0
- package/src/client/components/PostCard.vue +69 -0
- package/src/client/components/PostList.vue +50 -0
- package/src/client/components/README.md +7 -0
- package/src/client/components/ValaxyCopyright.vue +80 -0
- package/src/client/components/ValaxyFooter.vue +53 -0
- package/src/client/components/ValaxyHamburger.vue +21 -0
- package/src/client/components/ValaxyMd.vue +71 -0
- package/src/client/components/ValaxyOverlay.vue +44 -0
- package/src/client/components/ValaxyPagination.vue +122 -0
- package/src/client/components/ValaxyRightSidebar.vue +32 -0
- package/src/client/components/ValaxySidebar.vue +35 -0
- package/src/client/components/ValaxyToc.vue +70 -0
- package/src/client/composables/category.ts +101 -0
- package/src/client/composables/comments/index.ts +1 -0
- package/src/client/composables/comments/waline.ts +60 -0
- package/src/client/composables/common.ts +27 -0
- package/src/client/composables/dark.ts +4 -0
- package/src/client/composables/features/index.ts +1 -0
- package/src/client/composables/features/katex.ts +15 -0
- package/src/client/composables/helper.ts +26 -0
- package/src/client/composables/index.ts +17 -0
- package/src/client/composables/layout.ts +7 -0
- package/src/client/composables/post.ts +96 -0
- package/src/client/composables/search/algolia.ts +114 -0
- package/src/client/composables/search/index.ts +0 -0
- package/src/client/composables/sidebar.ts +128 -0
- package/src/client/composables/tag.ts +70 -0
- package/src/client/composables/widgets/aplayer.ts +23 -0
- package/src/client/composables/widgets/backToTop.ts +28 -0
- package/src/client/composables/widgets/codepen.ts +12 -0
- package/src/client/composables/widgets/index.ts +3 -0
- package/src/client/index.html +24 -0
- package/src/client/layouts/404.vue +25 -0
- package/src/client/layouts/README.md +14 -0
- package/src/client/locales/README.md +7 -0
- package/src/client/locales/en.yml +107 -0
- package/src/client/locales/zh-CN.yml +106 -0
- package/src/client/main.ts +30 -0
- package/src/client/modules/README.md +11 -0
- package/src/client/modules/nprogress.ts +14 -0
- package/src/client/modules/pinia.ts +17 -0
- package/src/client/modules/pwa.ts +12 -0
- package/src/client/modules/valaxy.ts +42 -0
- package/src/client/pages/README.md +20 -0
- package/src/client/pages/[...all].vue +15 -0
- package/src/client/pages/about/index.md +5 -0
- package/src/client/pages/hi/[name].vue +52 -0
- package/src/client/pages/index.vue +3 -0
- package/src/client/pages/page/[page].vue +12 -0
- package/src/client/pages/posts/index.md +5 -0
- package/src/client/public/_headers +3 -0
- package/src/client/public/favicon.svg +21 -0
- package/src/client/public/pwa-192x192.png +0 -0
- package/src/client/public/pwa-512x512.png +0 -0
- package/src/client/public/safari-pinned-tab.svg +41 -0
- package/src/client/shims.d.ts +36 -0
- package/src/client/stores/app.ts +14 -0
- package/src/client/stores/user.ts +35 -0
- package/src/client/styles/common/button.scss +29 -0
- package/src/client/styles/common/code.scss +35 -0
- package/src/client/styles/common/hamburger.scss +56 -0
- package/src/client/styles/common/markdown.scss +43 -0
- package/src/client/styles/common/scrollbar.scss +34 -0
- package/src/client/styles/common/sidebar.scss +30 -0
- package/src/client/styles/common/transition.scss +23 -0
- package/src/client/styles/css-vars/dark.scss +17 -0
- package/src/client/styles/css-vars/index.scss +18 -0
- package/src/client/styles/css-vars/light.scss +9 -0
- package/src/client/styles/global/helper.scss +3 -0
- package/src/client/styles/global/index.scss +38 -0
- package/src/client/styles/global/nprogress.scss +14 -0
- package/src/client/styles/global/reset.scss +20 -0
- package/src/client/styles/index.scss +18 -0
- package/src/client/styles/mixins/config.scss +1 -0
- package/src/client/styles/mixins/index.scss +2 -0
- package/src/client/styles/mixins/size.scss +49 -0
- package/src/client/styles/mixins/variable.scss +30 -0
- package/src/client/styles/palette.scss +61 -0
- package/src/client/styles/vars.scss +39 -0
- package/src/client/styles/widgets/banner.scss +116 -0
- package/src/client/types.ts +3 -0
- package/src/client/utils/helper.ts +30 -0
- package/src/client/utils/index.ts +2 -0
- package/src/client/utils/time.ts +23 -0
- package/src/core/config.ts +51 -0
- package/src/core/index.ts +5 -0
- package/src/core/utils.ts +1 -0
- package/src/index.ts +2 -0
- package/src/node/build.ts +12 -0
- package/src/node/cli.ts +177 -0
- package/src/node/config.ts +43 -0
- package/src/node/index.ts +1 -0
- package/src/node/markdown/headings.ts +24 -0
- package/src/node/markdown/index.ts +74 -0
- package/src/node/markdown/markdown-it-container.ts +53 -0
- package/src/node/markdown/markdown-it-katex.ts +200 -0
- package/src/node/markdown/parseHeader.ts +70 -0
- package/src/node/markdown/slugify.ts +24 -0
- package/src/node/options.ts +90 -0
- package/src/node/plugins/index.ts +91 -0
- package/src/node/plugins/markdown.ts +62 -0
- package/src/node/plugins/preset.ts +171 -0
- package/src/node/plugins/unocss.ts +106 -0
- package/src/node/plugins/valaxy.ts +1 -0
- package/src/node/server.ts +21 -0
- package/src/node/shims.d.ts +23 -0
- package/src/node/utils/cli.ts +105 -0
- package/src/node/utils/index.ts +26 -0
- package/src/node/vite.ts +83 -0
- package/src/types/config.ts +250 -0
- package/src/types/index.ts +2 -0
- package/src/types/posts.ts +107 -0
- package/tsup.config.ts +17 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 云游君 YunYouJun <me@yunyoujun.cn>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
package/bin/valaxy.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as i}from"./chunk-TIPISWPV.mjs";import{mergeConfig as t,build as r}from"vite";async function m(o,n={}){let e=t(n,i(o));await r(e)}export{m as build};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkZX4FV7OAjs = require('./chunk-ZX4FV7OA.js');var _vite = require('vite');async function a(o,n={}){let e=_vite.mergeConfig.call(void 0, n,_chunkZX4FV7OAjs.f.call(void 0, o));await _vite.build.call(void 0, e)}exports.build = a;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as e}from"./chunk-TIPISWPV.mjs";import{createServer as i,mergeConfig as n}from"vite";async function f(r,o={},t={}){return process.env.EDITOR=process.env.EDITOR||"code",await i(n(o,e(r,t)))}export{f as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkZX4FV7OAjs = require('./chunk-ZX4FV7OA.js');var _vite = require('vite');async function c(r,o={},t={}){return process.env.EDITOR=process.env.EDITOR||"code",await _vite.createServer.call(void 0, _vite.mergeConfig.call(void 0, o,_chunkZX4FV7OAjs.f.call(void 0, r,t)))}exports.a = c;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var oe=Object.create;var $=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames,A=Object.getOwnPropertySymbols,se=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable;var T=(e,r,t)=>r in e?$(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,D=(e,r)=>{for(var t in r||(r={}))F.call(r,t)&&T(e,t,r[t]);if(A)for(var t of A(r))le.call(r,t)&&T(e,t,r[t]);return e};var b=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(r,t)=>(typeof require!="undefined"?require:r)[t]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var ce=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of ae(r))!F.call(e,o)&&o!==t&&$(e,o,{get:()=>r[o],enumerable:!(i=ie(r,o))||i.enumerable});return e};var E=(e,r,t)=>(t=e!=null?oe(se(e)):{},ce(r||!e||!e.__esModule?$(t,"default",{value:e,enumerable:!0}):t,e));import v from"path";import er from"vite-ssg-sitemap";import{searchForWorkspaceRoot as P}from"vite";import ee from"fs";import qe from"consola";import We from"markdown-it";import ze from"gray-matter";import Ge from"@vitejs/plugin-vue";import Je from"vite-plugin-pages";import Ke from"vite-plugin-vue-layouts";import Be from"unplugin-vue-components/vite";import{VitePWA as Xe}from"vite-plugin-pwa";import Qe from"@intlify/vite-plugin-vue-i18n";import Ze from"vite-plugin-inspect";import re from"chalk";import z from"markdown-it-anchor";import we from"markdown-it-emoji";import $e from"markdown-it-prism";import Ce from"markdown-it-link-attributes";import Ve from"markdown-it-table-of-contents";import Y from"katex";function L(e,r){let t=e.posMax,i=!0,o=!0,a=r>0?e.src.charCodeAt(r-1):-1,n=r+1<=t?e.src.charCodeAt(r+1):-1;return(a===32||a===9||n>=48&&n<=57)&&(o=!1),(n===32||n===9)&&(i=!1),{can_open:i,can_close:o}}function me(e,r){let t,i,o,a;if(e.src[e.pos]!=="$")return!1;if(o=L(e,e.pos),!o.can_open)return r||(e.pending+="$"),e.pos+=1,!0;let n=e.pos+1;for(t=n;(t=e.src.indexOf("$",t))!==-1;){for(a=t-1;e.src[a]==="\\";)a-=1;if((t-a)%2===1)break;t+=1}return t===-1?(r||(e.pending+="$"),e.pos=n,!0):t-n===0?(r||(e.pending+="$$"),e.pos=n+1,!0):(o=L(e,t),o.can_close?(r||(i=e.push("math_inline","math",0),i.markup="$",i.content=e.src.slice(n,t)),e.pos=t+1,!0):(r||(e.pending+="$"),e.pos=n,!0))}function pe(e,r,t,i){let o,a,n,l,m=!1,c=e.bMarks[r]+e.tShift[r],d=e.eMarks[r];if(c+2>d||e.src.slice(c,c+2)!=="$$")return!1;if(c+=2,o=e.src.slice(c,d),i)return!0;for(o.trim().slice(-2)==="$$"&&(o=o.trim().slice(0,-2),m=!0),n=r;!m&&(n++,!(n>=t||(c=e.bMarks[n]+e.tShift[n],d=e.eMarks[n],c<d&&e.tShift[n]<e.blkIndent)));)e.src.slice(c,d).trim().slice(-2)==="$$"&&(l=e.src.slice(0,d).lastIndexOf("$$"),a=e.src.slice(c,l),m=!0);e.line=n+1;let u=e.push("math_block","math",0);return u.block=!0,u.content=(o&&o.trim()?`${o}
|
|
2
|
+
`:"")+e.getLines(r+1,n,e.tShift[r],!0)+(a&&a.trim()?a:""),u.map=[r,e.line],u.markup="$$",!0}function C(e,r){r=r||{};let t=function(n){r.displayMode=!1;try{return Y.renderToString(n,r)}catch(l){return r.throwOnError&&console.warn(l),n}},i=function(n,l){return t(n[l].content)},o=function(n){r.displayMode=!0;try{return`<p>${Y.renderToString(n,r)}</p>`}catch(l){return r.throwOnError&&console.warn(l),n}},a=function(n,l){return`${o(n[l].content)}
|
|
3
|
+
`};e.inline.ruler.after("escape","math_inline",me),e.block.ruler.after("blockquote","math_block",pe,{alt:["paragraph","reference","blockquote","list"]}),e.renderer.rules.math_inline=i,e.renderer.rules.math_block=a}import N from"markdown-it-container";function h(e,r){return[N,e,{render(t,i){let o=t[i],a=o.info.trim().slice(e.length).trim();return o.nesting===1?e==="details"?`<details class="${e} custom-block">${a?`<summary>${a}</summary>`:""}
|
|
4
|
+
`:`<div class="${e} custom-block"><p class="custom-block-title">${a||r}</p>
|
|
5
|
+
`:e==="details"?`</details>
|
|
6
|
+
`:`</div>
|
|
7
|
+
`}}]}var U=e=>{e.use(...h("tip","TIP")).use(...h("info","INFO")).use(...h("warning","WARNING")).use(...h("danger","WARNING")).use(...h("details","Details")).use(N,"v-pre",{render:(r,t)=>r[t].nesting===1?`<div v-pre>
|
|
8
|
+
`:`</div>
|
|
9
|
+
`})};import fe from"markdown-it-emoji/lib/data/full.json";var ue=e=>e.replace(/:(.+?):/g,(r,t)=>fe[t]||r),de=e=>e.replace(/"/g,'"').replace(/'/g,"'").replace(/:/g,":").replace(/</g,"<").replace(/>/g,">"),ge=e=>e.replace(/(\[(.[^\]]+)\]\((.[^)]+)\))/g,"$2").replace(/(`|\*{1,3}|_)(.*?[^\\])\1/g,"$2").replace(/(\\)(\*|_|`|\!|<|\$)/g,"$2"),ye=e=>e.replace(/\{#([a-z0-9\-_]+?)\}\s*$/,""),he=e=>e.trim(),xe=e=>String(e).replace(/(^|[^><`\\])<.*>([^><`]|$)/g,"$1$2"),H=(...e)=>e.length===0?r=>r:e.length===1?e[0]:e.reduce((r,t)=>i=>t(r(i))),V=H(de,ue,ye,ge,he),q=H(xe,V);import{remove as ve}from"diacritics";var ke=/[\u0000-\u001F]/g,be=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.…?/]+/g,x=e=>ve(e).replace(ke,"").replace(be,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var W=(e,r=["h2","h3"])=>{e.renderer.rules.heading_open=(t,i,o,a,n)=>{let l=t[i];if(r.includes(l.tag)){let m=t[i+1].content,c=l.attrs.find(([g])=>g==="id"),d=c&&c[1],u=e.__data;(u.headers||(u.headers=[])).push({level:parseInt(l.tag.slice(1),10),title:q(m),slug:d||x(m)})}return n.renderToken(t,i,o)}};function w(e,r={}){e.use(U).use(W),e.use($e),e.use(Ce,{matcher:i=>/^https?:\/\//.test(i),attrs:{target:"_blank",rel:"noopener"}}),e.use(C,r.katex).use(z,{slugify:x,permalink:z.permalink.ariaHidden({})}).use(Ve,D({slugify:x,includeLevel:[2,3],format:V},r.toc)).use(we);let t=e.render;return e.render=(...i)=>(e.__data={},t.call(e,...i)),e}import Pe from"path";import Ie from"vite-plugin-md";import{dirname as Oe}from"path";import Me from"consola";function O(e){return e.replace(/\\/g,"/")}function Re(e,r){return r.startsWith(e)?r:e+r}function G(e){return`/@fs${Re("/",O(e))}`}function Or(e){try{return Oe(b.resolve(e))}catch{}throw Me.error(`Failed to resolve package ${e}`),new Error(`Failed to resolve package ${e}`)}var M="<!-- more -->";function J(e){let r,t=e.config.markdownIt;return[Ie(Object.assign({wrapperComponent:"ValaxyMd",headEnabled:!0,frontmatter:!0,excerpt:M,builders:[],markdownItSetup(o){t.config&&t.config(o),r=w(o,t)}},e.config.markdown)),{name:"valaxy:md",handleHotUpdate(o){let{file:a,server:n}=o;a.endsWith(".md")&&n.ws.send({type:"custom",event:"valaxy:pageHeaders",data:{path:`/${O(Pe.relative(`${e.userRoot}/pages`,a))}`,pageHeaders:r.__data.headers}})}}]}import _e from"defu";import Se from"unocss/vite";import{presetAttributify as je,presetIcons as Ae,presetTypography as Te,presetUno as Fe,presetWebFonts as De,transformerDirectives as Ee,transformerVariantGroup as Ye}from"unocss";var Le=e=>{var o,a,n,l;let r=["i-ri-archive-line","i-ri-folder-2-line","i-ri-price-tag-3-line","i-ri-cloud-line"],t="animate-fade-in prose prose-sm m-auto text-left".split(" ").concat(["rotate-y-180"]).concat(r);e.social.length&&e.social.forEach(m=>t.push(m.icon)),(a=(o=e.themeConfig.footer)==null?void 0:o.icon)!=null&&a.name&&t.push((l=(n=e.themeConfig.footer)==null?void 0:n.icon)==null?void 0:l.name),e.sponsor.methods.length&&e.sponsor.methods.forEach(m=>t.push(m.icon));let i=e.themeConfig.types;if(i)for(let m in i)t.push(i[m].icon);return t},Ne=e=>{let r={shortcuts:[["yun-main","lt-md:pl-0"],["yun-card","transition yun-transition shadow hover:shadow-lg"],["btn","px-4 py-1 rounded inline-block bg-sky-600 text-white cursor-pointer hover:bg-sky-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50"],["icon-btn","inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-sky-600"],["val-card","transition shadow hover:shadow-lg"]],presets:[Fe(),je(),Ae({scale:1.2}),Te(),De({fonts:{serif:"Noto Serif SC"}})],rules:[["yun-transition",{"transition-duration":"var(--yun-transition-duration)"}],["yun-text-light",{color:"var(--yun-c-text-light)"}],["font-serif",{"font-family":"var(--yun-font-serif)"}],["font-sans",{"font-family":"var(--yun-font-sans)"}],["font-mono",{"font-family":"var(--yun-font-mono)"}]],transformers:[Ee(),Ye()],safelist:Le(e.config)};return _e(e.config.unocss,r)},K=e=>{let r=Ne(e);return Se(r)};import He from"fs";import{join as R}from"path";import{loadConfig as Ue}from"unconfig";import X from"defu";var B={url:"",lang:"en",title:"Valaxy Blog",subtitle:"Next Generation Static Blog Framework.",author:{avatar:"https://cdn.jsdelivr.net/gh/YunYouJun/yun/images/meme/yun-good-with-bg.jpg",name:"YunYouJun",status:{emoji:"\u{1F60A}",message:"All at sea."}},social:[],description:"A blog generated by Valaxy.",license:{enabled:!0,language:"",type:"by-nc-sa"},sponsor:{enable:!0,title:"\u6211\u5F88\u53EF\u7231\uFF0C\u8BF7\u7ED9\u6211\u94B1",methods:[{name:"\u652F\u4ED8\u5B9D",url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/alipay-qrcode.jpg",color:"#00A3EE",icon:"i-ri-alipay-line"},{name:"QQ \u652F\u4ED8",url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/qqpay-qrcode.png",color:"#12B7F5",icon:"i-ri-qq-line"},{name:"\u5FAE\u4FE1\u652F\u4ED8",url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/wechatpay-qrcode.jpg",color:"#2DC100",icon:"i-ri-wechat-pay-line"}]},search:{algolia:{enable:!1,appId:"",apiKey:"",indexName:"",chunkSize:5e3}},comment:{waline:{enable:!1,serverURL:""}},theme:"yun",themeConfig:{},unocss:{},markdown:{excerpt:"<!-- more -->"},markdownIt:{toc:{listType:"ol"},katex:{}}};async function Q(e={}){let{config:r,sources:t}=await Ue({sources:[{files:"valaxy.config",extensions:["ts","js","mjs","cjs","json"]}],merge:!1}),i=t[0],o=X(r,B),a=e.theme||o.theme||"yun";try{let{defaultThemeConfig:n}=await Promise.resolve().then(()=>E(b(`valaxy-theme-${a}`)));o.themeConfig=X(o.themeConfig,n)}catch{console.error(`valaxy-theme-${a} doesn't have default config`)}return{config:o,configFile:i,theme:a}}var y="@valaxyjs/config";function Z(e,r={}){let t="/@valaxy",i=e.config,o=[e.userRoot,e.themeRoot];function a(){let n=[];for(let l of o){let m=[R(l,"styles","vars.scss"),R(l,"styles","index.css"),R(l,"styles","index.scss")];for(let c of m)if(He.existsSync(c)){n.push(`import "${G(c)}"`);continue}}return n.join(`
|
|
10
|
+
`)}return{name:"Valaxy",configureServer(n){n.watcher.add([e.configFile,e.userRoot,e.themeRoot])},resolveId(n){return n.startsWith(t)?n:null},load(n){if(n===`/${y}`)return`export default ${JSON.stringify(JSON.stringify(i))}`;if(n==="/@valaxyjs/styles")return a();if(n.startsWith(t))return""},async handleHotUpdate(n){var s;let{file:l,server:m}=n;if(l!==e.configFile)return;let{config:c}=await Q();(s=r.onConfigReload)==null||s.call(r,c,e.config),Object.assign(e.config,c),i=c;let d=[`/${y}`];return[...Array.from(d).map(g=>m.moduleGraph.getModuleById(g))].filter(g=>!!g)}}}function te(e,r={},t="dev"){let{clientRoot:i,themeRoot:o,userRoot:a}=e,n=J(e),l=K(e),m=Z(e,r),c=new We({html:!0}),d=w(c,e.config.markdownIt),u=[i,o,a];return[Ge({include:[/\.vue$/,/\.md$/],template:{compilerOptions:{isCustomElement:s=>["meting-js"].includes(s)}}}),m,n,Je({extensions:["vue","md"],dirs:u.map(s=>`${s}/pages`),extendRoute(s){var S;let g=s.component;s.meta||(s.meta={}),s.path==="/"&&(s.meta.layout="home"),u.forEach(ne=>{let j=ne+s.component;ee.existsSync(j)&&(g=j)});let I=ee.readFileSync(g,"utf-8"),{data:k,excerpt:_}=ze(I,{excerpt_separator:M});return s.path.startsWith("/posts/")&&(s.meta.layout="post",k.date||qe.warn(`You forgot to write ${re.yellow("date")} for post: ${re.dim(`${s.component}`)}`)),s.meta=Object.assign(s.meta,{frontmatter:Object.assign({date:new Date},k),excerpt:_?c.render(_):""}),c.render(I),s.meta.headers=(S=d.__data)==null?void 0:S.headers,s.meta.frontmatter.updated&&(s.meta.frontmatter.updated=s.meta.frontmatter.date),k.layout&&(s.meta.layout=k.layout),s}}),Ke({layoutsDirs:u.map(s=>`${s}/layouts`)}),Be({extensions:["vue","md"],include:[/\.vue$/,/\.vue\?vue/,/\.md$/],allowOverrides:!0,dirs:u.map(s=>`${s}/components`)}),l,Xe({registerType:"autoUpdate",includeAssets:["favicon.svg","safari-pinned-tab.svg"],manifest:{name:"Theme Yun",short_name:"Yun",theme_color:"#ffffff",icons:[{src:"/pwa-192x192.png",sizes:"192x192",type:"image/png"},{src:"/pwa-512x512.png",sizes:"512x512",type:"image/png"},{src:"/pwa-512x512.png",sizes:"512x512",type:"image/png",purpose:"any maskable"}]}}),Qe({runtimeOnly:!0,compositionOnly:!0,include:u.map(s=>`${s}/locales/**`)}),t==="dev"&&Ze()]}function kt(e,r={},t="dev"){let{configFile:i}=e,o={resolve:{alias:{"@/":`${e.userRoot}/`,"~/":`${e.clientRoot}/`,"@valaxyjs/client":`${e.clientRoot}/`,"valaxy/package.json":`${v.resolve(e.clientRoot,"../../package.json")}`,valaxy:`${v.resolve(e.clientRoot,"..")}`,[y]:`/${y}`,"@valaxyjs/core":`${v.resolve(e.clientRoot,"../core")}`,[`valaxy-theme-${e.theme}`]:`${v.resolve(e.themeRoot)}/`}},root:e.clientRoot,plugins:te(e,r,t),server:{fs:{allow:[P(e.clientRoot),P(e.userRoot),P(e.themeRoot)]}},optimizeDeps:{entries:[v.resolve(e.clientRoot,"main.ts"),i],include:["vue","vue-router","@vueuse/core","@vueuse/head"],exclude:["vue-demi"]}};return t==="build"&&(o.ssgOptions={script:"async",formatting:"minify",onFinished(){er()}}),o}export{b as a,E as b,Or as c,Le as d,Q as e,kt as f};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var ne=Object.create;var w=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames,j=Object.getOwnPropertySymbols,ae=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var A=(e,r,t)=>r in e?w(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,F=(e,r)=>{for(var t in r||(r={}))T.call(r,t)&&A(e,t,r[t]);if(j)for(var t of j(r))se.call(r,t)&&A(e,t,r[t]);return e};var k=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(r,t)=>(typeof require!="undefined"?require:r)[t]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var le=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of ie(r))!T.call(e,o)&&o!==t&&w(e,o,{get:()=>r[o],enumerable:!(i=oe(r,o))||i.enumerable});return e};var D=(e,r,t)=>(t=e!=null?ne(ae(e)):{},le(r||!e||!e.__esModule?w(t,"default",{value:e,enumerable:!0}):t,e));var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _vitessgsitemap = require('vite-ssg-sitemap'); var _vitessgsitemap2 = _interopRequireDefault(_vitessgsitemap);var _vite = require('vite');var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);var _consola = require('consola'); var _consola2 = _interopRequireDefault(_consola);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 _vitepluginpwa = require('vite-plugin-pwa');var _vitepluginvuei18n = require('@intlify/vite-plugin-vue-i18n'); var _vitepluginvuei18n2 = _interopRequireDefault(_vitepluginvuei18n);var _viteplugininspect = require('vite-plugin-inspect'); var _viteplugininspect2 = _interopRequireDefault(_viteplugininspect);var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);var _markdownitanchor = require('markdown-it-anchor'); var _markdownitanchor2 = _interopRequireDefault(_markdownitanchor);var _markdownitemoji = require('markdown-it-emoji'); var _markdownitemoji2 = _interopRequireDefault(_markdownitemoji);var _markdownitprism = require('markdown-it-prism'); var _markdownitprism2 = _interopRequireDefault(_markdownitprism);var _markdownitlinkattributes = require('markdown-it-link-attributes'); var _markdownitlinkattributes2 = _interopRequireDefault(_markdownitlinkattributes);var _markdownittableofcontents = require('markdown-it-table-of-contents'); var _markdownittableofcontents2 = _interopRequireDefault(_markdownittableofcontents);var _katex = require('katex'); var _katex2 = _interopRequireDefault(_katex);function Y(e,r){let t=e.posMax,i=!0,o=!0,a=r>0?e.src.charCodeAt(r-1):-1,n=r+1<=t?e.src.charCodeAt(r+1):-1;return(a===32||a===9||n>=48&&n<=57)&&(o=!1),(n===32||n===9)&&(i=!1),{can_open:i,can_close:o}}function ce(e,r){let t,i,o,a;if(e.src[e.pos]!=="$")return!1;if(o=Y(e,e.pos),!o.can_open)return r||(e.pending+="$"),e.pos+=1,!0;let n=e.pos+1;for(t=n;(t=e.src.indexOf("$",t))!==-1;){for(a=t-1;e.src[a]==="\\";)a-=1;if((t-a)%2===1)break;t+=1}return t===-1?(r||(e.pending+="$"),e.pos=n,!0):t-n===0?(r||(e.pending+="$$"),e.pos=n+1,!0):(o=Y(e,t),o.can_close?(r||(i=e.push("math_inline","math",0),i.markup="$",i.content=e.src.slice(n,t)),e.pos=t+1,!0):(r||(e.pending+="$"),e.pos=n,!0))}function me(e,r,t,i){let o,a,n,l,m=!1,c=e.bMarks[r]+e.tShift[r],u=e.eMarks[r];if(c+2>u||e.src.slice(c,c+2)!=="$$")return!1;if(c+=2,o=e.src.slice(c,u),i)return!0;for(o.trim().slice(-2)==="$$"&&(o=o.trim().slice(0,-2),m=!0),n=r;!m&&(n++,!(n>=t||(c=e.bMarks[n]+e.tShift[n],u=e.eMarks[n],c<u&&e.tShift[n]<e.blkIndent)));)e.src.slice(c,u).trim().slice(-2)==="$$"&&(l=e.src.slice(0,u).lastIndexOf("$$"),a=e.src.slice(c,l),m=!0);e.line=n+1;let f=e.push("math_block","math",0);return f.block=!0,f.content=(o&&o.trim()?`${o}
|
|
2
|
+
`:"")+e.getLines(r+1,n,e.tShift[r],!0)+(a&&a.trim()?a:""),f.map=[r,e.line],f.markup="$$",!0}function $(e,r){r=r||{};let t=function(n){r.displayMode=!1;try{return _katex2.default.renderToString(n,r)}catch(l){return r.throwOnError&&console.warn(l),n}},i=function(n,l){return t(n[l].content)},o=function(n){r.displayMode=!0;try{return`<p>${_katex2.default.renderToString(n,r)}</p>`}catch(l){return r.throwOnError&&console.warn(l),n}},a=function(n,l){return`${o(n[l].content)}
|
|
3
|
+
`};e.inline.ruler.after("escape","math_inline",ce),e.block.ruler.after("blockquote","math_block",me,{alt:["paragraph","reference","blockquote","list"]}),e.renderer.rules.math_inline=i,e.renderer.rules.math_block=a}var _markdownitcontainer = require('markdown-it-container'); var _markdownitcontainer2 = _interopRequireDefault(_markdownitcontainer);function y(e,r){return[_markdownitcontainer2.default,e,{render(t,i){let o=t[i],a=o.info.trim().slice(e.length).trim();return o.nesting===1?e==="details"?`<details class="${e} custom-block">${a?`<summary>${a}</summary>`:""}
|
|
4
|
+
`:`<div class="${e} custom-block"><p class="custom-block-title">${a||r}</p>
|
|
5
|
+
`:e==="details"?`</details>
|
|
6
|
+
`:`</div>
|
|
7
|
+
`}}]}var N=e=>{e.use(...y("tip","TIP")).use(...y("info","INFO")).use(...y("warning","WARNING")).use(...y("danger","WARNING")).use(...y("details","Details")).use(_markdownitcontainer2.default,"v-pre",{render:(r,t)=>r[t].nesting===1?`<div v-pre>
|
|
8
|
+
`:`</div>
|
|
9
|
+
`})};var _fulljson = require('markdown-it-emoji/lib/data/full.json'); var _fulljson2 = _interopRequireDefault(_fulljson);var fe=e=>e.replace(/:(.+?):/g,(r,t)=>_fulljson2.default[t]||r),ue=e=>e.replace(/"/g,'"').replace(/'/g,"'").replace(/:/g,":").replace(/</g,"<").replace(/>/g,">"),de=e=>e.replace(/(\[(.[^\]]+)\]\((.[^)]+)\))/g,"$2").replace(/(`|\*{1,3}|_)(.*?[^\\])\1/g,"$2").replace(/(\\)(\*|_|`|\!|<|\$)/g,"$2"),ge=e=>e.replace(/\{#([a-z0-9\-_]+?)\}\s*$/,""),ye=e=>e.trim(),he=e=>String(e).replace(/(^|[^><`\\])<.*>([^><`]|$)/g,"$1$2"),U=(...e)=>e.length===0?r=>r:e.length===1?e[0]:e.reduce((r,t)=>i=>t(r(i))),C=U(ue,fe,ge,de,ye),H=U(he,C);var _diacritics = require('diacritics');var ve=/[\u0000-\u001F]/g,ke=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.…?/]+/g,h=e=>_diacritics.remove.call(void 0, e).replace(ve,"").replace(ke,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase();var q=(e,r=["h2","h3"])=>{e.renderer.rules.heading_open=(t,i,o,a,n)=>{let l=t[i];if(r.includes(l.tag)){let m=t[i+1].content,c=l.attrs.find(([d])=>d==="id"),u=c&&c[1],f=e.__data;(f.headers||(f.headers=[])).push({level:parseInt(l.tag.slice(1),10),title:H(m),slug:u||h(m)})}return n.renderToken(t,i,o)}};function b(e,r={}){e.use(N).use(q),e.use(_markdownitprism2.default),e.use(_markdownitlinkattributes2.default,{matcher:i=>/^https?:\/\//.test(i),attrs:{target:"_blank",rel:"noopener"}}),e.use($,r.katex).use(_markdownitanchor2.default,{slugify:h,permalink:_markdownitanchor2.default.permalink.ariaHidden({})}).use(_markdownittableofcontents2.default,F({slugify:h,includeLevel:[2,3],format:C},r.toc)).use(_markdownitemoji2.default);let t=e.render;return e.render=(...i)=>(e.__data={},t.call(e,...i)),e}var _vitepluginmd = require('vite-plugin-md'); var _vitepluginmd2 = _interopRequireDefault(_vitepluginmd);function V(e){return e.replace(/\\/g,"/")}function Me(e,r){return r.startsWith(e)?r:e+r}function z(e){return`/@fs${Me("/",V(e))}`}function Vr(e){try{return _path.dirname.call(void 0, k.resolve(e))}catch (e2){}throw _consola2.default.error(`Failed to resolve package ${e}`),new Error(`Failed to resolve package ${e}`)}var O="<!-- more -->";function G(e){let r,t=e.config.markdownIt;return[_vitepluginmd2.default.call(void 0, Object.assign({wrapperComponent:"ValaxyMd",headEnabled:!0,frontmatter:!0,excerpt:O,builders:[],markdownItSetup(o){t.config&&t.config(o),r=b(o,t)}},e.config.markdown)),{name:"valaxy:md",handleHotUpdate(o){let{file:a,server:n}=o;a.endsWith(".md")&&n.ws.send({type:"custom",event:"valaxy:pageHeaders",data:{path:`/${V(_path2.default.relative(`${e.userRoot}/pages`,a))}`,pageHeaders:r.__data.headers}})}}]}var _defu = require('defu'); var _defu2 = _interopRequireDefault(_defu);var _vite5 = require('unocss/vite'); var _vite6 = _interopRequireDefault(_vite5);var _unocss = require('unocss');var Ye=e=>{var o,a,n,l;let r=["i-ri-archive-line","i-ri-folder-2-line","i-ri-price-tag-3-line","i-ri-cloud-line"],t="animate-fade-in prose prose-sm m-auto text-left".split(" ").concat(["rotate-y-180"]).concat(r);e.social.length&&e.social.forEach(m=>t.push(m.icon)),(a=(o=e.themeConfig.footer)==null?void 0:o.icon)!=null&&a.name&&t.push((l=(n=e.themeConfig.footer)==null?void 0:n.icon)==null?void 0:l.name),e.sponsor.methods.length&&e.sponsor.methods.forEach(m=>t.push(m.icon));let i=e.themeConfig.types;if(i)for(let m in i)t.push(i[m].icon);return t},Le=e=>{let r={shortcuts:[["yun-main","lt-md:pl-0"],["yun-card","transition yun-transition shadow hover:shadow-lg"],["btn","px-4 py-1 rounded inline-block bg-sky-600 text-white cursor-pointer hover:bg-sky-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50"],["icon-btn","inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-sky-600"],["val-card","transition shadow hover:shadow-lg"]],presets:[_unocss.presetUno.call(void 0, ),_unocss.presetAttributify.call(void 0, ),_unocss.presetIcons.call(void 0, {scale:1.2}),_unocss.presetTypography.call(void 0, ),_unocss.presetWebFonts.call(void 0, {fonts:{serif:"Noto Serif SC"}})],rules:[["yun-transition",{"transition-duration":"var(--yun-transition-duration)"}],["yun-text-light",{color:"var(--yun-c-text-light)"}],["font-serif",{"font-family":"var(--yun-font-serif)"}],["font-sans",{"font-family":"var(--yun-font-sans)"}],["font-mono",{"font-family":"var(--yun-font-mono)"}]],transformers:[_unocss.transformerDirectives.call(void 0, ),_unocss.transformerVariantGroup.call(void 0, )],safelist:Ye(e.config)};return _defu2.default.call(void 0, e.config.unocss,r)},J=e=>{let r=Le(e);return _vite6.default.call(void 0, r)};var _unconfig = require('unconfig');var K={url:"",lang:"en",title:"Valaxy Blog",subtitle:"Next Generation Static Blog Framework.",author:{avatar:"https://cdn.jsdelivr.net/gh/YunYouJun/yun/images/meme/yun-good-with-bg.jpg",name:"YunYouJun",status:{emoji:"\u{1F60A}",message:"All at sea."}},social:[],description:"A blog generated by Valaxy.",license:{enabled:!0,language:"",type:"by-nc-sa"},sponsor:{enable:!0,title:"\u6211\u5F88\u53EF\u7231\uFF0C\u8BF7\u7ED9\u6211\u94B1",methods:[{name:"\u652F\u4ED8\u5B9D",url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/alipay-qrcode.jpg",color:"#00A3EE",icon:"i-ri-alipay-line"},{name:"QQ \u652F\u4ED8",url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/qqpay-qrcode.png",color:"#12B7F5",icon:"i-ri-qq-line"},{name:"\u5FAE\u4FE1\u652F\u4ED8",url:"https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/donate/wechatpay-qrcode.jpg",color:"#2DC100",icon:"i-ri-wechat-pay-line"}]},search:{algolia:{enable:!1,appId:"",apiKey:"",indexName:"",chunkSize:5e3}},comment:{waline:{enable:!1,serverURL:""}},theme:"yun",themeConfig:{},unocss:{},markdown:{excerpt:"<!-- more -->"},markdownIt:{toc:{listType:"ol"},katex:{}}};async function X(e={}){let{config:r,sources:t}=await _unconfig.loadConfig.call(void 0, {sources:[{files:"valaxy.config",extensions:["ts","js","mjs","cjs","json"]}],merge:!1}),i=t[0],o=_defu2.default.call(void 0, r,K),a=e.theme||o.theme||"yun";try{let{defaultThemeConfig:n}=await Promise.resolve().then(()=>D(k(`valaxy-theme-${a}`)));o.themeConfig=_defu2.default.call(void 0, o.themeConfig,n)}catch (e3){console.error(`valaxy-theme-${a} doesn't have default config`)}return{config:o,configFile:i,theme:a}}var g="@valaxyjs/config";function Q(e,r={}){let t="/@valaxy",i=e.config,o=[e.userRoot,e.themeRoot];function a(){let n=[];for(let l of o){let m=[_path.join.call(void 0, l,"styles","vars.scss"),_path.join.call(void 0, l,"styles","index.css"),_path.join.call(void 0, l,"styles","index.scss")];for(let c of m)if(_fs2.default.existsSync(c)){n.push(`import "${z(c)}"`);continue}}return n.join(`
|
|
10
|
+
`)}return{name:"Valaxy",configureServer(n){n.watcher.add([e.configFile,e.userRoot,e.themeRoot])},resolveId(n){return n.startsWith(t)?n:null},load(n){if(n===`/${g}`)return`export default ${JSON.stringify(JSON.stringify(i))}`;if(n==="/@valaxyjs/styles")return a();if(n.startsWith(t))return""},async handleHotUpdate(n){var s;let{file:l,server:m}=n;if(l!==e.configFile)return;let{config:c}=await X();(s=r.onConfigReload)==null||s.call(r,c,e.config),Object.assign(e.config,c),i=c;let u=[`/${g}`];return[...Array.from(u).map(d=>m.moduleGraph.getModuleById(d))].filter(d=>!!d)}}}function re(e,r={},t="dev"){let{clientRoot:i,themeRoot:o,userRoot:a}=e,n=G(e),l=J(e),m=Q(e,r),c=new (0, _markdownit2.default)({html:!0}),u=b(c,e.config.markdownIt),f=[i,o,a];return[_pluginvue2.default.call(void 0, {include:[/\.vue$/,/\.md$/],template:{compilerOptions:{isCustomElement:s=>["meting-js"].includes(s)}}}),m,n,_vitepluginpages2.default.call(void 0, {extensions:["vue","md"],dirs:f.map(s=>`${s}/pages`),extendRoute(s){var _;let d=s.component;s.meta||(s.meta={}),s.path==="/"&&(s.meta.layout="home"),f.forEach(te=>{let S=te+s.component;_fs2.default.existsSync(S)&&(d=S)});let P=_fs2.default.readFileSync(d,"utf-8"),{data:v,excerpt:I}=_graymatter2.default.call(void 0, P,{excerpt_separator:O});return s.path.startsWith("/posts/")&&(s.meta.layout="post",v.date||_consola2.default.warn(`You forgot to write ${_chalk2.default.yellow("date")} for post: ${_chalk2.default.dim(`${s.component}`)}`)),s.meta=Object.assign(s.meta,{frontmatter:Object.assign({date:new Date},v),excerpt:I?c.render(I):""}),c.render(P),s.meta.headers=(_=u.__data)==null?void 0:_.headers,s.meta.frontmatter.updated&&(s.meta.frontmatter.updated=s.meta.frontmatter.date),v.layout&&(s.meta.layout=v.layout),s}}),_vitepluginvuelayouts2.default.call(void 0, {layoutsDirs:f.map(s=>`${s}/layouts`)}),_vite4.default.call(void 0, {extensions:["vue","md"],include:[/\.vue$/,/\.vue\?vue/,/\.md$/],allowOverrides:!0,dirs:f.map(s=>`${s}/components`)}),l,_vitepluginpwa.VitePWA.call(void 0, {registerType:"autoUpdate",includeAssets:["favicon.svg","safari-pinned-tab.svg"],manifest:{name:"Theme Yun",short_name:"Yun",theme_color:"#ffffff",icons:[{src:"/pwa-192x192.png",sizes:"192x192",type:"image/png"},{src:"/pwa-512x512.png",sizes:"512x512",type:"image/png"},{src:"/pwa-512x512.png",sizes:"512x512",type:"image/png",purpose:"any maskable"}]}}),_vitepluginvuei18n2.default.call(void 0, {runtimeOnly:!0,compositionOnly:!0,include:f.map(s=>`${s}/locales/**`)}),t==="dev"&&_viteplugininspect2.default.call(void 0, )]}function vt(e,r={},t="dev"){let{configFile:i}=e,o={resolve:{alias:{"@/":`${e.userRoot}/`,"~/":`${e.clientRoot}/`,"@valaxyjs/client":`${e.clientRoot}/`,"valaxy/package.json":`${_path2.default.resolve(e.clientRoot,"../../package.json")}`,valaxy:`${_path2.default.resolve(e.clientRoot,"..")}`,[g]:`/${g}`,"@valaxyjs/core":`${_path2.default.resolve(e.clientRoot,"../core")}`,[`valaxy-theme-${e.theme}`]:`${_path2.default.resolve(e.themeRoot)}/`}},root:e.clientRoot,plugins:re(e,r,t),server:{fs:{allow:[_vite.searchForWorkspaceRoot.call(void 0, e.clientRoot),_vite.searchForWorkspaceRoot.call(void 0, e.userRoot),_vite.searchForWorkspaceRoot.call(void 0, e.themeRoot)]}},optimizeDeps:{entries:[_path2.default.resolve(e.clientRoot,"main.ts"),i],include:["vue","vue-router","@vueuse/core","@vueuse/head"],exclude:["vue-demi"]}};return t==="build"&&(o.ssgOptions={script:"async",formatting:"minify",onFinished(){_vitessgsitemap2.default.call(void 0, )}}),o}exports.a = k; exports.b = D; exports.c = Vr; exports.d = Ye; exports.e = X; exports.f = vt;
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkDEKAH6ZEjs = require('./chunk-DEKAH6ZE.js');var _chunkZX4FV7OAjs = require('./chunk-ZX4FV7OA.js');var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _child_process = require('child_process');var _yargs = require('yargs'); var _yargs2 = _interopRequireDefault(_yargs);var _open = require('open'); var _open2 = _interopRequireDefault(_open);var _node = require('vite-ssg/node');var _consola = require('consola'); var _consola2 = _interopRequireDefault(_consola);var c="0.0.5";var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);var F=_debug2.default.call(void 0, "valaxy:options");function N(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}function D(e,i){return e?N(e)?_path.resolve.call(void 0, _path.dirname.call(void 0, i),e):_chunkZX4FV7OAjs.c.call(void 0, `valaxy-theme-${e}/package.json`):""}async function g(e){let i=_path.resolve.call(void 0, _chunkZX4FV7OAjs.c.call(void 0, "valaxy/package.json"),"src/client"),r=_path.resolve.call(void 0, e.userRoot||process.cwd()),{config:n,configFile:t,theme:s}=await _chunkZX4FV7OAjs.e.call(void 0, e),a=D(s,r),l={clientRoot:i,userRoot:r,themeRoot:a,theme:s,config:n,configFile:t||""};return F(l),l}var _readline = require('readline'); var k = _interopRequireWildcard(_readline);var _os = require('os'); var _os2 = _interopRequireDefault(_os);var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);var u;function v(e,i,r){console.log(),console.log(` ${_chalk2.default.bold("\u{1F30C} Valaxy")} ${_chalk2.default.blue(`v${c}`)}`),console.log(),console.log(`${_chalk2.default.dim(" \u{1FA90} theme ")} > ${e.theme?_chalk2.default.green(e.theme):_chalk2.default.gray("none")}`),console.log(` ${_chalk2.default.dim("\u{1F4C1}")} ${_chalk2.default.dim(_path2.default.resolve(e.userRoot))}`),i&&(console.log(),console.log(`${_chalk2.default.dim(" Preview ")} > ${_chalk2.default.cyan(`http://localhost:${_chalk2.default.bold(i)}/`)}`),r&&Object.values(_os2.default.networkInterfaces()).forEach(n=>(n||[]).filter(t=>t.family==="IPv4"&&!t.address.includes("127.0.0.1")).forEach(({address:t})=>{console.log(`${_chalk2.default.dim(" Network ")} > ${_chalk2.default.blue(`http://${t}:${_chalk2.default.bold(i)}/`)}`)})),console.log(),console.log(`${_chalk2.default.dim(" shortcuts ")} > ${_chalk2.default.underline("r")}${_chalk2.default.dim("estart | ")}${_chalk2.default.underline("o")}${_chalk2.default.dim("pen | ")}${_chalk2.default.underline("e")}${_chalk2.default.dim("dit")}`)),console.log()}async function m(e,i){u&&await u.close();try{let r=_chunkZX4FV7OAjs.d.call(void 0, e.config).concat(e.config.unocss.safelist||[]);u=await _chunkDEKAH6ZEjs.a.call(void 0, e,i,{onConfigReload(n,t){let s=!1;n.social.some((l,b)=>!r.includes(l.icon)&&l.icon!==t.social[b].icon)&&(_consola2.default.info("Find new icon, reload server..."),_consola2.default.info(`If you do not want to reload it, write icon name in ${_chalk2.default.green("config.unocss.safelist")}.`),_consola2.default.info('For example: ["i-ri-cloud-line"]'),console.log(),s=!0),s&&m(e,i)}}),await u.listen()}catch(r){_consola2.default.error(`failed to start server. error:
|
|
2
|
+
`),console.error(r),process.exit(1)}}function V(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),k.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(i,r)=>{if(r.ctrl&&r.name==="c")process.exit();else{let[n]=e.filter(t=>t.name===i);if(n)try{n.action()}catch(t){console.error(`Failed to execute shortcut ${n.fullName}`,t)}}})}var h=_yargs2.default.scriptName("valaxy").usage("$0 [args]").version(c).showHelpOnFail(!1).alias("h","help").alias("v","version");h.command("* [root]","Start a local server for Valaxy",e=>O(e).option("port",{alias:"p",type:"number",describe:"port"}).option("open",{alias:"o",default:!1,type:"boolean",describe:"open in browser"}).option("remote",{default:!0,type:"boolean",describe:"listen public host and enable remote control"}).option("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:i,open:r,remote:n,log:t})=>{_fs2.default.existsSync(_path2.default.resolve(e,"pages"))||process.exit(0);let s=i||4859,a=await g({userRoot:e}),l={server:{watch:{ignored:[`!${a.themeRoot}/**`,`${a.userRoot}/**.md`]},port:s,strictPort:!0,open:r,host:n?"0.0.0.0":"localhost"},logLevel:t};await m(a,l),v(a,s,n),V([{name:"r",fullName:"restart",action(){m(a,l)}},{name:"o",fullName:"open",action(){_open2.default.call(void 0, `http://localhost:${s}`)}},{name:"e",fullName:"edit",action(){_child_process.exec.call(void 0, `code "${e}"`)}}])});h.command("build [root]","build your blog to static content",e=>O(e).option("ssg",{alias:"s",type:"boolean",default:!1,describe:"static site generate"}).option("output",{alias:"o",type:"string",default:"dist",describe:"output dir"}).option("base",{type:"string",describe:"output base"}).strict().help(),async({ssg:e,root:i,base:r,output:n})=>{let t=await g({userRoot:i});if(v(t),e){_consola2.default.info("use vite-ssg to do ssg build...");try{await _node.build.call(void 0, {mode:"production"})}catch(s){_consola2.default.error("[vite-ssg] An internal error occurred."),console.log(s)}}else{let{build:s}=await Promise.resolve().then(()=>_chunkZX4FV7OAjs.b.call(void 0, _chunkZX4FV7OAjs.a.call(void 0, "./build-QCHURQKL.js")));_consola2.default.info("use vite do spa build..."),await s(t,{base:r,build:{emptyOutDir:!0,outDir:_path2.default.resolve(t.userRoot,n)}})}});function O(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}function de(){h.help().parse()}exports.run = de;
|
package/dist/cli.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as $}from"./chunk-7NQGUR4O.mjs";import{a as S,b as I,c as d,d as x,e as w}from"./chunk-TIPISWPV.mjs";import A from"fs";import O from"path";import{exec as H}from"child_process";import B from"yargs";import J from"open";import{build as M}from"vite-ssg/node";import y from"consola";var c="0.0.5";import{dirname as E,resolve as f}from"path";import F from"debug";var N=F("valaxy:options");function D(e){return e.startsWith("/")||/^\.\.?[\/\\]/.test(e)}function L(e,i){return e?D(e)?f(E(i),e):d(`valaxy-theme-${e}/package.json`):""}async function g(e){let i=f(d("valaxy/package.json"),"src/client"),r=f(e.userRoot||process.cwd()),{config:n,configFile:t,theme:s}=await w(e),a=L(s,r),l={clientRoot:i,userRoot:r,themeRoot:a,theme:s,config:n,configFile:t||""};return N(l),l}import*as V from"readline";import P from"path";import Y from"os";import o from"chalk";import p from"consola";var u;function v(e,i,r){console.log(),console.log(` ${o.bold("\u{1F30C} Valaxy")} ${o.blue(`v${c}`)}`),console.log(),console.log(`${o.dim(" \u{1FA90} theme ")} > ${e.theme?o.green(e.theme):o.gray("none")}`),console.log(` ${o.dim("\u{1F4C1}")} ${o.dim(P.resolve(e.userRoot))}`),i&&(console.log(),console.log(`${o.dim(" Preview ")} > ${o.cyan(`http://localhost:${o.bold(i)}/`)}`),r&&Object.values(Y.networkInterfaces()).forEach(n=>(n||[]).filter(t=>t.family==="IPv4"&&!t.address.includes("127.0.0.1")).forEach(({address:t})=>{console.log(`${o.dim(" Network ")} > ${o.blue(`http://${t}:${o.bold(i)}/`)}`)})),console.log(),console.log(`${o.dim(" shortcuts ")} > ${o.underline("r")}${o.dim("estart | ")}${o.underline("o")}${o.dim("pen | ")}${o.underline("e")}${o.dim("dit")}`)),console.log()}async function m(e,i){u&&await u.close();try{let r=x(e.config).concat(e.config.unocss.safelist||[]);u=await $(e,i,{onConfigReload(n,t){let s=!1;n.social.some((l,b)=>!r.includes(l.icon)&&l.icon!==t.social[b].icon)&&(p.info("Find new icon, reload server..."),p.info(`If you do not want to reload it, write icon name in ${o.green("config.unocss.safelist")}.`),p.info('For example: ["i-ri-cloud-line"]'),console.log(),s=!0),s&&m(e,i)}}),await u.listen()}catch(r){p.error(`failed to start server. error:
|
|
2
|
+
`),console.error(r),process.exit(1)}}function C(e){process.stdin.resume(),process.stdin.setEncoding("utf8"),V.emitKeypressEvents(process.stdin),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(i,r)=>{if(r.ctrl&&r.name==="c")process.exit();else{let[n]=e.filter(t=>t.name===i);if(n)try{n.action()}catch(t){console.error(`Failed to execute shortcut ${n.fullName}`,t)}}})}var h=B.scriptName("valaxy").usage("$0 [args]").version(c).showHelpOnFail(!1).alias("h","help").alias("v","version");h.command("* [root]","Start a local server for Valaxy",e=>j(e).option("port",{alias:"p",type:"number",describe:"port"}).option("open",{alias:"o",default:!1,type:"boolean",describe:"open in browser"}).option("remote",{default:!0,type:"boolean",describe:"listen public host and enable remote control"}).option("log",{default:"warn",type:"string",choices:["error","warn","info","silent"],describe:"log level"}).strict().help(),async({root:e,port:i,open:r,remote:n,log:t})=>{A.existsSync(O.resolve(e,"pages"))||process.exit(0);let s=i||4859,a=await g({userRoot:e}),l={server:{watch:{ignored:[`!${a.themeRoot}/**`,`${a.userRoot}/**.md`]},port:s,strictPort:!0,open:r,host:n?"0.0.0.0":"localhost"},logLevel:t};await m(a,l),v(a,s,n),C([{name:"r",fullName:"restart",action(){m(a,l)}},{name:"o",fullName:"open",action(){J(`http://localhost:${s}`)}},{name:"e",fullName:"edit",action(){H(`code "${e}"`)}}])});h.command("build [root]","build your blog to static content",e=>j(e).option("ssg",{alias:"s",type:"boolean",default:!1,describe:"static site generate"}).option("output",{alias:"o",type:"string",default:"dist",describe:"output dir"}).option("base",{type:"string",describe:"output base"}).strict().help(),async({ssg:e,root:i,base:r,output:n})=>{let t=await g({userRoot:i});if(v(t),e){y.info("use vite-ssg to do ssg build...");try{await M({mode:"production"})}catch(s){y.error("[vite-ssg] An internal error occurred."),console.log(s)}}else{let{build:s}=await Promise.resolve().then(()=>I(S("./build-LSWX3GTV.mjs")));y.info("use vite do spa build..."),await s(t,{base:r,build:{emptyOutDir:!0,outDir:O.resolve(t.userRoot,n)}})}});function j(e){return e.positional("root",{default:".",type:"string",describe:"root folder of your source files"})}function fe(){h.help().parse()}export{fe as run};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import * as vite from 'vite';
|
|
2
|
+
import { InlineConfig } from 'vite';
|
|
3
|
+
import { VitePluginConfig } from 'unocss/vite';
|
|
4
|
+
import MarkdownIt from 'markdown-it';
|
|
5
|
+
import Anchor from 'markdown-it-anchor';
|
|
6
|
+
import { KatexOptions } from 'katex';
|
|
7
|
+
import Markdown from 'vite-plugin-md';
|
|
8
|
+
|
|
9
|
+
interface MarkdownOptions extends MarkdownIt.Options {
|
|
10
|
+
config?: (md: MarkdownIt) => void;
|
|
11
|
+
anchor?: {
|
|
12
|
+
permalink?: Anchor.AnchorOptions['permalink'];
|
|
13
|
+
};
|
|
14
|
+
toc?: any;
|
|
15
|
+
katex?: KatexOptions;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare type ViteMdOptions = Parameters<typeof Markdown>[0];
|
|
19
|
+
|
|
20
|
+
declare type ValaxyThemeConfig = Record<string, any>;
|
|
21
|
+
interface SocialLink {
|
|
22
|
+
/**
|
|
23
|
+
* The title of your link
|
|
24
|
+
*/
|
|
25
|
+
name: string;
|
|
26
|
+
link: string;
|
|
27
|
+
/**
|
|
28
|
+
* 图标名称
|
|
29
|
+
* https://icones.js.org/
|
|
30
|
+
*/
|
|
31
|
+
icon: string;
|
|
32
|
+
color: string;
|
|
33
|
+
}
|
|
34
|
+
interface ValaxyConfig<T = ValaxyThemeConfig> {
|
|
35
|
+
/**
|
|
36
|
+
* Default language
|
|
37
|
+
* @description 默认语言
|
|
38
|
+
* @default 'en'
|
|
39
|
+
*/
|
|
40
|
+
lang: string;
|
|
41
|
+
/**
|
|
42
|
+
* You site url in web, required for ssg, do not add / in end
|
|
43
|
+
* @description 站点的 URL,SSG 需要(譬如生成版权处文章永久链接),不要在末尾添加 /
|
|
44
|
+
*/
|
|
45
|
+
url: string;
|
|
46
|
+
/**
|
|
47
|
+
* Site title
|
|
48
|
+
* @description 站点标题
|
|
49
|
+
*/
|
|
50
|
+
title: string;
|
|
51
|
+
/**
|
|
52
|
+
* 副标题
|
|
53
|
+
*/
|
|
54
|
+
subtitle: string;
|
|
55
|
+
/**
|
|
56
|
+
* 站点描述
|
|
57
|
+
*/
|
|
58
|
+
description: string;
|
|
59
|
+
/**
|
|
60
|
+
* The owner of this blog
|
|
61
|
+
* @description 博客作者
|
|
62
|
+
*/
|
|
63
|
+
author: {
|
|
64
|
+
/**
|
|
65
|
+
* Your name
|
|
66
|
+
* @description 你的名字
|
|
67
|
+
*/
|
|
68
|
+
name: string;
|
|
69
|
+
avatar: string;
|
|
70
|
+
/**
|
|
71
|
+
* The status of you
|
|
72
|
+
* @description 状态
|
|
73
|
+
*/
|
|
74
|
+
status: {
|
|
75
|
+
emoji: string;
|
|
76
|
+
/**
|
|
77
|
+
* show when hover emoji
|
|
78
|
+
* @description 当鼠标悬浮在图标上时显示
|
|
79
|
+
*/
|
|
80
|
+
message: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* 社交链接
|
|
85
|
+
*/
|
|
86
|
+
social: SocialLink[];
|
|
87
|
+
/**
|
|
88
|
+
* search
|
|
89
|
+
*/
|
|
90
|
+
search: {
|
|
91
|
+
algolia: {
|
|
92
|
+
enable: boolean;
|
|
93
|
+
appId: string;
|
|
94
|
+
apiKey: string;
|
|
95
|
+
indexName: string;
|
|
96
|
+
chunkSize: number;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* comment: waline/...
|
|
101
|
+
*/
|
|
102
|
+
comment: {
|
|
103
|
+
waline: {
|
|
104
|
+
enable: boolean;
|
|
105
|
+
serverURL: string;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* The name of theme
|
|
110
|
+
* @description 主题名称
|
|
111
|
+
*/
|
|
112
|
+
theme: string;
|
|
113
|
+
/**
|
|
114
|
+
* The config of theme
|
|
115
|
+
* @description 主题配置
|
|
116
|
+
*/
|
|
117
|
+
themeConfig: T;
|
|
118
|
+
/**
|
|
119
|
+
* Unocss Config
|
|
120
|
+
*/
|
|
121
|
+
unocss: VitePluginConfig;
|
|
122
|
+
/**
|
|
123
|
+
* The license of your posts
|
|
124
|
+
* @description 文章所使用的协议,默认使用 Creative Commons
|
|
125
|
+
* @default https://creativecommons.org/licenses/
|
|
126
|
+
*/
|
|
127
|
+
license: {
|
|
128
|
+
/**
|
|
129
|
+
* Whether to show at the bottom of the article
|
|
130
|
+
* @description 是否显示在文章底部
|
|
131
|
+
* @default true
|
|
132
|
+
*/
|
|
133
|
+
enabled: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Creative License Language, same with your config.lang
|
|
136
|
+
* when lang === 'zh-CN', use 'zh'
|
|
137
|
+
* @description 默认与站点语言相同
|
|
138
|
+
* @default 'en'
|
|
139
|
+
*/
|
|
140
|
+
language: string;
|
|
141
|
+
/**
|
|
142
|
+
* Type of license
|
|
143
|
+
* @description 证书类型
|
|
144
|
+
* @default 'by-nc-sa'
|
|
145
|
+
*/
|
|
146
|
+
type: 'zero' | 'by-sa' | 'by-nd' | 'by-nc' | 'by-nc-sa' | 'by-nc-nd';
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* donate for author
|
|
150
|
+
* @description 打赏/赞助
|
|
151
|
+
*/
|
|
152
|
+
sponsor: {
|
|
153
|
+
enable: boolean;
|
|
154
|
+
title: string;
|
|
155
|
+
methods: {
|
|
156
|
+
name: string;
|
|
157
|
+
url: string;
|
|
158
|
+
color: string;
|
|
159
|
+
icon: string;
|
|
160
|
+
}[];
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* for markdown
|
|
164
|
+
*/
|
|
165
|
+
markdown: ViteMdOptions;
|
|
166
|
+
markdownIt: MarkdownOptions;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
interface ResolvedValaxyOptions {
|
|
170
|
+
/**
|
|
171
|
+
* Client root path
|
|
172
|
+
* @default 'valaxy/src/client'
|
|
173
|
+
*/
|
|
174
|
+
clientRoot: string;
|
|
175
|
+
/**
|
|
176
|
+
* User root path
|
|
177
|
+
* @default process.cwd()
|
|
178
|
+
*/
|
|
179
|
+
userRoot: string;
|
|
180
|
+
/**
|
|
181
|
+
* Theme root path
|
|
182
|
+
*/
|
|
183
|
+
themeRoot: string;
|
|
184
|
+
/**
|
|
185
|
+
* Theme name
|
|
186
|
+
*/
|
|
187
|
+
theme: string;
|
|
188
|
+
/**
|
|
189
|
+
* Valaxy Config
|
|
190
|
+
*/
|
|
191
|
+
config: ValaxyConfig;
|
|
192
|
+
/**
|
|
193
|
+
* config file path
|
|
194
|
+
*/
|
|
195
|
+
configFile: string;
|
|
196
|
+
}
|
|
197
|
+
interface ValaxyServerOptions {
|
|
198
|
+
onConfigReload?: (newConfig: ValaxyConfig, config: ValaxyConfig) => void;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
declare function createServer(options: ResolvedValaxyOptions, viteConfig?: InlineConfig, serverOptions?: ValaxyServerOptions): Promise<vite.ViteDevServer>;
|
|
202
|
+
|
|
203
|
+
export { createServer };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkDEKAH6ZEjs = require('./chunk-DEKAH6ZE.js');require('./chunk-ZX4FV7OA.js');exports.createServer = _chunkDEKAH6ZEjs.a;
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as o}from"./chunk-7NQGUR4O.mjs";import"./chunk-TIPISWPV.mjs";export{o as createServer};
|
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valaxy",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "📄 Vite & Vue powered static blog generator.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
5
7
|
"keywords": [
|
|
6
8
|
"vite",
|
|
7
9
|
"vue",
|
|
@@ -13,5 +15,75 @@
|
|
|
13
15
|
"url": "https://www.yunyoujun.cn"
|
|
14
16
|
},
|
|
15
17
|
"license": "MIT",
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
+
"homepage": "https://valaxy.yyj.moe",
|
|
19
|
+
"repository": "https://github.com/YunYouJun/valaxy",
|
|
20
|
+
"bin": {
|
|
21
|
+
"vala": "./bin/valaxy.js",
|
|
22
|
+
"valaxy": "./bin/valaxy.js"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@ctrl/tinycolor": "^3.4.0",
|
|
26
|
+
"@iconify-json/carbon": "^1.1.1",
|
|
27
|
+
"@iconify-json/ri": "^1.1.1",
|
|
28
|
+
"@intlify/vite-plugin-vue-i18n": "^3.3.1",
|
|
29
|
+
"@types/katex": "^0.14.0",
|
|
30
|
+
"@types/markdown-it-link-attributes": "^3.0.1",
|
|
31
|
+
"@types/nprogress": "^0.2.0",
|
|
32
|
+
"@types/yargs": "^17.0.10",
|
|
33
|
+
"@unocss/reset": "^0.30.8",
|
|
34
|
+
"@vitejs/plugin-vue": "^2.3.1",
|
|
35
|
+
"chalk": "4",
|
|
36
|
+
"consola": "^2.15.3",
|
|
37
|
+
"critters": "^0.0.16",
|
|
38
|
+
"cross-env": "^7.0.3",
|
|
39
|
+
"debug": "^4.3.4",
|
|
40
|
+
"diacritics": "^1.3.0",
|
|
41
|
+
"https-localhost": "^4.7.1",
|
|
42
|
+
"katex": "^0.15.3",
|
|
43
|
+
"markdown-it-anchor": "^8.4.1",
|
|
44
|
+
"markdown-it-container": "^3.0.0",
|
|
45
|
+
"markdown-it-emoji": "^2.0.0",
|
|
46
|
+
"markdown-it-link-attributes": "^4.0.0",
|
|
47
|
+
"markdown-it-prism": "^2.2.3",
|
|
48
|
+
"markdown-it-table-of-contents": "^0.6.0",
|
|
49
|
+
"open": "^8.4.0",
|
|
50
|
+
"sass": "^1.49.10",
|
|
51
|
+
"star-markdown-css": "^0.3.0",
|
|
52
|
+
"type-fest": "^2.12.2",
|
|
53
|
+
"unocss": "^0.30.8",
|
|
54
|
+
"unplugin-vue-components": "^0.18.5",
|
|
55
|
+
"vite": "^2.9.1",
|
|
56
|
+
"vite-plugin-inspect": "^0.4.3",
|
|
57
|
+
"vite-plugin-md": "^0.12.4",
|
|
58
|
+
"vite-plugin-pages": "^0.22.0",
|
|
59
|
+
"vite-plugin-pwa": "^0.11.13",
|
|
60
|
+
"vite-plugin-vue-layouts": "^0.6.0",
|
|
61
|
+
"vite-ssg": "^0.19.0",
|
|
62
|
+
"vite-ssg-sitemap": "^0.2.0",
|
|
63
|
+
"vue-tsc": "^0.33.9"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@vueuse/core": "^8.2.3",
|
|
67
|
+
"@vueuse/head": "^0.7.5",
|
|
68
|
+
"dayjs": "^1.11.0",
|
|
69
|
+
"fast-deep-equal": "^3.1.3",
|
|
70
|
+
"nprogress": "^0.2.0",
|
|
71
|
+
"pinia": "^2.0.13",
|
|
72
|
+
"prism-theme-vars": "^0.2.2",
|
|
73
|
+
"unconfig": "^0.3.2",
|
|
74
|
+
"vue": "^3.2.31",
|
|
75
|
+
"vue-demi": "^0.12.5",
|
|
76
|
+
"vue-i18n": "^9.1.9",
|
|
77
|
+
"vue-router": "^4.0.14",
|
|
78
|
+
"yargs": "^17.4.0"
|
|
79
|
+
},
|
|
80
|
+
"scripts": {
|
|
81
|
+
"build": "tsup-node",
|
|
82
|
+
"dev": "tsup-node --watch",
|
|
83
|
+
"lint": "eslint \"**/*.{vue,ts,js}\"",
|
|
84
|
+
"preview": "vite preview",
|
|
85
|
+
"preview-https": "serve dist",
|
|
86
|
+
"typecheck": "vue-tsc --noEmit"
|
|
87
|
+
},
|
|
88
|
+
"readme": "# Valaxy\n\n🌌 Next Generation Static Blog Framework, powered by Vite & Vue.\n\nRead [YunYouJun/valaxy](https://github.com/YunYouJun/valaxy) for more info.\n"
|
|
89
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
// https://github.com/vueuse/head
|
|
3
|
+
// you can use this to manipulate the document head in any components,
|
|
4
|
+
// they will be rendered correctly in the html results with vite-ssg
|
|
5
|
+
import { useHead } from '@vueuse/head'
|
|
6
|
+
useHead({
|
|
7
|
+
title: 'Theme Yun',
|
|
8
|
+
meta: [
|
|
9
|
+
{ name: 'description', content: 'Theme Yun' },
|
|
10
|
+
],
|
|
11
|
+
})
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<router-view />
|
|
16
|
+
</template>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from 'vue'
|
|
3
|
+
|
|
4
|
+
const props = defineProps<{
|
|
5
|
+
to: string
|
|
6
|
+
}>()
|
|
7
|
+
|
|
8
|
+
const isExternalLink = computed(() => {
|
|
9
|
+
return typeof props.to === 'string' && props.to.startsWith('http')
|
|
10
|
+
})
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<a v-if="isExternalLink" v-bind="$attrs" :href="to" target="_blank">
|
|
15
|
+
<slot />
|
|
16
|
+
</a>
|
|
17
|
+
<router-link v-else v-bind="$props">
|
|
18
|
+
<slot />
|
|
19
|
+
</router-link>
|
|
20
|
+
</template>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { useI18n } from 'vue-i18n'
|
|
3
|
+
import type { Post } from '../../types'
|
|
4
|
+
import { usePostProperty } from '~/composables'
|
|
5
|
+
|
|
6
|
+
const props = defineProps<{
|
|
7
|
+
post: Post
|
|
8
|
+
}>()
|
|
9
|
+
|
|
10
|
+
const { t } = useI18n()
|
|
11
|
+
|
|
12
|
+
const { icon, styles } = usePostProperty(props.post.type)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<YunCard m="y-4 auto" class="post-card" :style="styles">
|
|
17
|
+
<div v-if="post.top" class="post-top-icon">
|
|
18
|
+
<div i-ri-pushpin-line />
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<AppLink
|
|
22
|
+
class="post-title-link"
|
|
23
|
+
:to="post.path || ''"
|
|
24
|
+
m="t-3"
|
|
25
|
+
>
|
|
26
|
+
<div class="flex justify-center items-center title text-2xl" font="serif black">
|
|
27
|
+
<div v-if="post.type" class="inline-flex" m="r-1" :class="icon" />{{ post.title }}
|
|
28
|
+
</div>
|
|
29
|
+
</AppLink>
|
|
30
|
+
|
|
31
|
+
<YunPostMeta m="b-4" :frontmatter="post" />
|
|
32
|
+
|
|
33
|
+
<div v-if="post.excerpt" class="markdown-body" text="left" w="full" p="x-6 lt-sm:4" v-html="post.excerpt" />
|
|
34
|
+
|
|
35
|
+
<a
|
|
36
|
+
v-if="post.url"
|
|
37
|
+
:href="post.url"
|
|
38
|
+
class="post-link-btn shadow hover:shadow-md"
|
|
39
|
+
rounded
|
|
40
|
+
target="_blank"
|
|
41
|
+
m="b-4"
|
|
42
|
+
>
|
|
43
|
+
{{ t('post.view_link') }}
|
|
44
|
+
</a>
|
|
45
|
+
|
|
46
|
+
<div v-if="post.categories || post.tags" w="full" class="yun-card-actions flex justify-between" border="t" text="sm">
|
|
47
|
+
<router-link
|
|
48
|
+
v-if="post.categories"
|
|
49
|
+
:to="{
|
|
50
|
+
path: '/categories/',
|
|
51
|
+
query: {category: Array.isArray(post.categories) ? post.categories[post.categories.length - 1] : post.categories}
|
|
52
|
+
}"
|
|
53
|
+
class="post-categories inline-flex justify-center items-center" m="l-2"
|
|
54
|
+
>
|
|
55
|
+
<div m="x-1" i-ri-folder-2-line />
|
|
56
|
+
{{ Array.isArray(post.categories) ? post.categories.join(' > ') : post.categories }}
|
|
57
|
+
</router-link>
|
|
58
|
+
|
|
59
|
+
<div class="post-tags inline-flex" m="r-2">
|
|
60
|
+
<template v-if="post.tags">
|
|
61
|
+
<router-link v-for="tag,i in post.tags" :key="i" :to="{path: '/tags/', query: {tag: tag}}" m="x-1" class="post-tag inline-flex justify-center items-center">
|
|
62
|
+
<div m="r-1" i-ri-price-tag-3-line />
|
|
63
|
+
{{ tag }}
|
|
64
|
+
</router-link>
|
|
65
|
+
</template>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</YunCard>
|
|
69
|
+
</template>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed, ref } from 'vue'
|
|
3
|
+
import type { Post } from 'valaxy'
|
|
4
|
+
import { usePostList } from '~/composables'
|
|
5
|
+
|
|
6
|
+
const props = withDefaults(defineProps<{
|
|
7
|
+
type?: string
|
|
8
|
+
posts?: Post[]
|
|
9
|
+
curPage?: number
|
|
10
|
+
}>(), {
|
|
11
|
+
curPage: 1,
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
const pageSize = ref(7)
|
|
15
|
+
|
|
16
|
+
const routes = usePostList({ type: props.type || '' })
|
|
17
|
+
const posts = computed(() => props.posts || routes.value)
|
|
18
|
+
const displayedPosts = computed(() => posts.value.slice((props.curPage - 1) * pageSize.value, props.curPage * pageSize.value))
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<ul w="full" p="x-4 lt-sm:0">
|
|
23
|
+
<template v-if="!displayedPosts.length">
|
|
24
|
+
<div py2 op50>
|
|
25
|
+
博主还什么都没写哦~
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<Transition v-for="route, i in displayedPosts" :key="i" name="fade">
|
|
30
|
+
<PostCard :post="route" />
|
|
31
|
+
</Transition>
|
|
32
|
+
</ul>
|
|
33
|
+
|
|
34
|
+
<ValaxyPagination :cur-page="curPage" :page-size="pageSize" :total="posts.length" />
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<style lang="scss">
|
|
38
|
+
.yun-card-actions {
|
|
39
|
+
border-top: 1px solid rgba(122, 122, 122, 0.15);
|
|
40
|
+
min-height: 2.5rem;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.post-categories {
|
|
44
|
+
color: var(--yun-c-text);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.post-tag {
|
|
48
|
+
color: var(--yun-c-text);
|
|
49
|
+
}
|
|
50
|
+
</style>
|