UNPKG

vuepress-theme-hope

Version:

A light vuepress theme with tons of features

3 lines (2 loc) 17.6 kB
import{removeEndingSlash as q,isPlainObject as z,isString as P,useHeaders as ne,isSlotContentEmpty as F,isLinkHttp as re,removeLeadingSlash as oe,hasGlobalComponent as S,RenderDefault as ie,isLinkExternal as U,isArray as _}from"@vuepress/helper/client";import{defineComponent as L,shallowRef as K,computed as k,h as e,onMounted as H,resolveComponent as $,ref as B,nextTick as se}from"vue";import{y as ue,d as ce}from"./PageTitle-Df4PhQKx.js";import{j as ve,k as W,c as M,f as pe,u as me,d as j,r as I,t as de,e as J,m as Q}from"./DropTransition-CVQMFowA.js";import{RouteLink as R,resolveRoute as E,useRoute as ge,ClientOnly as he,withBase as b,useFrontmatter as O,useRouter as fe}from"vuepress/client";import{watchImmediate as A,useEventListener as ke,useToggle as be}from"@vueuse/core";import{a as x,j as T,b as ye,e as Le,P as Ie,u as we}from"./PageInfo-CL1v9JCd.js";import{useContributors as $e,useLastUpdated as xe}from"@vuepress/plugin-git/client";import{IconBase as De,resolveRepoType as Pe}from"vuepress-shared/client";const Se=(t,l)=>{const r=t.replace(l,"/").split("/"),n=[];let o=q(l);return r.forEach((a,i)=>{i!==r.length-1?(o+=`${a}/`,n.push({link:o,name:a||"Home"})):a!==""&&(o+=a,n.push({link:o,name:a}))}),n};var Te=L({name:"BreadCrumb",setup(){const{frontmatter:t,page:l,routeLocale:r,routePath:n,themeLocale:o}=x(),a=K([]),i=k(()=>(t.value.breadcrumb??o.value.breadcrumb??!0)&&a.value.length>1),g=k(()=>t.value.breadcrumbIcon??o.value.breadcrumbIcon??!0),s=()=>{const u=Se(l.value.path,r.value).map(({link:c,name:h})=>{const{path:p,meta:v,notFound:d}=E(c);return d||v.breadcrumbExclude?null:{title:v.shortTitle||v.title||h,icon:v.icon,path:p}}).filter(c=>c!==null);u.length>1&&(a.value=u)};return H(()=>{A(n,s)}),()=>e("nav",{class:["vp-breadcrumb",{disable:!i.value}]},i.value?e("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},a.value.map((u,c)=>e("li",{class:{"is-active":a.value.length-1===c},property:"itemListElement",typeof:"ListItem"},[e(R,{to:u.path,property:"item",typeof:"WebPage"},()=>[g.value?e($("VPIcon"),{icon:u.icon}):null,e("span",{property:"name"},u.title||"Unknown")]),e("meta",{property:"position",content:c+1})]))):[])}});const X=(t,l)=>t===!1?t:z(t)?{...t,link:W(t.link,!0,l).link}:P(t)?W(t,!0,l):null,V=(t,l,r)=>{const n=t.findIndex(a=>a.link===l);if(n!==-1){if(!t[n+r])return null;const a=t[n+r];return a.link?a:"prefix"in a&&!E(a.prefix).notFound?{...a,link:a.prefix}:null}for(const a of t)if("children"in a){const i=V(a.children,l,r);if(i)return i}const o=t.findIndex(a=>"prefix"in a&&a.prefix===l);if(o!==-1){if(!t[o+r])return null;const a=t[o+r];return a.link?a:"prefix"in a&&!E(a.prefix).notFound?{...a,link:a.prefix}:null}return null},Y=()=>{const{frontmatter:t,routePath:l,themeLocale:r}=x(),n=ve(),o=k(()=>{const i=X(t.value.prev,l.value);return i===!1?null:i??(r.value.prevLink===!1?null:V(n.value,l.value,-1))}),a=k(()=>{const i=X(t.value.next,l.value);return i===!1?null:i??(r.value.nextLink===!1?null:V(n.value,l.value,1))});return{prevLink:o,nextLink:a}};var Ce=L({name:"PageNav",setup(){const t=T(),l=ye(),{prevLink:r,nextLink:n}=Y();return ke("keydown",o=>{o.altKey&&(o.key==="ArrowRight"?n.value&&(l(n.value.link),o.preventDefault()):o.key==="ArrowLeft"&&r.value&&(l(r.value.link),o.preventDefault()))}),()=>r.value||n.value?e("nav",{class:"vp-page-nav"},[r.value?e(M,{class:"prev",config:r.value},()=>[e("div",{class:"hint"},[e("span",{class:"arrow start"}),t.value.prev]),e("div",{class:"link"},[e($("VPIcon"),{icon:r.value?.icon}),r.value?.text])]):null,n.value?e(M,{class:"next",config:n.value},()=>[e("div",{class:"hint"},[t.value.next,e("span",{class:"arrow end"})]),e("div",{class:"link"},[n.value?.text,e($("VPIcon"),{icon:n.value?.icon})])]):null]):null}}),Z=L({name:"PrintButton",setup(){const t=T(),l=Le();return()=>l.value.print===!1?null:e("button",{type:"button",class:"print-button",title:t.value.print,onClick:()=>{window.print()}},e(Ie))}});const ee={selector:[...Array.from({length:6}).map((t,l)=>`#markdown-content > h${l+1}`),"[vp-content] > h2"].join(", "),levels:"deep",ignore:[".vp-badge",".vp-icon"]};var He=L({name:"TOC",props:{items:Array},slots:Object,setup(t,{slots:l}){const{frontmatter:r,themeLocale:n}=x(),o=k(()=>{const m=r.value.toc??n.value.toc;return z(m)?{...ee,...m}:m??!0?ee:void 0}),a=ne(o),i=ge(),g=T(),[s,u]=be(),c=K(),h=B("-2rem"),p=m=>{c.value?.scrollTo({top:m,behavior:"smooth"})},v=()=>{if(c.value){const m=document.querySelector(".vp-toc-item.active");m?h.value=`${m.getBoundingClientRect().top-c.value.getBoundingClientRect().top+c.value.scrollTop}px`:h.value="-2rem"}else h.value="-2rem"};H(()=>{A(()=>i.hash,m=>{if(c.value){const w=document.querySelector(`#toc a.vp-toc-link[href$="${m}"]`);if(!w)return;const{top:y,height:D}=c.value.getBoundingClientRect(),{top:C,height:G}=w.getBoundingClientRect();C<y?p(c.value.scrollTop+C-y):C+G>y+D&&p(c.value.scrollTop+C+G-y-D)}},{flush:"post"}),A(()=>i.fullPath,v,{flush:"post"})});const d=({title:m,level:w,slug:y})=>e(R,{to:`#${y}`,class:["vp-toc-link",`level${w}`],onClick:()=>{u()}},()=>m),f=m=>m.length?e("ul",{class:"vp-toc-list"},m.map(w=>{const y=f(w.children);return[e("li",{class:["vp-toc-item",{active:i.hash===`#${w.slug}`}]},d(w)),y?e("li",y):null]})):null;return()=>o.value||t.items?.length?e(he,()=>{const m=t.items?.length?f(t.items):f(a.value),w=l.toc?.(a.value)??(m?[e("div",{class:"vp-toc-header",onClick:()=>{u()}},[g.value.toc,e(Z),e("div",{class:["arrow",s.value?"down":"end"]})]),e("div",{class:["vp-toc-wrapper",s.value?"open":""],ref:c},[m,e("div",{class:"vp-toc-marker",style:{top:h.value}})])]:null),y=l.tocBefore?.(),D=l.tocAfter?.();return F(w)&&F(y)&&F(D)?null:e("div",{class:"vp-toc-placeholder"},[e("aside",{id:"toc","vp-toc":""},[y,w,D])])}):null}});const le=()=>e(De,{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"})]);le.displayName="EditIcon";const Be={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"},Me=({docsRepo:t,docsBranch:l,docsDir:r,filePathRelative:n,editLinkPattern:o})=>{if(!n)return null;const a=Pe(t);let i;return o?i=o:a!==null&&(i=Be[a]),i?i.replace(/:repo/u,re(t)?t:`https://github.com/${t}`).replace(/:branch/u,l).replace(/:path/u,oe(`${q(r)}/${n}`)):null},Re=()=>{const{frontmatter:t,page:l,themeLocale:r}=x(),n=T();return k(()=>{const{repo:o,docsRepo:a=o,docsBranch:i="main",docsDir:g="",editLink:s,editLinkPattern:u=""}=r.value;if(!(t.value.editLink??s??!0)||!a)return null;const c=Me({docsRepo:a,docsBranch:i,docsDir:g,editLinkPattern:u,filePathRelative:l.value.filePathRelative});return c?{text:n.value.editLink,link:c}:null})};var Ae=L({name:"PageMeta",setup(){const t=pe(),l=$e(),r=Re(),n=xe(t.lastUpdated),o=T();return()=>e("footer",{class:"vp-page-meta"},[r.value?e("div",{class:"vp-meta-item edit-link"},e(M,{class:"vp-meta-label",config:r.value},{before:()=>e(le)})):null,e("div",{class:"vp-meta-item git-info"},[(!t.changelog.value||!S("GitChangelog"))&&n.value?e("div",{class:"update-time"},[e("span",{class:"vp-meta-label"},`${n.value.locale}: `),e("time",{class:"vp-meta-info",datetime:n.value.iso,"data-allow-mismatch":""},n.value.text)]):null,t.contributors.value&&t.contributors.value!=="content"&&l.value.length?e("div",{class:"contributors"},[e("span",{class:"vp-meta-label"},`${o.value.contributors}: `),l.value.map(({email:a,name:i},g,s)=>[e("span",{class:"vp-meta-info",title:`email: ${a}`},i),g!==s.length-1?",":""])]):null])])}}),ae=L({name:"PageContent",slots:Object,setup(t,{slots:l}){const{frontmatter:r}=x(),{isDarkMode:n}=me();return()=>e("main",{id:"main-content",class:"vp-page"},e(S("LocalEncrypt")?$("LocalEncrypt"):ie,()=>[l.pageTop?.(),r.value.cover?e("div",{class:"page-cover"},e("img",{src:b(r.value.cover),alt:"","no-view":""})):null,e(Te),e(ue),e(He,null,l),l.content?.()??e(j,null,l),e(Ae),e(Ce),S("CommentService")?e($("CommentService"),{darkmode:n.value}):null,l.pageBottom?.()]))}});const N=(t,{slots:l})=>{const{bgImage:r,bgImageDark:n,bgImageStyle:o,color:a,description:i,image:g,imageDark:s,header:u,features:c=[]}=t;return e("div",{class:"vp-feature-wrapper"},[r?e("div",{class:["vp-feature-bg",{light:n}],style:[{"background-image":`url(${r})`},o]}):null,n?e("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${n})`},o]}):null,e("div",{class:"vp-feature",style:a?{color:a}:{}},[l.image?.(t)??[g?e("img",{class:["vp-feature-image",{light:s}],src:b(g),alt:""}):null,s?e("img",{class:"vp-feature-image dark",src:b(s),alt:""}):null],l.info?.(t)??[u?e("h2",{class:"vp-feature-header"},u):null,i?e("div",{class:"vp-feature-description",innerHTML:i}):null],c.length?e("div",{class:"vp-features"},c.map(({icon:h,title:p,details:v,link:d})=>{const f=[e("h3",{class:"vp-feature-title"},[e($("VPIcon"),{icon:h}),e("span",{innerHTML:p})]),e("div",{class:"vp-feature-details",innerHTML:v})];return d?U(d)?e("a",{class:"vp-feature-item link",href:d,"aria-label":p,target:"_blank"},f):e(R,{class:"vp-feature-item link",to:d,"aria-label":p},()=>f):e("div",{class:"vp-feature-item"},f)})):null])])};N.displayName="FeaturePanel";var Fe=L({name:"HeroInfo",slots:Object,setup(t,{slots:l}){const{frontmatter:r,siteLocale:n}=x(),o=k(()=>{const{heroText:s,tagline:u,heroStyle:c,heroFullScreen:h=!1}=r.value;return{text:s??(n.value.title||"Hello"),tagline:u??n.value.description,style:c??null,isFullScreen:h}}),a=k(()=>{const{heroImage:s,heroImageDark:u,heroAlt:c,heroImageStyle:h}=r.value;return{image:s?b(s):null,imageDark:u?b(u):null,style:h??null,alt:c??""}}),i=k(()=>{const{bgImage:s,bgImageDark:u,bgImageStyle:c}=r.value;return{image:P(s)?b(s):null,imageDark:P(u)?b(u):null,style:c??null}}),g=k(()=>r.value.actions??[]);return()=>e("header",{class:["vp-hero-info-wrapper",{"hero-fullscreen":o.value.isFullScreen}],style:o.value.style},[l.heroBg?.(i.value)??[i.value.image?e("div",{class:["vp-hero-mask",{light:i.value.imageDark}],style:[{"background-image":`url(${i.value.image})`},i.value.style]}):null,i.value.imageDark?e("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${i.value.imageDark})`},i.value.style]}):null],e("div",{class:"vp-hero-info"},[l.heroLogo?.(a.value)??e(I,{appear:!0,group:!0},()=>{const{image:s,imageDark:u,style:c,alt:h}=a.value;return[s?e("img",{key:"light",class:["vp-hero-image",{light:u}],style:c,src:s,alt:h}):null,u?e("img",{key:"dark",class:"vp-hero-image dark",style:c,src:u,alt:h}):null]}),l.heroInfo?.(o.value)??e("div",{class:"vp-hero-infos"},[o.value.text?e(I,{appear:!0,delay:.04},()=>e("h1",{id:"main-title",class:"vp-hero-title"},o.value.text)):null,o.value.tagline?e(I,{appear:!0,delay:.08},()=>e("div",{id:"main-description",innerHTML:o.value.tagline})):null,g.value.length?e(I,{appear:!0,delay:.12},()=>e("p",{class:"vp-hero-actions"},g.value.map(s=>e(M,{class:["vp-hero-action",s.type??"default","no-external-link-icon"],config:s})))):null])]),o.value.isFullScreen?e(de,{onClick:()=>window.scrollTo({top:window.innerHeight-(document.querySelector("[vp-navbar]")?.clientHeight??0),behavior:"smooth"})}):null])}});const te=(t,{slots:l})=>{const{bgImage:r,bgImageDark:n,bgImageStyle:o,color:a,description:i,image:g,imageDark:s,header:u,highlights:c=[],type:h="un-order"}=t;return e("div",{class:"vp-highlight-wrapper",style:a?{color:a}:{}},[r?e("div",{class:["vp-highlight-bg",{light:n}],style:[{"background-image":`url(${r})`},o]}):null,n?e("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${n})`},o]}):null,e("div",{class:"vp-highlight"},[l.image?.(t)??[g?e("img",{class:["vp-highlight-image",{light:s}],src:b(g),alt:""}):null,s?e("img",{class:"vp-highlight-image dark",src:b(s),alt:""}):null],l.info?.(t)??[e("div",{class:"vp-highlight-info-wrapper"},e("div",{class:"vp-highlight-info"},[u?e("h2",{class:"vp-highlight-header",innerHTML:u}):null,i?e("div",{class:"vp-highlight-description",innerHTML:i}):null,l.highlights?.(c)??e(h==="order"?"ol":h==="no-order"?"dl":"ul",{class:"vp-highlights"},c.map(({icon:p,title:v,details:d,link:f})=>{const m=[e(h==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[p?e($("VPIcon"),{class:"vp-highlight-icon",icon:p}):null,e("span",{innerHTML:v})]),d?e(h==="no-order"?"dd":"div",{class:"vp-highlight-details",innerHTML:d}):null];return e(h==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:f}]},f?U(f)?e("a",{class:"vp-highlight-item link",href:f,"aria-label":v,target:"_blank"},m):e(R,{class:"vp-highlight-item link",to:f,"aria-label":v},()=>m):e("div",{class:"vp-highlight-item"},m))}))]))]])])};te.displayName="HighlightSection";var je=L({name:"HomePage",slots:Object,setup(t,{slots:l}){const r=O();return()=>{const{features:n,highlights:o}=r.value;return e("main",{id:"main-content",class:"vp-page vp-project-home","aria-labelledby":r.value.heroText===""?"":"main-title"},[l.heroBefore?.(),e(Fe,null,l),l.heroAfter?.(),_(o)?o.map(a=>"features"in a?e(N,a):e(te,a)):_(n)?e(I,{appear:!0,delay:.24},()=>e(N,{features:n})):null,l.content?.()??e(I,{appear:!0,delay:.32},()=>e(j,null,l))])}}}),Ee=L({name:"PortfolioHero",slots:Object,setup(t,{slots:l}){const r=we(),n=O(),o=B(0),a=k(()=>n.value.titles?.[o.value]??""),i=B(""),g=k(()=>{const{name:p,avatar:v,avatarDark:d,avatarAlt:f,avatarStyle:m}=n.value;return{name:p??r.value.name,avatar:v?b(v):null,avatarDark:d?b(d):null,alt:(f||p)??"",style:m??null}}),s=k(()=>{const{bgImage:p,bgImageDark:v,bgImageStyle:d}=n.value;return{image:P(p)?b(p):null,imageDark:P(v)?b(v):null,style:d??null}}),u=k(()=>{const{welcome:p,name:v,titles:d=[],medias:f}=n.value;return{name:v??r.value.name,welcome:p??"👋 Hi There, I'm",title:i.value,titles:d,medias:f??null}}),c=()=>{i.value="";let p=0,v=!1;const d=async()=>{if(!v)if(i.value+=a.value[p],p+=1,await se(),p<a.value.length)setTimeout(()=>{d()},150);else{const f=u.value.titles.length;setTimeout(()=>{o.value=f<=1||o.value===u.value.titles.length-1?0:o.value+1},1e3)}};return d(),()=>{v=!0}};let h;return H(()=>{A(a,()=>{h?.(),h=c()})}),()=>e("section",{id:"portfolio",class:["vp-portfolio",{bg:s.value.image}]},[l.portfolioBg?.(s.value)??[s.value.image?e("div",{class:["vp-portfolio-mask",{light:s.value.imageDark}],style:[{background:`url(${s.value.image}) center/cover no-repeat`},s.value.style]}):null,s.value.imageDark?e("div",{class:"vp-portfolio-mask dark",style:[{background:`url(${s.value.imageDark}) center/cover no-repeat`},s.value.style]}):null],l.portfolioAvatar?.(g.value)??e("div",{class:"vp-portfolio-avatar"},[e(I,{delay:.04},()=>{const{avatar:p,avatarDark:v,name:d,alt:f,style:m}=g.value;return[p?e("img",{key:"light",class:{light:v},src:p,title:d,alt:f,style:m}):null,v?e("img",{key:"dark",class:"dark",src:v,title:d,alt:f,style:m}):null]})]),e("div",{class:"vp-portfolio-container"},l.portfolioInfo?.(u.value)??e("div",{class:"vp-portfolio-info"},[e(I,{appear:!0,delay:.08},()=>e("h6",{class:"vp-portfolio-welcome"},u.value.welcome)),e(I,{appear:!0,delay:.12},()=>e("h1",{class:"vp-portfolio-name",id:"main-title"},u.value.name)),e(I,{appear:!0,delay:.16},()=>e("h2",{class:"vp-portfolio-title"},i.value)),e(I,{appear:!0,delay:.2},()=>u.value.medias?e("div",{class:"vp-portfolio-medias"},u.value.medias.map(({name:p,url:v,icon:d})=>e("a",{class:"vp-portfolio-media",href:v,rel:"noopener noreferrer",target:"_blank",title:p},e($("VPIcon"),{icon:d,sizing:"both"})))):S("SocialMedias")?e($("SocialMedias")):null)]))])}}),Oe=L({name:"PortfolioHome",slots:Object,setup(t,{slots:l}){const r=O();return()=>{const n=r.value.content??"portfolio";return e("main",{id:"main-content",class:"vp-page vp-portfolio-home","aria-labelledby":"main-title"},[e(Ee,null,l),n==="none"?null:l.content?.()??e("div",e(I,{appear:!0,delay:.24},()=>e(j,{class:{"vp-portfolio-content":n==="portfolio"}},l)))])}}}),Ve=L({name:"Layout",slots:Object,setup(t,{slots:l}){const{frontmatter:r,page:n}=x();return()=>[e(J),e(Q,null,{...l,default:l.default??(()=>r.value.portfolio?e(Oe,null,l):r.value.home?e(je,null,l):e(ce,()=>e(ae,{key:n.value.path},l))),navScreenBottom:l.navScreenBottom??(S("BloggerInfo")?()=>e($("BloggerInfo")):null)})]}}),Ne=L({name:"NotFound",slots:Object,setup(t,{slots:l}){const{routeLocale:r,theme:n,themeLocale:o}=x(),a=fe(),i=B(!1),g=k(()=>n.value.locales[i.value?r.value:"/"].routerLocales),s=()=>{if(!i.value)return g.value.notFoundMsg[0];const u=g.value.notFoundMsg;return u[Math.floor(Math.random()*u.length)]};return H(()=>{i.value=!0}),()=>[e(J),e(Q,{noSidebar:!0},{...l,default:()=>e("main",{id:"main-content",class:"vp-page not-found"},l.default?.()??[e("div",{class:"not-found-hint"},[e("p",{class:"error-code"},"404"),e("h1",{class:"error-title"},g.value.notFoundTitle),e("p",{class:"error-hint"},s())]),e("div",{class:"actions"},[e("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},g.value.back),e("button",{type:"button",class:"action-button",onClick:()=>{a.push(o.value.home??r.value)}},g.value.home)])])})]}});export{Ve as L,Ne as N,ae as f,Y as u,Z as x}; //# sourceMappingURL=NotFound-owX295m-.js.map