UNPKG

vuepress-theme-hope

Version:

A light vuepress theme with tons of features

3 lines (2 loc) 15.9 kB
import{removeEndingSlash as R,isPlainObject as J,isString as P,isLinkExternal as $,isArray as E,isLinkHttp as Q,removeLeadingSlash as X,hasGlobalComponent as x}from"@vuepress/helper/client";import{computed as h,h as e,resolveComponent as y,defineComponent as L,shallowRef as Y,onMounted as V,ref as N,nextTick as Z}from"vue";import{usePageFrontmatter as I,useRoutePath as j,resolveRoute as T,withBase as b,RouteLink as M,useSiteLocaleData as ee,usePageData as B,useRouteLocale as C,useRouter as ae}from"vuepress/client";import{resolveRepoType as le,IconBase as te,RenderDefault as O}from"vuepress-shared/client";import{u as re,r as _,D as k,p as w,l as H,a as ne,T as ie,b as oe,m as G,c as U}from"./SkipLink-BWaLo8et.js";import{i as Qe,s as Xe,d as Ye}from"./SkipLink-BWaLo8et.js";import{watchImmediate as z,useEventListener as se}from"@vueuse/core";import{u as D,a as ue,b as ce,c as ve,d as pe}from"./PageInfo-Cb8wmvLH.js";import{y as me,F as ge}from"./PageTitle-DNGnO8bB.js";import{s as ea}from"./PageTitle-DNGnO8bB.js";import{useLastUpdated as de}from"@vuepress/plugin-git/client";import"@vuepress/helper/noopComponent";import"./styles/variables.module.scss";import"@temp/theme-hope/sidebar.js";import"@vuepress/plugin-reading-time/client";import"@vuepress/plugin-comment/pageview";import"@vuepress/plugin-theme-data/client";import"balloon-css/balloon.css";const he=(n,l)=>{const t=n.replace(l,"/").split("/"),r=[];let i=R(l);return t.forEach((a,o)=>{o!==t.length-1?(i+=`${a}/`,r.push({link:i,name:a||"Home"})):a!==""&&(i+=a,r.push({link:i,name:a}))}),r},W=(n,l)=>n===!1?n:J(n)?{...n,link:_(n.link,!0,l).link}:P(n)?_(n,!0,l):null,A=(n,l,t)=>{const r=n.findIndex(a=>a.link===l);if(r!==-1){if(!n[r+t])return null;const a=n[r+t];return a.link?a:"prefix"in a&&!T(a.prefix).notFound?{...a,link:a.prefix}:null}for(const a of n)if("children"in a){const o=A(a.children,l,t);if(o)return o}const i=n.findIndex(a=>"prefix"in a&&a.prefix===l);if(i!==-1){if(!n[i+t])return null;const a=n[i+t];return a.link?a:"prefix"in a&&!T(a.prefix).notFound?{...a,link:a.prefix}:null}return null},fe=()=>{const n=I(),l=D(),t=re(),r=j(),i=h(()=>{const o=W(n.value.prev,r.value);return o===!1?null:o??(l.value.prevLink===!1?null:A(t.value,r.value,-1))}),a=h(()=>{const o=W(n.value.next,r.value);return o===!1?null:o??(l.value.nextLink===!1?null:A(t.value,r.value,1))});return{prevLink:i,nextLink:a}},F=(n,{slots:l})=>{const{bgImage:t,bgImageDark:r,bgImageStyle:i,color:a,description:o,image:g,imageDark:v,header:s,features:p=[]}=n;return e("div",{class:"vp-feature-wrapper"},[t?e("div",{class:["vp-feature-bg",{light:r}],style:[{"background-image":`url(${t})`},i]}):null,r?e("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${r})`},i]}):null,e("div",{class:"vp-feature",style:a?{color:a}:{}},[l.image?.(n)??[g?e("img",{class:["vp-feature-image",{light:v}],src:b(g),alt:""}):null,v?e("img",{class:"vp-feature-image dark",src:b(v),alt:""}):null],l.info?.(n)??[s?e("h2",{class:"vp-feature-header"},s):null,o?e("p",{class:"vp-feature-description",innerHTML:o}):null],p.length?e("div",{class:"vp-features"},p.map(({icon:d,title:u,details:c,link:m})=>{const f=[e("h3",{class:"vp-feature-title"},[e(y("VPIcon"),{icon:d}),e("span",{innerHTML:u})]),e("p",{class:"vp-feature-details",innerHTML:c})];return m?$(m)?e("a",{class:"vp-feature-item link",href:m,"aria-label":u,target:"_blank"},f):e(M,{class:"vp-feature-item link",to:m,"aria-label":u},()=>f):e("div",{class:"vp-feature-item"},f)})):null])])};F.displayName="FeaturePanel";var be=L({name:"HeroInfo",slots:Object,setup(n,{slots:l}){const t=I(),r=ee(),i=h(()=>t.value.heroFullScreen??!1),a=h(()=>{const{heroText:s,tagline:p}=t.value;return{text:s??(r.value.title||"Hello"),tagline:p??r.value.description,isFullScreen:i.value}}),o=h(()=>{const{heroText:s,heroImage:p,heroImageDark:d,heroAlt:u,heroImageStyle:c}=t.value;return{image:p?b(p):null,imageDark:d?b(d):null,imageStyle:c,alt:u??s??"",isFullScreen:i.value}}),g=h(()=>{const{bgImage:s,bgImageDark:p,bgImageStyle:d}=t.value;return{image:P(s)?b(s):null,imageDark:P(p)?b(p):null,bgStyle:d,isFullScreen:i.value}}),v=h(()=>t.value.actions??[]);return()=>e("header",{class:["vp-hero-info-wrapper",{fullscreen:i.value}]},[l.bg?.(g.value)??[g.value.image?e("div",{class:["vp-hero-mask",{light:g.value.imageDark}],style:[{"background-image":`url(${g.value.image})`},g.value.bgStyle]}):null,g.value.imageDark?e("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${g.value.imageDark})`},g.value.bgStyle]}):null],e("div",{class:"vp-hero-info"},[l.logo?.(o.value)??e(k,{appear:!0,group:!0},()=>{const{image:s,imageDark:p,imageStyle:d,alt:u}=o.value;return[s?e("img",{key:"light",class:["vp-hero-image",{light:p}],style:d,src:s,alt:u}):null,p?e("img",{key:"dark",class:"vp-hero-image dark",style:d,src:p,alt:u}):null]}),l.info?.(a.value)??e("div",{class:"vp-hero-infos"},[a.value.text?e(k,{appear:!0,delay:.04},()=>e("h1",{id:"main-title",class:"vp-hero-title"},a.value.text)):null,a.value.tagline?e(k,{appear:!0,delay:.08},()=>e("p",{id:"main-description",innerHTML:a.value.tagline})):null,v.value.length?e(k,{appear:!0,delay:.12},()=>e("p",{class:"vp-hero-actions"},v.value.map(s=>e(w,{class:["vp-hero-action",s.type??"default","no-external-link-icon"],config:s})))):null])])])}});const K=(n,{slots:l})=>{const{bgImage:t,bgImageDark:r,bgImageStyle:i,color:a,description:o,image:g,imageDark:v,header:s,highlights:p=[],type:d="un-order"}=n;return e("div",{class:"vp-highlight-wrapper",style:a?{color:a}:{}},[t?e("div",{class:["vp-highlight-bg",{light:r}],style:[{"background-image":`url(${t})`},i]}):null,r?e("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${r})`},i]}):null,e("div",{class:"vp-highlight"},[l.image?.(n)??[g?e("img",{class:["vp-highlight-image",{light:v}],src:b(g),alt:""}):null,v?e("img",{class:"vp-highlight-image dark",src:b(v),alt:""}):null],l.info?.(n)??[e("div",{class:"vp-highlight-info-wrapper"},e("div",{class:"vp-highlight-info"},[s?e("h2",{class:"vp-highlight-header",innerHTML:s}):null,o?e("p",{class:"vp-highlight-description",innerHTML:o}):null,l.highlights?.(p)??e(d==="order"?"ol":d==="no-order"?"dl":"ul",{class:"vp-highlights"},p.map(({icon:u,title:c,details:m,link:f})=>{const S=[e(d==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[u?e(y("VPIcon"),{class:"vp-highlight-icon",icon:u}):null,e("span",{innerHTML:c})]),m?e(d==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:m}):null];return e(d==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:f}]},f?$(f)?e("a",{class:"vp-highlight-item link",href:f,"aria-label":c,target:"_blank"},S):e(M,{class:"vp-highlight-item link",to:f,"aria-label":c},()=>S):e("div",{class:"vp-highlight-item"},S))}))]))]])])};K.displayName="HighlightPanel";var ke=L({name:"HomePage",slots:Object,setup(n,{slots:l}){const t=I(),r=h(()=>{const{features:a}=t.value;return E(a)?a:null}),i=h(()=>{const{highlights:a}=t.value;return E(a)?a:null});return()=>e("main",{id:"main-content",class:"vp-page vp-project-home","aria-labelledby":t.value.heroText===""?"":"main-title"},[l.top?.(),e(be),i.value?.map(a=>"features"in a?e(F,a):e(K,a))??(r.value?e(k,{appear:!0,delay:.24},()=>e(F,{features:r.value})):null),l.center?.(),e(k,{appear:!0,delay:.32},()=>e(H)),l.bottom?.()])}}),ye=L({name:"BreadCrumb",setup(){const n=B(),l=C(),t=j(),r=I(),i=D(),a=Y([]),o=h(()=>(r.value.breadcrumb??i.value.breadcrumb??!0)&&a.value.length>1),g=h(()=>r.value.breadcrumbIcon??i.value.breadcrumbIcon??!0),v=()=>{const s=he(n.value.path,l.value).map(({link:p,name:d})=>{const{path:u,meta:c,notFound:m}=T(p);return m||c.breadcrumbExclude?null:{title:c.shortTitle||c.title||d,icon:c.icon,path:u}}).filter(p=>p!==null);s.length>1&&(a.value=s)};return V(()=>{z(t,v)}),()=>e("nav",{class:["vp-breadcrumb",{disable:!o.value}]},o.value?e("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},a.value.map((s,p)=>e("li",{class:{"is-active":a.value.length-1===p},property:"itemListElement",typeof:"ListItem"},[e(M,{to:s.path,property:"item",typeof:"WebPage"},()=>[g.value?e(y("VPIcon"),{icon:s.icon}):null,e("span",{property:"name"},s.title||"Unknown")]),e("meta",{property:"position",content:p+1})]))):[])}}),Le=L({name:"PageNav",setup(){const n=D(),l=ue(),{prevLink:t,nextLink:r}=fe();return se("keydown",i=>{i.altKey&&(i.key==="ArrowRight"?r.value&&(l(r.value.link),i.preventDefault()):i.key==="ArrowLeft"&&t.value&&(l(t.value.link),i.preventDefault()))}),()=>t.value||r.value?e("nav",{class:"vp-page-nav"},[t.value?e(w,{class:"prev",config:t.value},()=>[e("div",{class:"hint"},[e("span",{class:"arrow start"}),n.value.metaLocales.prev]),e("div",{class:"link"},[e(y("VPIcon"),{icon:t.value?.icon}),t.value?.text])]):null,r.value?e(w,{class:"next",config:r.value},()=>[e("div",{class:"hint"},[n.value.metaLocales.next,e("span",{class:"arrow end"})]),e("div",{class:"link"},[r.value?.text,e(y("VPIcon"),{icon:r.value?.icon})])]):null]):null}});const Ie={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},De=({docsRepo:n,docsBranch:l,docsDir:t,filePathRelative:r,editLinkPattern:i})=>{if(!r)return null;const a=le(n);let o;return i?o=i:a!==null&&(o=Ie[a]),o?o.replace(/:repo/u,Q(n)?n:`https://github.com/${n}`).replace(/:branch/u,l).replace(/:path/u,X(`${R(t)}/${r}`)):null},Se=()=>{const n=D(),l=B(),t=I();return h(()=>{const{repo:r,docsRepo:i=r,docsBranch:a="main",docsDir:o="",editLink:g,editLinkPattern:v=""}=n.value;if(!(t.value.editLink??g??!0)||!i)return null;const s=De({docsRepo:i,docsBranch:a,docsDir:o,editLinkPattern:v,filePathRelative:l.value.filePathRelative});return s?{text:n.value.metaLocales.editLink,link:s}:null})},q=()=>e(te,{name:"edit"},()=>[e("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),e("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);q.displayName="EditIcon";var xe=L({name:"PageMeta",setup(){const n=I(),l=D(),t=Se(),r=de(()=>n.value.lastUpdated??l.value.lastUpdated??!0);return()=>{const i=(n.value.changelog??l.value.changelog??!0)&&x("GitChangelog");return e("footer",{class:"vp-page-meta"},[t.value?e("div",{class:"vp-meta-item edit-link"},e(w,{class:"vp-meta-label",config:t.value},{before:()=>e(q)})):null,e("div",{class:"vp-meta-item git-info"},!i&&r.value?e("div",{class:"update-time"},[e("span",{class:"vp-meta-label"},r.value.locale),e("time",{class:"vp-meta-info",datetime:r.value.iso,"data-allow-mismatch":""},r.value.text)]):[])])}}}),Pe=L({name:"NormalPage",slots:Object,setup(n,{slots:l}){const t=I(),{isDarkMode:r}=ne(),i=D(),a=h(()=>t.value.toc??i.value.toc??!0),o=h(()=>[2,(t.value.headerDepth??i.value.headerDepth??2)+1]);return()=>e("main",{id:"main-content",class:"vp-page"},e(x("LocalEncrypt")?y("LocalEncrypt"):O,()=>[l.top?.(),t.value.cover?e("div",{class:"page-cover"},e("img",{src:b(t.value.cover),alt:"","no-view":""})):null,e(ye),e(me),a.value?e(ie,{options:{levels:o.value,ignore:[".vp-badge"]}},{before:l.tocBefore,after:l.tocAfter}):null,e(H,{},{before:l.contentBefore,after:l.contentAfter}),e(xe),e(Le),x("CommentService")?e(y("CommentService"),{darkmode:r.value}):null,l.bottom?.()]))}}),we=L({name:"PortfolioHero",slots:Object,setup(n,{slots:l}){const t=ce(),r=I(),i=N(0),a=h(()=>r.value.titles?.[i.value]??""),o=N(""),g=h(()=>{const{name:u,avatar:c,avatarDark:m,avatarAlt:f,avatarStyle:S}=r.value;return{name:u??t.value.name,avatar:c?b(c):null,avatarDark:m?b(m):null,avatarStyle:S,alt:(f||u)??""}}),v=h(()=>{const{bgImage:u,bgImageDark:c,bgImageStyle:m}=r.value;return{image:P(u)?b(u):null,imageDark:P(c)?b(c):null,bgStyle:m}}),s=h(()=>{const{welcome:u,name:c,titles:m=[],medias:f}=r.value;return{name:c??t.value.name,welcome:u??"👋 Hi There, I'm",title:o.value,titles:m,medias:f??null}}),p=()=>{o.value="";let u=0,c=!1;const m=async()=>{if(!c)if(o.value+=a.value[u],u+=1,await Z(),u<a.value.length)setTimeout(()=>{m()},150);else{const f=s.value.titles.length;setTimeout(()=>{i.value=f<=1||i.value===s.value.titles.length-1?0:i.value+1},1e3)}};return m(),()=>{c=!0}};let d;return V(()=>{z(a,()=>{d?.(),d=p()})}),()=>e("section",{id:"portfolio",class:["vp-portfolio",{bg:v.value.image}]},[l.bg?.(v.value)??[v.value.image?e("div",{class:["vp-portfolio-mask",{light:v.value.imageDark}],style:[{background:`url(${v.value.image}) center/cover no-repeat`},v.value.bgStyle]}):null,v.value.imageDark?e("div",{class:"vp-portfolio-mask dark",style:[{background:`url(${v.value.imageDark}) center/cover no-repeat`},v.value.bgStyle]}):null],l.avatar?.(g.value)??e("div",{class:"vp-portfolio-avatar"},[e(k,{delay:.04},()=>{const{avatar:u,avatarDark:c,name:m,alt:f,avatarStyle:S}=g.value;return[u?e("img",{key:"light",class:{light:c},src:u,title:m,alt:f,style:S}):null,c?e("img",{key:"dark",class:"dark",src:c,title:m,alt:f,style:S}):null]})]),e("div",{class:"vp-portfolio-container"},l.info?.(s.value)??e("div",{class:"vp-portfolio-info"},[e(k,{appear:!0,delay:.08},()=>e("h6",{class:"vp-portfolio-welcome"},s.value.welcome)),e(k,{appear:!0,delay:.12},()=>e("h1",{class:"vp-portfolio-name",id:"main-title"},s.value.name)),e(k,{appear:!0,delay:.16},()=>e("h2",{class:"vp-portfolio-title"},o.value)),e(k,{appear:!0,delay:.2},()=>s.value.medias?e("div",{class:"vp-portfolio-medias"},s.value.medias.map(({name:u,url:c,icon:m})=>e("a",{class:"vp-portfolio-media",href:c,rel:"noopener noreferrer",target:"_blank",title:u},e(y("VPIcon"),{icon:m,sizing:"both"})))):x("SocialMedias")?e(y("SocialMedias")):null)]))])}}),Te=L({name:"PortfolioHome",setup(){const n=I(),l=h(()=>n.value.content??"portfolio");return()=>e("main",{id:"main-content",class:"vp-page vp-portfolio-home","aria-labelledby":"main-title"},[e(we),l.value==="none"?null:e("div",e(k,{appear:!0,delay:.24},()=>e(H,{class:{"vp-portfolio-content":l.value==="portfolio"}})))])}}),Me=L({name:"Layout",slots:Object,setup(n,{slots:l}){const t=ve(),r=D(),i=B(),a=I(),o=pe(),{isMobile:g}=oe(),v=h(()=>__VP_BLOG__?r.value.blog?.sidebarDisplay??t.value.blog?.sidebarDisplay??"mobile":"none");return()=>[e(G),e(U,{},{default:()=>l.default?.()??(a.value.portfolio?e(Te):a.value.home?e(ke):e(o.value?O:ge,()=>e(Pe,{key:i.value.path},{top:l.top,bottom:l.bottom,contentBefore:l.contentBefore,contentAfter:l.contentAfter,tocBefore:l.tocBefore,tocAfter:l.tocAfter}))),navScreenBottom:v.value==="none"&&x("BloggerInfo")?()=>e(y("BloggerInfo")):null,sidebar:!g.value&&v.value==="always"&&x("BloggerInfo")?()=>e(y("BloggerInfo")):null})]}}),Be=L({name:"NotFoundHint",setup(){const n=D(),l=()=>{const t=n.value.routeLocales.notFoundMsg;return t[Math.floor(Math.random()*t.length)]};return()=>e("div",{class:"not-found-hint"},[e("p",{class:"error-code"},"404"),e("h1",{class:"error-title"},n.value.routeLocales.notFoundTitle),e("p",{class:"error-hint"},l())])}}),He=L({name:"NotFound",slots:Object,setup(n,{slots:l}){const t=ae(),r=C(),i=D();return()=>[e(G),e(U,{noSidebar:!0},()=>e("main",{id:"main-content",class:"vp-page not-found"},l.default?.()??[e(Be),e("div",{class:"actions"},[e("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},i.value.routeLocales.back),e("button",{type:"button",class:"action-button",onClick:()=>{t.push(i.value.home??r.value)}},i.value.routeLocales.home)])]))]}});export{Me as Layout,He as NotFound,Qe as injectDarkMode,ea as scrollPromise,Xe as setupDarkMode,Ye as setupSidebarItems}; //# sourceMappingURL=export.js.map