UNPKG

vuepress-theme-hope

Version:

A light vuepress theme with tons of features

5 lines (3 loc) 77.6 kB
import{Logger as ft,removeEndingSlash as W,isString as b,isArray as f,isPlainObject as d,fromEntries as S,entries as v,keys as w,isLinkHttp as Le,startsWith as C,getFullLocaleConfig as U,values as yt,addViteConfig as bt,getBundlerName as vt,chainWebpack as wt,addViteOptimizeDepsInclude as Lt,addViteOptimizeDepsExclude as $t,addViteSsrNoExternal as Tt,dateSorter as Y,getDate as Pt,deepAssign as xt,endsWith as St,getModulePath as P,isFunction as $e,removeLeadingSlash as Et,ensureEndingSlash as zt}from"@vuepress/helper";import{watch as jt}from"chokidar";import{fs as $,logger as J,colors as r,path as L,getDirname as Ct,sanitizeFileName as q,TemplateRendererOutlet as x}from"vuepress/utils";import{createRequire as Mt}from"node:module";import{createConverter as N}from"vuepress-shared";import{hashSync as Te}from"bcrypt-ts/node";import{backToTopPlugin as It}from"@vuepress/plugin-back-to-top";import{copyCodePlugin as At}from"@vuepress/plugin-copy-code";import{iconPlugin as Nt}from"@vuepress/plugin-icon";import{linksCheckPlugin as Dt}from"@vuepress/plugin-links-check";import{markdownChartPlugin as Ft}from"@vuepress/plugin-markdown-chart";import{markdownExtPlugin as Ot}from"@vuepress/plugin-markdown-ext";import{markdownHintPlugin as Bt}from"@vuepress/plugin-markdown-hint";import{markdownIncludePlugin as Rt}from"@vuepress/plugin-markdown-include";import{markdownMathPlugin as Pe}from"@vuepress/plugin-markdown-math";import{markdownPreviewPlugin as Ht}from"@vuepress/plugin-markdown-preview";import{markdownTabPlugin as Vt}from"@vuepress/plugin-markdown-tab";import{nprogressPlugin as Kt}from"@vuepress/plugin-nprogress";import{photoSwipePlugin as _t}from"@vuepress/plugin-photo-swipe";import{themeDataPlugin as Gt}from"@vuepress/plugin-theme-data";import{activeHeaderLinksPlugin as Wt}from"@vuepress/plugin-active-header-links";import{catalogPlugin as Ut}from"@vuepress/plugin-catalog";import{commentPlugin as Yt}from"@vuepress/plugin-comment";import{componentsPlugin as Jt}from"vuepress-plugin-components";import{copyrightPlugin as qt}from"@vuepress/plugin-copyright";import{isArray as xe,isString as D,isPlainObject as Zt}from"@vuepress/helper/shared";import{markdownImagePlugin as Qt}from"@vuepress/plugin-markdown-image";import{markdownStylizePlugin as Xt}from"@vuepress/plugin-markdown-stylize";import{mdEnhancePlugin as ea}from"vuepress-plugin-md-enhance";import{noticePlugin as Se}from"@vuepress/plugin-notice";import{redirectPlugin as ta}from"@vuepress/plugin-redirect";import{rtlPlugin as aa}from"@vuepress/plugin-rtl";import{seoPlugin as na}from"@vuepress/plugin-seo";import{sitemapPlugin as oa}from"@vuepress/plugin-sitemap";import{blogPlugin as ra}from"@vuepress/plugin-blog";import{useReadingTimePlugin as ia}from"@vuepress/plugin-reading-time";import{useSassPalettePlugin as sa}from"@vuepress/plugin-sass-palette";import{gitPlugin as la}from"@vuepress/plugin-git";import{shikiPlugin as ca}from"@vuepress/plugin-shiki";const Ee=e=>{$.existsSync(e.dir.source(".vuepress/styles/index.styl"))&&!$.existsSync(e.dir.source(".vuepress/styles/index.scss"))&&J.error(`V2 style switched to scss instead of stylus, so you should remove ${r.magenta("index.styl")} and create ${r.magenta("index.scss")} under ${r.cyan(".vuepress/styles.")}`),$.existsSync(e.dir.source(".vuepress/styles/palette.styl"))&&!$.existsSync(e.dir.source(".vuepress/styles/palette.scss"))&&!$.existsSync(e.dir.source(".vuepress/styles/config.scss"))&&J.error(`V2 style switched to scss instead of stylus, so you should remove ${r.magenta("palette.styl")} and create ${r.magenta("config.scss")} / ${r.magenta("palette.scss")} under ${r.cyan(".vuepress/styles.")}.`)};var pa="2.0.0-rc.98",da={version:pa};const Z=Ct(import.meta.url),c=new ft("vuepress-theme-hope"),M=W(L.resolve(Z,"../bundle")),I=W(L.resolve(Z,"../client")),F=W(L.resolve(Z,"../../templates")),Q=da.version,ga=[["authors","author"],["time","date"],["visitor","pageview"],["copyrightText","copyright"],["anchorDisplay","toc"],["updateTime","lastUpdated"],["contributor","contributors"],["editLinks","editLink"]],ua=[["darkHeroImage","heroImageDark"],["action","actions"]],ma=[["metaTitle","Please use custom resolver to set metaTitle."],["mediaLink","Social media links are no longer displayed in footer."],["password","Simple password protection is no longer supported."],["search","Search plugin no longer support this option."]],ze=(e,t)=>{const{deprecatedLogger:a,droppedLogger:n}=N("frontmatter");return ga.forEach(([o,i])=>{a({options:e,old:o,new:i,scope:t?`${t} frontmatter`:""})}),ma.forEach(([o,i])=>{n({options:e,old:o,scope:`${t?`${t} `:""}${i}`})}),"meta"in e&&(c.warn(`${r.magenta("meta")} in frontmatter is deprecated in V2, please use ${r.magenta("head")} instead.${t?`Found in ${t}`:""}`),e.head=[...e.head??[],...e.meta.map(o=>["meta",o])],delete e.meta),"canonicalUrl"in e&&b(e.canonicalUrl)&&(c.warn(`${r.magenta("canonicalUrl")} in frontmatter is deprecated, please use ${r.magenta("head")} instead.${t?`Found in ${t}`:""}`),e.head=[...e.head??[],["link",{rel:"canonical",href:e.canonicalUrl}]],delete e.canonicalUrl),e.home===!0&&(e.layout==="BlogHome"&&(c.warn(`${r.magenta("layout: BlogHome")} in frontmatter is deprecated, please use ${r.magenta("layout: Blog")} instead.${t?`Found in ${t}`:""}`),e.layout="Blog"),"layout"in e||ua.forEach(([o,i])=>{a({options:e,old:o,new:i,scope:t})})),e.layout==="SlidePage"&&(c.warn(`${r.magenta("layout: SlidePage")} in frontmatter is deprecated, please use ${r.magenta("layout: Slides")} instead.${t?`Found in ${t}`:""}`),e.layout="Slides"),typeof e.sidebarDepth=="number"&&(c.warn(`${r.magenta("sidebarDepth")} in frontmatter is deprecated, please use ${r.magenta("toc.levels")} instead.${t?`Found in ${t}`:""}`),e.toc!==!1&&(e.toc={levels:[2,e.sidebarDepth+2]})),typeof e.headerDepth=="number"&&(c.warn(`${r.magenta("headerDepth")} in frontmatter is deprecated, please use ${r.magenta("toc.levels")} instead.${t?`Found in ${t}`:""}`),e.toc!==!1&&(e.toc={levels:[2,e.headerDepth+2]})),e},{deprecatedLogger:ha}=N("theme navbar"),je=(e,t)=>e.map(a=>b(a)?a:d(a)?(ha({options:a,old:"items",new:"children",scope:t}),"children"in a&&f(a.children)&&je(a.children,t),a):null).filter(a=>a!==null),X=(e,t="")=>e===!1?!1:f(e)?je(e,t):(c.error(`${r.magenta("navbar")} config should be an array`),!1),ee=e=>{d(e.navbarLayout)&&("left"in e.navbarLayout&&(c.warn(`To have better meaning under RTL layout, ${r.magenta("navbarLayout.left")}" option is deprecated, please use ${r.magenta("navbarLayout.start")} instead`),e.navbarLayout.start=e.navbarLayout.left),"right"in e.navbarLayout&&(c.warn(`To have better meaning under RTL layout, ${r.magenta("navbarLayout.right")}" option is deprecated, please use ${r.magenta("navbarLayout.end")} instead`),e.navbarLayout.end=e.navbarLayout.right))},{deprecatedLogger:ka,droppedLogger:fa}=N("theme sidebar"),te=(e,t)=>e.map(a=>b(a)?a:d(a)?([["title","text"],["path","link"],["collapsable","collapsible"]].forEach(([n,o])=>{ka({options:a,old:n,new:o,scope:t})}),fa({options:a,old:"sidebarDepth",scope:t}),"children"in a&&f(a.children)&&te(a.children,t),a):null).filter(a=>a!==null),ae=(e,t="")=>e===!1||e==="structure"?e:f(e)?te(e,t):d(e)?S(v(e).map(([a,n])=>f(n)?[a,te(n,`${t} > ${a}`)]:n==="structure"||n===!1?[a,n]:(c.error('"sidebar" value should be an array, "structure" or false when setting as an object'),[a,!1]))):(c.error(`${r.magenta("sidebar")} config should be: an array, an object, "structure" or false`),!1),Ce=[["hideSiteNameonMobile","hideSiteNameOnMobile"],["fullScreen","fullscreen"],["wideBreakPoint","pcBreakPoint"]],Me=(e,t,a)=>{if(d(e.blog)){const n=e.blog;"links"in n&&(c.warn(`${r.magenta("blog.links")} options is deprecated, please use ${r.magenta("blog.medias")} instead${a?` , found in locale path ${a}`:""}.`),n.medias=n.links,delete n.links),"perPage"in n&&(c.warn(`${r.magenta("blog.perPage")} options is deprecated, please use ${r.magenta("blog.articlePerPage")} instead${a?` , found in locale path ${a}`:""}.`),n.articlePerPage=n.perPage,delete n.perPage),"autoExcerpt"in n&&(c.error(`${r.magenta("blog.autoExcerpt")} options is no longer supported, please use ${r.magenta("plugins.blog.excerptLength")} instead${a?` , found in locale path ${a}`:""}.`),delete n.autoExcerpt),t.blog||c.warn(`Blog feature is tree-shakable in v2, you should set ${r.magenta("plugins.blog: true")} in theme options to enable it.`)}},Ie=(e,t)=>{if(d(e.footer)){const{footer:a}=e;"copyright"in a&&(c.warn(`${r.magenta("footer.copyright")} options is deprecated, please use ${r.magenta("copyright")} instead.`),e.copyright=a.copyright),"display"in a&&(c.warn(`${r.magenta("footer.display")} options is deprecated, please use ${r.magenta("displayFooter")} instead.`),e.displayFooter=a.display),"content"in a?(c.warn(`${r.magenta("footer.content")} options is deprecated, please use ${r.magenta("footer")} instead.`),e.footer=a.content):delete e.footer}},ya=e=>{const{deprecatedLogger:t}=N("theme plugin options"),a=e.markdown??={},n=e.plugins;if(f(n.components)&&(c.warn(`${r.magenta("plugins.components")} no longer accepts array, please set it to ${r.magenta("plugin.components.components")} instead.`),n.components={components:n.components}),n.linksCheck&&t({options:e,old:"plugins.linksCheck",new:"markdown.linksCheck"}),d(n.mdEnhance)){const{mdEnhance:o}=n;"alert"in o&&t({options:e,old:"plugins.mdEnhance.alert",new:"markdown.alert"}),"hint"in o&&t({options:e,old:"plugins.mdEnhance.hint",new:"markdown.hint"}),"figure"in o&&t({options:e,old:"plugins.mdEnhance.figure",new:"markdown.figure"}),"imgLazyload"in o&&t({options:e,old:"plugins.mdEnhance.imgLazyload",new:"markdown.imgLazyload"}),"imgSize"in o&&t({options:e,old:"plugins.mdEnhance.imgSize",new:"markdown.imgSize"}),"imgSize"in o&&t({options:e,old:"plugins.mdEnhance.obsidianImgSize",new:"markdown.obsidianImgSize"}),"imgMark"in o&&t({options:e,old:"plugins.mdEnhance.imgMark",new:"markdown.imgMark"}),"katex"in o&&(c.warn(`${r.magenta("plugins.mdEnhance.katex")} is deprecated, you should use ${r.magenta("markdown.math")} instead.`),n.markdownMath={type:"katex",...d(o.katex)?o.katex:{}}),"mathjax"in o&&(c.warn(`${r.magenta("plugins.mdEnhance.mathjax")} is deprecated, you should use ${r.magenta("markdown.math")} instead.`),n.markdownMath={type:"mathjax",...d(o.mathjax)?o.mathjax:{}}),"codetabs"in o&&t({options:e,old:"plugins.mdEnhance.codetabs",new:"markdown.codeTabs"}),"tabs"in o&&t({options:e,old:"plugins.mdEnhance.tabs",new:"markdown.tabs"}),"gfm"in o&&t({options:e,old:"plugins.mdEnhance.gfm",new:"markdown.gfm"}),"footnote"in o&&t({options:e,old:"plugins.mdEnhance.footnote",new:"markdown.footnote"}),"tasklist"in o&&t({options:e,old:"plugins.mdEnhance.tasklist",new:"markdown.tasklist"}),"breaks"in o&&t({options:e,old:"plugins.mdEnhance.breaks",new:"markdown.breaks"}),"linkify"in o&&t({options:e,old:"plugins.mdEnhance.linkify",new:"markdown.linkify"}),"component"in o&&t({options:e,old:"plugins.mdEnhance.component",new:"markdown.component"}),"vPre"in o&&t({options:e,old:"plugins.mdEnhance.vPre",new:"markdown.vPre"}),"include"in o&&t({options:e,old:"plugins.mdEnhance.include",new:"markdown.include"}),"align"in o&&t({options:e,old:"plugins.mdEnhance.align",new:"markdown.align"}),"attrs"in o&&t({options:e,old:"plugins.mdEnhance.attrs",new:"markdown.attrs"}),"mark"in o&&t({options:e,old:"plugins.mdEnhance.mark",new:"markdown.mark"}),"spoiler"in o&&t({options:e,old:"plugins.mdEnhance.spoiler",new:"markdown.spoiler"}),"sup"in o&&t({options:e,old:"plugins.mdEnhance.sup",new:"markdown.sup"}),"sub"in o&&t({options:e,old:"plugins.mdEnhance.sub",new:"markdown.sub"}),"stylize"in o&&t({options:e,old:"plugins.mdEnhance.stylize",new:"markdown.stylize"}),"revealJs"in o&&(c.warn(`${r.magenta("plugins.mdEnhance.revealJs")} is deprecated, you should install ${r.cyan("@vuepress/plugin-revealjs")} and use ${r.magenta("markdown.revealjs")} instead.`),a.revealjs=!0),"chart"in o&&t({options:e,old:"plugins.mdEnhance.chart",new:"markdown.chartjs"}),"echarts"in o&&t({options:e,old:"plugins.mdEnhance.echarts",new:"markdown.echarts"}),"flowchart"in o&&t({options:e,old:"plugins.mdEnhance.flowchart",new:"markdown.flowchart"}),"mermaid"in o&&t({options:e,old:"plugins.mdEnhance.mermaid",new:"markdown.mermaid"}),"markmap"in o&&t({options:e,old:"plugins.mdEnhance.markmap",new:"markdown.markmap"}),"plantuml"in o&&t({options:e,old:"plugins.mdEnhance.plantuml",new:"markdown.plantuml"}),"demo"in o&&t({options:e,old:"plugins.mdEnhance.demo",new:"markdown.demo"}),"vuePlayground"in o&&t({options:e,old:"plugins.mdEnhance.vuePlayground",new:"markdown.vuePlayground"}),"kotlinPlayground"in o&&t({options:e,old:"plugins.mdEnhance.kotlinPlayground",new:"markdown.kotlinPlayground"}),"sandpack"in o&&t({options:e,old:"plugins.mdEnhance.sandpack",new:"markdown.sandpack"}),"playground"in o&&t({options:e,old:"plugins.mdEnhance.playground",new:"markdown.playground"}),delete n.mdEnhance}if("markdownHint"in n){if(c.warn(`${r.magenta("plugins.markdownHint")} is deprecated, you should use ${r.magenta("markdown.alert")} and ${r.magenta("markdown.hint")} instead.`),d(n.markdownHint)){const o=n.markdownHint;"alert"in o&&t({options:e,old:"plugins.markdownHint.alert",new:"markdown.alert"}),"hint"in o&&t({options:e,old:"plugins.markdownHint.hint",new:"markdown.hint"})}else n.markdownHint===!1&&(a.hint=!1);delete n.markdownHint}n.markdownImg&&(c.warn(`${r.magenta("plugins.markdownImg")} is deprecated, you should use ${r.magenta("markdown.figure")} ${r.magenta("markdown.imgLazyload")} ${r.magenta("markdown.imgMark")} ${r.magenta("markdown.imgSize")} and ${r.magenta("markdown.obsidianImgSize")} instead.`),d(n.markdownImg)?(t({options:e,old:"plugins.markdownImg.figure",new:"markdown.figure"}),t({options:e,old:"plugins.markdownImg.lazyload",new:"markdown.imgLazyload"}),t({options:e,old:"plugins.markdownImg.mark",new:"markdown.imgMark"}),t({options:e,old:"plugins.markdownImg.size",new:"markdown.imgSize"}),t({options:e,old:"plugins.markdownImg.obsidian",new:"markdown.obsidianImgSize"})):n.markdownImg===!0&&(a.figure=!0,a.imgLazyload=!0),delete n.markdownImg),n.markdownMath&&(c.warn(`${r.magenta("plugins.markdownMath")} is deprecated, you should use ${r.magenta("markdown.math")} instead.`),t({options:e,old:"plugins.markdownMath",new:"markdown.math"}),delete n.markdownMath),n.markdownTab&&(c.warn(`${r.magenta("plugins.markdownTab")} is deprecated, you should use ${r.magenta("markdown.tabs")} and ${r.magenta("markdown.codeTabs")} instead.`),d(n.markdownTab)?(t({options:e,old:"plugins.markdownTab.tabs",new:"markdown.tabs"}),t({options:e,old:"plugins.markdownTab.code",new:"markdown.codeTabs"})):n.markdownTab===!0&&(a.codeTabs=!0,a.tabs=!0),delete n.markdownTab),n.searchPro&&(c.warn(`${r.magenta("plugins.searchPro")} is deprecated, you should replace ${r.cyan("vuepress-plugin-search-pro")} with ${r.cyan("@vuepress/plugin-slimsearch")} in ${r.green("package.json")} and use ${r.magenta("plugins.slimsearch")} instead.`),n.slimsearch=n.searchPro,delete n.searchPro),n.prismjs&&(c.warn(`${r.magenta("plugins.prismjs")} is deprecated, you should use ${r.magenta("markdown.highlighter")} with ${r.cyan('{ type: "prismjs", ...other options }')} instead.`),a.highlighter={type:"prismjs",...d(n.prismjs)?n.prismjs:{}},delete n.prismjs),n.shiki&&(c.warn(`${r.magenta("plugins.shiki")} is deprecated, you should use ${r.magenta("markdown.highlighter")} with ${r.cyan('{ type: "shiki", ...other options }')} instead.`),a.highlighter={type:"shiki",...d(n.shiki)?n.shiki:{}},delete n.shiki),n.revealjs&&t({options:e,old:"plugins.revealjs",new:"markdown.revealjs"})},Ae=e=>{const{deprecatedLogger:t,droppedLogger:a}=N("theme options"),n=e.plugins??={};if(ya(e),Ce.forEach(([o,i])=>{t({options:e,old:o,new:i})}),"navbar"in e&&(e.navbar=X(e.navbar)),"sidebar"in e&&(e.sidebar=ae(e.sidebar)),ee(e),Me(e,n),Ie(e),t({options:e,old:"iconAssets",new:"plugins.icon.assets"}),t({options:e,old:"iconPrefix",new:"plugins.icon.prefix"}),e.addThis&&a({options:e,old:"addThis"}),(d(e.copyright)||e.copyright===!0)&&c.warn(`${r.magenta("copyright")} is deprecated in V2, please use ${r.magenta("plugins.copyright")} instead.`),d(e.encrypt)){const o=e.encrypt;"global"in o&&typeof o.global!="boolean"&&(c.warn(`${r.magenta("encrypt.global")} is deprecated in V2, please use ${r.magenta("encrypt.admin")} instead.`),o.admin=o.global),"status"in o&&(c.warn(`${r.magenta("encrypt.status")} is deprecated, please use ${r.magenta("encrypt.global")} instead.`),o.global=o.status==="global",delete o.status)}return"locales"in e&&d(e.locales)&&v(e.locales).forEach(([o,i])=>{Ce.forEach(([s,l])=>{t({options:i,old:s,new:l,scope:"themeConfig.locales"})}),"navbar"in i&&(i.navbar=X(i.navbar,o)),"sidebar"in i&&(i.sidebar=ae(i.sidebar,o)),typeof i.headingDepth=="number"&&(c.warn(`${r.magenta("headingDepth")} is deprecated, please use ${r.magenta("toc.levels")} instead.`),i.toc!==!1&&(i.toc={levels:[2,i.headingDepth+2]})),typeof i.headerDepth=="number"&&(c.warn(`${r.magenta("headerDepth")} is deprecated, please use ${r.magenta("toc.levels")} instead.`),i.toc!==!1&&(i.toc={levels:[2,i.headerDepth+2]})),ee(i),Me(i,n,o),Ie(i)}),e},ba=e=>e,va=e=>e,wa=e=>e,La=e=>e,$a=e=>e,Ta=e=>e,Pa=e=>e,xa=e=>e,Sa=e=>e,Ea=e=>e,za=e=>e,ja=e=>e,Ca=e=>e,Ma=e=>e,Ia=e=>e,Aa=e=>e,Na=e=>e,Da=e=>e,Fa=e=>e,Oa=e=>e,Ba=e=>e,Ra=e=>e,Ha=e=>e,Va=e=>e,Ka=e=>e,_a=e=>{const t=e.frontmatter,{filePathRelative:a}=e;["category","tag"].forEach(n=>{n in t&&!(b(t[n])||f(t[n])&&t[n].every(b))&&(c.warn(`${r.magenta(n)} property in Page FrontMatter should be ${r.cyan("string")} or ${r.cyan(" string[]")}${a?`, found in ${a}`:""}.`),delete t[n])}),"date"in t&&!(t.date instanceof Date)&&(c.warn(`${r.magenta("date")} in frontMatter should be ${r.cyan("a valid Date")}${a?`, found in ${a}`:""}.`),delete t.date),"sidebar"in t&&typeof t.sidebar!="boolean"&&(c.warn(`${r.magenta("sidebar")} in frontMatter should be ${r.cyan("boolean")}${a?`, found in ${a}`:""}.`),delete t.sidebar),["title","shortTitle","containerClass"].forEach(n=>{n in t&&!b(t[n])&&(c.warn(`${r.magenta(n)} in frontMatter should be ${r.cyan("string")}${a?`, found in ${a}`:""}.`),delete t[n])}),["home","navbar","index","lastUpdated","editLink","breadcrumb","breadcrumbIcon","breadcrumbExclude","pageview","article"].forEach(n=>{n in t&&typeof t[n]!="boolean"&&(c.warn(`${r.magenta(n)} in frontMatter should be ${r.cyan("boolean")}${a?`, found in ${a}`:""}.`),delete t[n])}),Object.keys(t).forEach(n=>{n.includes(".")&&c.warn(`${r.magenta(n)} in frontMatter should not contain ${r.cyan(".")}${a?`, found in ${a}`:""}.`)})},Ne=["anchor","assets","component","emoji","frontmatter","headers","title","importCode","links","sfc","slugify","toc","vPre"],De=["linksCheck","gfm","breaks","linkify","footnote","tasklist","component","vPre","alert","hint","figure","imgLazyload","imgMark","imgSize","legacyImgSize","obsidianImgSize","include","preview","align","attrs","sup","sub","mark","spoiler","stylize","tabs","codeTabs","math","highlighter","revealjs","chartjs","echarts","flowchart","markmap","mermaid","plantuml","demo","playground","kotlinPlayground","vuePlayground","sandpack"],Ga=(e,t)=>{w(e).forEach(a=>{Ne.includes(a)||(De.includes(a)?(c.warn(`You are setting "${r.magenta(`markdown.${a}`)}" option in ${r.cyan("vuepress config file")}, but it's not supported by VuePress. You need to set the option in ${r.cyan("theme options")}.`),t[a]=e[a]):c.warn(`You are setting "${r.magenta(`markdown.${a}`)}" option in ${r.cyan("vuepress config file")}, but it's not supported by VuePress.`))})},Wa=(e,t)=>{w(t).forEach(a=>{De.includes(a)||(Ne.includes(a)?(c.warn(`You are setting "${r.magenta(`markdown.${a}`)}" option in ${r.cyan("theme options")}, but it's not supported by theme. You need to set the option in ${r.cyan("vuepress config file")}.`),e[a]=t[a]):c.warn(`You are setting "${r.magenta(`markdown.${a}`)}" option in ${r.cyan("theme options")}, but it's not supported by theme.`))})},Fe=[["@vuepress/plugin-active-header-links","plugins.activeHeaderLinks"],["@vuepress/plugin-blog","plugins.blog"],["@vuepress/plugin-catalog","plugins.catalog"],["@vuepress/plugin-comment","plugins.comment"],["@vuepress/plugin-copy-code","plugins.copyCode"],["@vuepress/plugin-copyright","plugins.copyright"],["@vuepress/plugin-docsearch","plugins.docsearch"],["@vuepress/plugin-feed","plugins.feed"],["@vuepress/plugin-git","plugins.git"],["@vuepress/plugin-icon","plugins.icon"],["@vuepress/plugin-links-check","markdown.linksCheck"],["@vuepress/plugin-markdown-hint",["markdown.alert","markdown.hint"]],["@vuepress/plugin-markdown-image",["markdown.figure","markdown.imgLazyload","markdown.imgMark","markdown.imgSize","markdown.obsidianImgSize"]],["@vuepress/plugin-markdown-math","markdown.math"],["@vuepress/plugin-markdown-tab",["markdown.tabs","markdown.codeTabs"]],["@vuepress/plugin-meilisearch","plugins.meilisearch"],["@vuepress/plugin-notice","plugins.notice"],["@vuepress/plugin-nprogress","plugins.nprogress"],["@vuepress/plugin-photo-swipe","plugins.photoSwipe"],["@vuepress/plugin-prismjs",'markdown.highlighter: { type: "prismjs", ... your options }'],["@vuepress/plugin-pwa","plugins.pwa"],["@vuepress/plugin-reading-time","plugins.readingTime"],["@vuepress/plugin-redirect","plugins.redirect"],["@vuepress/plugin-revealjs","markdown.revealjs"],["@vuepress/plugin-rtl","",'Set "rtl: true" in the needed theme locales.'],["@vuepress/plugin-search","plugins.search"],["@vuepress/plugin-seo","plugins.seo"],["@vuepress/plugin-shiki",'markdown.highlighter: { type: "shiki", ... your options }'],["@vuepress/plugin-slimsearch","plugins.slimsearch"],["@vuepress/plugin-sitemap","plugins.sitemap"],["@vuepress/plugin-theme-data","","This plugin is called internally."],["@vuepress/plugin-watermark","plugins.watermark"],["vuepress-plugin-components","plugins.components"],["vuepress-plugin-md-enhance","plugins.mdEnhance"]],Ua=Fe.flatMap(([,e])=>e).filter(e=>e.startsWith("plugins.")).map(e=>e.split(".")[1]),Ya=e=>{w(e).forEach(t=>{Ua.includes(t)||c.warn(`You are setting "${r.magenta(`plugins.${t}`)}" option in ${r.cyan("theme options")}, but it's not supported by theme. You need to install the plugin yourself, import it in ${r.cyan("vuepress config file")} and call it manually in "${r.magenta("plugins")}" options.`)})},Oe=["vite","webpack"].map(e=>`@vuepress/bundler-${e}`),Ja=["core","client","cli","markdown","shared","utils"].map(e=>`@vuepress/${e}`),qa=["vite","-webpack"].map(e=>`vuepress-${e}`),Za=()=>{const e=L.join(process.cwd(),process.argv[3]),t=[],a=[],n=Mt(`${e}/`);let o=e,i=!1;const s=p=>{p==="vuepress"?i=!0:qa.includes(p)?console.error(r.red(`❌ ${p} is deprecated and you must remove it from deps!`)):Ja.includes(p)?a.push(p):Oe.includes(p)&&t.push(p)};do{if($.existsSync(L.resolve(o,"package.json"))){const p=JSON.parse($.readFileSync(L.resolve(o,"package.json"),"utf-8"));w({...p.dependencies,...p.devDependencies}).forEach(u=>{s(u)})}if(i||o===L.dirname(o))break}while(o=L.dirname(o));if(!i)return console.error(`❌ ${r.cyan("VuePress")} ${r.red("package is not found in current project!")} You must manually install it!`),!1;if(!t.length)return console.error(`${r.red("❌ No VuePress bundler is detected in the current project!")} You should install one of ${Oe.map(r.cyan).join(", ")}`),!1;let l=!0;const{version:g}=n("vuepress/package.json");return t.forEach(p=>{const{version:u}=n(`${p}/package.json`);u!==g&&(console.error(`❌ Package version mismatch: ${r.cyan(p)} is using ${r.magenta(u)} while ${r.cyan("vuepress")} is using ${r.magenta(g)}`),l=!1)}),a.forEach(p=>{const{version:u}=n(`${p}/package.json`);u!==g?(console.error(`Package version mismatch: ${r.cyan(p)} is using ${r.magenta(u)} while ${r.cyan("vuepress")} is using ${r.magenta(g)}`),l=!1):console.warn(`${r.cyan(p)} is no longer needed, you should remove it from deps and change all ${r.cyan(p)} imports to ${r.cyan(p.substring(1))}`)}),l},Qa=e=>{Fe.forEach(([t,a="",n=""])=>{const o=e.pluginApi.plugins.findIndex(i=>i.name==="vuepress-theme-hope");e.pluginApi.plugins.slice(o+1).some(({name:i})=>i===t)&&c.error(`You are not allowed to use plugin "${r.magenta(t)}" yourself in ${r.cyan("vuepress config file")}. ${n||(a?`Set "${r.magenta(b(a)?a:a.join(","))}" in ${r.cyan("theme options")} to customize it.`:"")}`)})},R=(e,t)=>b(e)?[Te(e)]:f(e)?e.map(a=>b(a)?Te(a):(c.error(`${r.magenta(t)} config is invalid. All password MUST be string. But we found one’s type is ${typeof a}. Please fix it!`),null)).filter(a=>a!==null):(c.error(`${r.magenta(t)} config is invalid. All password MUST be string. But we found a ${JSON.stringify(e)}. Please fix it!`),null),Be=({admin:e,config:t,global:a}={})=>{const n={};if(e)if(a&&(n.global=!0),d(e)){const o=R(e.password,"encrypt.admin.password");o&&(n.admin={tokens:o,hint:e.hint})}else{const o=R(e,"encrypt.admin");o&&(n.admin={tokens:o})}return t&&(n.config=S(v(t).map(([o,i])=>{if(d(i)){const l=R(i.password,`encrypt.config[${o}].password`);return l?[o,{tokens:l,hint:i.hint}]:null}const s=R(i,`encrypt.config[${o}]`);return s?[o,{tokens:s}]:null}).filter(o=>o!==null))),n},Re=e=>{const t={},a=(n,o)=>{if(b(o)){const i=`${F}/socialMediaIcons/${n.toLocaleLowerCase()}.svg`;return $.existsSync(i)?(t[n]=$.readFileSync(i,{encoding:"utf-8"}),!1):(c.warn(`${n} is not a built-in media, you should provide an icon for it!`),!0)}return d(o)?Le(o.icon)||C(o.icon,"<svg")?!1:(c.warn(`${n}'s icon ${o.icon} in blog media config is invalid!`),!0):(c.warn(`${n} icon in blog media config has an invalid config!`),!0)};return v(e.blog?.medias??{}).forEach(([n,o])=>{a(n,o)&&delete e.blog?.medias?.[n]}),v(e.locales).forEach(([n,{blog:o}])=>{v(o?.medias??{}).forEach(([i,s])=>{a(i,s)&&delete e.locales[n].blog?.medias?.[i]})}),t},Xa={lang:"de-DE",navbarLocales:{langName:"Deutsch",selectLangAriaLabel:"Sprache wählen"},metaLocales:{author:"Autor",date:"Datum",origin:"Original",views:"Besucher",category:"Kategorie",tag:"Tag",readingTime:"Lesezeit",words:"Wörter",toc:"Auf dieser Seite",prev:"Vorherige",next:"Nächste",contributors:"Mitwirkende",editLink:"Diese Seite barbeiten",print:"Drucken"},blogLocales:{article:"Artikel",articleList:"Artikel Liste",category:"Kategorie",tag:"Tag",timeline:"Timeline",timelineTitle:"Yesterday Once More!",all:"Alle",intro:"Persönliche Einleitung",star:"Star",empty:"$text ist leer"},paginationLocales:{prev:"Vorherige",next:"Nächste",navigate:"Springe zu",action:"Los",errorText:"Bitte gib eine Nummer zwischen 1 und $page ein!"},outlookLocales:{themeColor:"Design-Farbe",darkmode:"Design-Modus",fullscreen:"Vollbild"},encryptLocales:{iconLabel:"Seite verschlüsselt",placeholder:"Passwort eingeben",remember:"Passwort merken",errorHint:"Bitte das korrekte Passwort eingeben!"},routerLocales:{skipToContent:"Zum Hauptinhalt springen",notFoundTitle:"Seite nicht gefunden",notFoundMsg:["Hier gibt es nichts.","Wie sind wir hier hergekommen?","Das ist wohl eine Vier-Null-Vier.","Sieht aus als hättest du einen kaputten Link gefunden."],back:"Zurück",home:"Zur Startseite"}},en={lang:"de-AT",navbarLocales:{langName:"Deutsch (Österreich)",selectLangAriaLabel:"Sprache wählen"},metaLocales:{author:"Autor",date:"Datum",origin:"Original",views:"Besucher",category:"Kategorie",tag:"Tag",readingTime:"Lesezeit",words:"Wörter",toc:"On This Page",prev:"Prev",next:"Next",contributors:"Mitwirkende",editLink:"Diese Seite barbeiten",print:"Drucken"},blogLocales:{article:"Artikel",articleList:"Artikel Liste",category:"Kategorie",tag:"Tag",timeline:"Timeline",timelineTitle:"Yesterday Once More!",all:"Alle",intro:"Persönliche Einleitung",star:"Star",empty:"$text ist leer"},paginationLocales:{prev:"Vorheriges",next:"Nächstes",navigate:"Springe zu",action:"Los",errorText:"Bitte gib eine Nummer zwischen 1 und $page ein!"},outlookLocales:{themeColor:"Design-Farbe",darkmode:"Design-Modus",fullscreen:"Full Screen"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Entre a senha",remember:"Remember password",errorHint:"Bitte das korrekte Passwort eingeben!"},routerLocales:{skipToContent:"Zum Hauptinhalt springen",notFoundTitle:"Seite nicht gefunden",notFoundMsg:["Hier gibt es nichts.","Wie sind wir hier hergekommen?","Das ist wohl eine Vier-Null-Vier.","Sieht aus als hättest du einen kaputten Link gefunden."],back:"Zurück",home:"Zur Startseite"}},tn={lang:"en-US",navbarLocales:{langName:"English",selectLangAriaLabel:"Select language"},metaLocales:{author:"Author",date:"Writing Date",origin:"Original",views:"Page views",category:"Category",tag:"Tag",readingTime:"Reading Time",words:"Words",toc:"On This Page",prev:"Prev",next:"Next",contributors:"Contributors",editLink:"Edit this page",print:"Print"},blogLocales:{article:"Articles",articleList:"Article List",category:"Category",tag:"Tag",timeline:"Timeline",timelineTitle:"Yesterday Once More!",all:"All",intro:"Personal Intro",star:"Star",empty:"No $text"},paginationLocales:{prev:"Prev",next:"Next",navigate:"Jump to",action:"Go",errorText:"Please enter a number between 1 and $page !"},outlookLocales:{themeColor:"Theme Color",darkmode:"Theme Mode",fullscreen:"Full Screen"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Enter password",remember:"Remember password",errorHint:"Please enter the correct password!"},routerLocales:{skipToContent:"Skip to main content",notFoundTitle:"Page not found",notFoundMsg:["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],back:"Go back",home:"Take me home"}},an={lang:"es-ES",navbarLocales:{langName:"Español",selectLangAriaLabel:"Seleccionar idioma"},metaLocales:{author:"Autor",date:"Fecha de publicación",origin:"Original",views:"Páginas vistas",category:"Categoría",tag:"Etiquetas",readingTime:"Tiempo de lectura",words:"Palabras",toc:"En esta página",prev:"Anterior",next:"Siguiente",contributors:"Contribuidores",editLink:"Editar esta página",print:"Imprimir"},blogLocales:{article:"Artículos",articleList:"Lista de artículos",category:"Categoría",tag:"Etiquetas",timeline:"Línea de tiempo",timelineTitle:"Ayer una vez más!",all:"Todos",intro:"Introducción personal",star:"Estrella",empty:"$text está vacío"},paginationLocales:{prev:"Anterior",next:"Siguiente",navigate:"Saltar a",action:"Ir",errorText:"Por favor ingrese un número entre 1 y $page !"},outlookLocales:{themeColor:"Color del tema",darkmode:"Modo del tema",fullscreen:"Pantalla completa"},encryptLocales:{iconLabel:"Página encriptada",placeholder:"Ingresar contraseña",remember:"Recordar contraseña",errorHint:"Por favor ingrese la contraseña correcta!"},routerLocales:{skipToContent:"Saltar al contenido principal",notFoundTitle:"Página no encontrada",notFoundMsg:["No hay nada aquí.","Cómo llegamos aquí?","Eso es un Cuatro-Cero-Cuatro.","Parece que tenemos algunos enlaces rotos."],back:"Regresar",home:"Llévame al inicio"}},nn={lang:"fi-FI",navbarLocales:{langName:"Finnish",selectLangAriaLabel:"Valitse kieli"},metaLocales:{author:"Kirjoittaja",date:"Julkaistu",origin:"Alkuperäinen",views:"Näyttökerrat",category:"Kategoriat",tag:"Avainsana",readingTime:"Lukuaika",words:"Sanat",toc:"Sisällys",prev:"Edellinen",next:"Seuraava",contributors:"Osallistujat",editLink:"Muokkaa tätä sivua",print:"Tulosta"},blogLocales:{article:"Aritkkelit",articleList:"Artikkelilista",category:"Kategoria",tag:"Avainsana",timeline:"Aikajana",timelineTitle:"Koe eilinen uudelleen!",all:"Kaikki",intro:"Intro",star:"Tähti",empty:"$text on tyhjä"},paginationLocales:{prev:"Edellinen",next:"Seuraava",navigate:"Hyppää",action:"Mene",errorText:"Anna sivunumero välillä 1 ja $page!"},outlookLocales:{themeColor:"Teemaväri",darkmode:"Teeman tila",fullscreen:"Koko näyttö"},encryptLocales:{iconLabel:"Suojattu sivu",placeholder:"Anna salasana",remember:"Muista salasana",errorHint:"Anna oikea salasana!"},routerLocales:{skipToContent:"Hyppää sisältöön",notFoundTitle:"Sivua ei löytynyt",notFoundMsg:["Täällä ei olekkaan mitään!","Miten päädyimme tänne?","Se on nel-nol-nelj!","Vaikuttaa siltä, että meillä on rikkinäinen linkki."],back:"Palaa takaisin",home:"Etusivulle"}},on={lang:"fr-FR",navbarLocales:{langName:"Français",selectLangAriaLabel:"Selection de la langue"},metaLocales:{author:"Auteur",date:"Date d'édition",origin:"Original",views:"Nombre de vues",category:"Catégorie",tag:"Tag",readingTime:"Temps de lecture",words:"Mots",toc:"Dans cette page",prev:"Précédent",next:"Suivant",contributors:"Contributeurs",editLink:"Modifier cette page",print:"Imprimer"},blogLocales:{article:"Articles",articleList:"Liste d'articles",category:"Catégorie",tag:"Tag",timeline:"Timeline",timelineTitle:"Toujours un peu plus!",all:"Tout",intro:"Introduction personnelle",star:"Étoile",empty:"Pas de $text"},paginationLocales:{prev:"Précédent",next:"Suivant",navigate:"Aller à",action:"Go",errorText:"Merci d'entrer un entier entre 1 et $page !"},outlookLocales:{themeColor:"Couleur du thème",darkmode:"Mode du thème",fullscreen:"Plein écran"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Enter password",remember:"Remember password",errorHint:"Merci d'entrer un mot de passe valide !"},routerLocales:{skipToContent:"Aller au contenu principal",notFoundTitle:"Page non trouvée",notFoundMsg:["Il n'y a rien ici.","Comment êtes vous arrivés ici ?","C'est un joli 404.","Il semblerait que nous ayons quelques liens de cassés."],back:"Revenir",home:"Retour à la maison"}},rn={lang:"hu-HU",navbarLocales:{langName:"Magyar",selectLangAriaLabel:"Nyelv kiválasztása"},metaLocales:{author:"Szerző",date:"Dátum",origin:"Eredeti",views:"Oldalletöltések",category:"Kategória",tag:"Címke",readingTime:"Olvasási idő",words:"Szavak",toc:"Tartalom",prev:"Előző",next:"Következő",contributors:"Közreműködők",editLink:"Oldal szerkesztése",print:"Nyomtatás"},blogLocales:{article:"Cikkek",articleList:"Cikkek listája",category:"Kategória",tag:"Címke",timeline:"Idővonal",timelineTitle:"Régi szép idők!",all:"Összes",intro:"Személyes bemutatkozás",star:"Csillag",empty:"Nincs $text"},paginationLocales:{prev:"Előző",next:"Következő",navigate:"Ugrás",action:"Mehet",errorText:"Kérlek írj be egy számot 1 és $page között!"},outlookLocales:{themeColor:"Téma színe",darkmode:"Téma mód",fullscreen:"Teljes képernyő"},encryptLocales:{iconLabel:"Oldal titkosítva",placeholder:"Add meg a jelszót",remember:"Jelszó megjegyzése",errorHint:"Kérjük, add meg a helyes jelszót!"},routerLocales:{skipToContent:"Ugrás a fő tartalomhoz",notFoundTitle:"Az oldal nem található",notFoundMsg:["Itt nincs semmi.","Hogyan kerültünk ide?","Ez egy 404-es hiba.","Úgy tűnik, hogy sérült linkek vannak."],back:"Vissza",home:"Kezdőlap"}},sn={lang:"id-ID",navbarLocales:{langName:"Indonesia",selectLangAriaLabel:"Pilih Bahasa"},metaLocales:{author:"Penulis",date:"Ditulis pada",origin:"Original",views:"Dilihat",category:"Kategori",tag:"Tag",readingTime:"Waktu Membaca",words:"Kata",toc:"Pada Halaman Ini",prev:"Sebelumnya",next:"Selanjutnya",contributors:"Kontributor",editLink:"Edit halaman ini",print:"Cetak"},blogLocales:{article:"Artikel",articleList:"Daftar artikel",category:"Kategori",tag:"Tag",timeline:"Linimasa",timelineTitle:"Kemarin adalah kenangan, esok adalah harapan",all:"Semua",intro:"Perkenalan",star:"Berbintang",empty:"$text kosong"},paginationLocales:{prev:"Sebelumnya",next:"Selanjutnya",navigate:"Ke Halaman",action:"Pergi",errorText:"Tolong masukkan angka antara 1 dan $page !"},outlookLocales:{themeColor:"Warna Tema",darkmode:"Mode Tema",fullscreen:"Layar Penuh"},encryptLocales:{iconLabel:"Halaman terkunci",placeholder:"Masukkan kata sandi",remember:"Ingat kata sandi",errorHint:"Mohon masukkan kata sandi yang benar!"},routerLocales:{skipToContent:"Langsung ke konten utama",notFoundTitle:"Halaman tidak ditemukan",notFoundMsg:["Tidak ada apapun disini.","Bagaimana kita bisa sampai kesini?","Itu adalah Empat-Nol-Empat.","Tampaknya kami memiliki beberapa tautan situs yang rusak."],back:"Kembali",home:"Ke Beranda"}},ln={lang:"ja-JP",navbarLocales:{langName:"日本語",selectLangAriaLabel:"言語の選択"},metaLocales:{author:"著者",date:"執筆日",origin:"オリジナル",views:"来場者数",category:"カテゴリ",tag:"タグ",readingTime:"読書時間",words:"単語数",toc:"このページの内容",prev:"前のページへ",next:"次のページ",contributors:"投稿者",editLink:"このページを編集",print:"印刷"},blogLocales:{article:"記事",articleList:"記事一覧",category:"カテゴリ",tag:"タグ",timeline:"タイムライン",timelineTitle:"昨日もう一度!",all:"すべて",intro:"自己紹介",star:"コレクション",empty:"$text は空です"},paginationLocales:{prev:"前のページへ",next:"次のページ",navigate:"ジャンプする",action:"行く",errorText:"1 から $page までの数値を入力してください!"},outlookLocales:{themeColor:"テーマの色",darkmode:"テーマモード",fullscreen:"全画面"},encryptLocales:{iconLabel:"記事は暗号化されています",placeholder:"パスワードの入力",remember:"パスワードを記憶する",errorHint:"正しいパスワードを入力してください!"},routerLocales:{skipToContent:"メインコンテンツへスキップ",notFoundTitle:"ページが見つかりません",notFoundMsg:["ここには何もありません。","どうやってここにたどり着いたのか?","それは404です","私たちはいくつかの壊れたリンクを持っているように見えます。"],back:"前のページへ戻る",home:"メインページに戻る"}},cn={lang:"ko-KR",navbarLocales:{langName:"한국어",selectLangAriaLabel:"언어 선택"},metaLocales:{author:"작성자",date:"작성일",origin:"원본",views:"조회수",category:"카테고리",tag:"태그",readingTime:"읽는 시간",words:"단어",toc:"이 페이지에서",prev:"이전",next:"다음",contributors:"기여자",editLink:"이 페이지 수정",print:"인쇄"},blogLocales:{article:"게시글",articleList:"글 목록",category:"카테고리",tag:"태그",timeline:"타임라인",timelineTitle:"어제 한 번 더!",all:"모두",intro:"프로필",star:"스타",empty:"$text가 비어있습니다."},paginationLocales:{prev:"이전",next:"다음",navigate:"이동",action:"가기",errorText:"1에서 $page 사이의 숫자를 입력하세요!"},outlookLocales:{themeColor:"테마 색상",darkmode:"테마 모드",fullscreen:"전체 화면"},encryptLocales:{iconLabel:"페이지 암호화",placeholder:"비밀번호 입력",remember:"비밀번호 기억",errorHint:"정확한 비밀번호를 입력해주세요!"},routerLocales:{skipToContent:"본문으로 건너뛰기",notFoundTitle:"페이지를 찾을 수 없습니다.",notFoundMsg:["여기에는 아무것도 없습니다.","어떻게 여기까지 오셨나요?","4-0-4 입니다.","깨진 링크가 있는 것 같습니다."],back:"뒤로가기",home:"메인으로"}},pn={lang:"nl-NL",navbarLocales:{langName:"Dutch",selectLangAriaLabel:"Selecteer taal"},metaLocales:{author:"Auteur",date:"Geschreven Datum",origin:"Bron",views:"Pagina views",category:"Categorie",tag:"Tag",readingTime:"Leestijd",words:"Woorden",toc:"Op Deze Pagina",prev:"Vorige",next:"Volgende",contributors:"Bijdragers",editLink:"Bewerk deze pagina",print:"Printen"},blogLocales:{article:"Artikelen",articleList:"Artikelenlijst",category:"Categorie",tag:"Tag",timeline:"Tijdlijn",timelineTitle:"Yesterday Once More!",all:"Alle",intro:"Persoonlijke Intro",star:"Star",empty:"$text is leeg"},paginationLocales:{prev:"Vorige",next:"Volgende",navigate:"Ga Naar",action:"Go",errorText:"Gelieve een nummer in te geven tussen 1 en $page !"},outlookLocales:{themeColor:"Themakleur",darkmode:"Thema modus",fullscreen:"Full Screen"},encryptLocales:{iconLabel:"Pagina Geëncrypteerd",placeholder:"Voeg paswoord in",remember:"Herinner paswoord",errorHint:"Geliebe het juiste paswoord in te vullen!"},routerLocales:{skipToContent:"Ga naar de hoofdinhoud",notFoundTitle:"Pagina niet gevonden",notFoundMsg:["Er is niets hier.","Hoe zijn we hier beland?","Dat is een 404.","Zo te zien hebben we enkele kapotte links."],back:"Ga terug",home:"Ga terug naar home"}},dn={lang:"pl-PL",navbarLocales:{langName:"Polski",selectLangAriaLabel:"Wybierz język"},metaLocales:{author:"Autor",date:"Utworzono",origin:"Oryginał",views:"Wyświetlenia strony",category:"Kategoria",tag:"Tagi",readingTime:"Czas czytania",words:"Słowa",toc:"Na tej stronie",prev:"Poprzednia",next:"Następna",contributors:"Współtwórcy",editLink:"Edytuj tą stronę",print:"Drukuj"},blogLocales:{article:"Artykuły",articleList:"Lista artykułów",category:"Kategoria",tag:"Tagi",timeline:"Oś czasu",timelineTitle:"Wczoraj jeszcze raz!",all:"Wszystkie",intro:"Osobiste wprowadzenie",star:"Gwiazda",empty:"$text jest pusty"},paginationLocales:{prev:"Poprzedni",next:"Następmy",navigate:"Skocz do",action:"Idź",errorText:"Wpisz numer między 1 a $page !"},outlookLocales:{themeColor:"Kolor tematu",darkmode:"Tryb motywu",fullscreen:"Pełny ekran"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Enter password",remember:"Remember password",errorHint:"Podaj poprawne hasło!"},routerLocales:{skipToContent:"Przejdź do głównej treści",notFoundTitle:"Nie znaleziono strony",notFoundMsg:["Nic tu nie ma.","Jak tu się dostaliśmy?","A imię jego czterdzieści i cztery","Wygląda na to, że mamy zepsute odnośniki"],back:"Wróć",home:"Strona główna"}},gn={lang:"pt-BR",navbarLocales:{langName:"Português",selectLangAriaLabel:"Selecione a língua"},metaLocales:{author:"Autor",date:"Escrito em",origin:"Original",views:"Visualizações",category:"Categoria",tag:"Tag",readingTime:"Tempo de Leitura",words:"Palavras",toc:"On This Page",prev:"Prev",next:"Next",editLink:"Editar esta página",contributors:"Contribuidores",print:"Imprimir"},blogLocales:{article:"Artigos",articleList:"Lista de Artigos",category:"Categorias",tag:"Tag",timeline:"Linha do Tempo",timelineTitle:"Ontem, de novo!",all:"Todos",intro:"Intro Pessoal",star:"Estrela",empty:"Nenhum $text"},paginationLocales:{prev:"Anterior",next:"Próximo",navigate:"Pular para",action:"Ir",errorText:"Por favor, digite um número entre 1 e $page !"},outlookLocales:{themeColor:"Cor do Tema",darkmode:"Modo do Tema",fullscreen:"Full Screen"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Entre a senha",remember:"Remember password",errorHint:"Por favor, entre a senha correta!"},routerLocales:{notFoundTitle:"Não Encontrado",skipToContent:"Pular para o conteúdo",notFoundMsg:["Não há nada aqui.","Como chegou até aqui?","Isto é um Quatro-Zero-Quatro.","Parece que temos alguns links quebrados."],back:"Voltar",home:"Leve-me para casa"}},un={lang:"ru-RU",navbarLocales:{langName:"Русский",selectLangAriaLabel:"Выберите язык"},metaLocales:{author:"Автор",date:"Дата написания",origin:"Оригинал",views:"Просмотры страницы",category:"Категория",tag:"Тэги",readingTime:"Время чтения",words:"Слова",toc:"На этой странице",prev:"Предыдущая",next:"Следующая",contributors:"Контрибьюторы",editLink:"Редактировать эту страницу",print:"Печать"},blogLocales:{article:"Статьи",articleList:"Список статей",category:"Категория",tag:"Тэги",timeline:"Таймлайн",timelineTitle:"Еще раз о недавнем!",all:"Все",intro:"Личное вступление",star:"Звезда",empty:"$text пусто"},paginationLocales:{prev:"Предыдущая",next:"Следующая",navigate:"Перейти к",action:"Перейти",errorText:"Пожалуйста, введите число от 1 до $page !"},outlookLocales:{themeColor:"Цвет темы",darkmode:"Режим темы",fullscreen:"Полный экран"},encryptLocales:{iconLabel:"Страница зашифрована",placeholder:"Введите пароль",remember:"Запомнить пароль",errorHint:"Пожалуйста, введите правильный пароль!"},routerLocales:{skipToContent:"Перейти к основному содержанию",notFoundTitle:"Страница не найдена",notFoundMsg:["Здесь ничего нет.","Как мы сюда попали?","Это четыре-о-четыре.","Похоже, у нас есть несколько неработающих ссылок."],back:"Вернуться назад",home:"Вернуться на главную"}},mn={lang:"sk-SK",navbarLocales:{langName:"Slovensky",selectLangAriaLabel:"Vyber si jazyk"},metaLocales:{author:"Autor",date:"Dátum článku",origin:"Originál",views:"Zobrazení",category:"Kategória",tag:"Tagy",readingTime:"Dĺžka čítania",words:"Slová",toc:"Na tejto stránke",prev:"Predchádzajúci",next:"Ďalší",contributors:"Prispievatelia",editLink:"Uprav túto stránku",print:"Tlač"},blogLocales:{article:"Články",articleList:"List článkov",category:"Kategória",tag:"Tagy",timeline:"Časová os",timelineTitle:"Čas plynie!",all:"Všetko",intro:"Osobné intro",star:"Hviezda",empty:"$text je prázdny"},paginationLocales:{prev:"Predchádzajúci",next:"Ďalší",navigate:"Skoč na",action:"Choď",errorText:"Prosím, zadajte číso medzi 1 a $page !"},outlookLocales:{themeColor:"Farba témy",darkmode:"Mód témy",fullscreen:"Celá obrazovka"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Enter password",remember:"Remember password",errorHint:"Prosím, zadaj správne heslo!"},routerLocales:{skipToContent:"Preskočiť na hlavný obsah",notFoundTitle:"Stránka nenájdená",notFoundMsg:["Nič tu nieje.","Ako si sa sem dostal?","Si na štyri-nula-štvorke.","Vyzerá to že máme nejaké neprelinkované stránky."],back:"Choď späť",home:"Poď na domovskú stránku"}},hn={lang:"tr-TR",navbarLocales:{langName:"Türkçe",selectLangAriaLabel:"Dil seçin"},metaLocales:{author:"Yazar",date:"Yazım Tarihi",origin:"Özgün",views:"Sayfa Görünümü",category:"Kategori",tag:"Etiket",readingTime:"Okuma Süresi",words:"Kelime",toc:"Bu sayfada",prev:"Önceki",next:"Sonraki",contributors:"Katkıda Bulunanlar",editLink:"Bu sayfayı düzenle",print:"Yazdır"},blogLocales:{article:"Makaleler",articleList:"Makale Listesi",category:"Kategori",tag:"Etiket",timeline:"Zaman Çizelgesi",timelineTitle:"Yesterday Once More!",all:"Hepsi",intro:"Kişisel Tanıtım",star:"Yıldız",empty:"$text boş"},paginationLocales:{prev:"Önceki",next:"Sonraki",navigate:"Atla",action:"Git",errorText:"Lütfen 1 ile $page arasında bir sayfa numarası girin !"},outlookLocales:{themeColor:"Tema Rengi",darkmode:"Tema Modu",fullscreen:"Tam Ekran"},encryptLocales:{iconLabel:"Sayfa şifreli",placeholder:"Şifrenizi girin",remember:"Şifreyi hatırla",errorHint:"Lütfen doğru şifreyi girin!"},routerLocales:{skipToContent:"Ana içeriğe atla",notFoundTitle:"Sayfa bulunamadı",notFoundMsg:["Burada hiçbir şey yok.","Bu sayfaya nasıl geldik?","Bir hata var - Dört-Sıfır-Dört.","Bazı çalışmayan bağlantılar var."],back:"Geri dön",home:"Ana sayfaya git"}},kn={lang:"uk-UA",navbarLocales:{langName:"Українська",selectLangAriaLabel:"Оберіть мову"},metaLocales:{author:"Автор",date:"Дата написання",origin:"Оригінал",views:"Перегляди сторінки",category:"Категорія",tag:"Теги",readingTime:"Час читання",words:"Слова",toc:"На сторінці",prev:"Попередня",next:"Наступна",contributors:"Автори",editLink:"Редагувати цю сторінку",print:"Друк"},blogLocales:{article:"Статті",articleList:"Список статей",category:"Категорія",tag:"Теги",timeline:"Хронологія",timelineTitle:"Вчора ще раз!",all:"Bce",intro:"Особистий вступ",star:"Зірка",empty:"$text порожній"},paginationLocales:{prev:"Попередня",next:"Далі",navigate:"Перейти до",action:"Перейти",errorText:"Будь ласка, введіть число від 1 до $page !"},outlookLocales:{themeColor:"Колір теми",darkmode:"Тематичний режим",fullscreen:"Повноекранний"},encryptLocales:{iconLabel:"Сторінка зашифрована",placeholder:"Введіть пароль",remember:"Запам'яти пароль",errorHint:"Будь ласка, введіть правильний пароль!"},routerLocales:{skipToContent:"Перейти до основного вмісту",notFoundTitle:"Сторінка не знайдена",notFoundMsg:["Тут немає нічого.","Як ми сюди потрапили?",'Це "4-0-4".',"Схоже, у нас є непрацюючі посилання."],back:"Повернутися назад",home:"Повернутися на головну"}},fn={lang:"vi-VN",navbarLocales:{langName:"Ngôn ngữ",selectLangAriaLabel:"Chọn ngôn ngữ"},metaLocales:{author:"Người viết",date:"Ngày viết",origin:"Nguồn",views:"Views của trang",category:"Category",tag:"Tag",readingTime:"Thời gian đọc",words:"Words",toc:"On This Page",prev:"Prev",next:"Next",contributors:"Người đóng góp",editLink:"Chỉnh sửa trang này",print:"In"},blogLocales:{article:"Bài viết",articleList:"Danh sách Bài viết",category:"Category",tag:"Tag",timeline:"Timeline",timelineTitle:"Yesterday Once More!",all:"Tất cả",intro:"Giới thiệu cá nhân",star:"Ngôi sao",empty:"$text trống"},paginationLocales:{prev:"Bài kế",next:"Bài trước",navigate:"Đi đến",action:"Đi",errorText:"Xin hãy nhập 1 số từ 1 đến $page !"},outlookLocales:{themeColor:"Màu nền",darkmode:"Theme Mode",fullscreen:"Full Screen"},encryptLocales:{iconLabel:"Page Encrypted",placeholder:"Enter password",remember:"Remember password",errorHint:"Vui lòng nhập đúng mật khẩu"},routerLocales:{skipToContent:"Bỏ qua nội dung chính",notFoundTitle:"Trang không tìm thấy",notFoundMsg:["Ở đây chẳng có gì cả.","Sao chúng ta lại đến đây?","Đây là lỗi bốn-không-bốn","Có vẻ chúng ta có vài broken link."],back:"Quay lại",home:"Trang chủ"}},yn={lang:"zh-CN",navbarLocales:{langName:"简体中文",selectLangAriaLabel:"选择语言"},metaLocales:{author:"作者",date:"写作日期",origin:"原创",views:"访问量",category:"分类",tag:"标签",readingTime:"阅读时间",words:"字数",toc:"此页内容",prev:"上一页",next:"下一页",contributors:"贡献者",editLink:"编辑此页",print:"打印"},blogLocales:{article:"文章",articleList:"文章列表",category:"分类",tag:"标签",timeline:"时间轴",timelineTitle:"昨日不在",all:"全部",intro:"个人介绍",star:"星标",empty:"$text 为空"},paginationLocales:{prev:"上一页",next:"下一页",navigate:"跳转到",action:"前往",errorText:"请输入 1 到 $page 之前的页码!"},outlookLocales:{themeColor:"主题色",darkmode:"外观",fullscreen:"全屏"},encryptLocales:{iconLabel:"文章已加密",placeholder:"输入密码",remember:"记住密码",errorHint:"请输入正确的密码"},routerLocales:{skipToContent:"跳至主要內容",notFoundTitle:"页面不存在",notFoundMsg:["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],back:"返回上一页",home:"带我回家"}},bn={lang:"zh-TW",navbarLocales:{langName:"繁體中文",selectLangAriaLabel:"選擇語言"},metaLocales:{author:"作者",date:"寫作日期",origin:"原創",views:"訪問量",category:"分類",tag:"標籤",readingTime:"閱讀時間",words:"字數",toc:"此頁內容",prev:"上一頁",next:"下一頁",contributors:"貢獻者",editLink:"編輯此頁",print:"打印"},blogLocales:{article:"文章",articleList:"文章列表",category:"分類",tag:"標籤",timeline:"時間軸",timelineTitle:"昨日不在",all:"全部",intro:"個人介紹",star:"星標",empty:"$text 為空"},paginationLocales:{prev:"上一頁",next:"下一頁",navigate:"跳轉到",action:"前往",errorText:"請輸入 1 到 $page 之前的頁碼!"},outlookLocales:{themeColor:"主題色",darkmode:"主題模式",fullscreen:"全屏"},encryptLocales:{iconLabel:"頁面已加密",placeholder:"輸入密碼",remember:"記憶密碼",errorHint:"請輸入正確密碼"},routerLocales:{skipToContent:"跳至主要內容",notFoundTitle:"頁面不存在",notFoundMsg:["這裡什麼也沒有","我們是怎麼來到這兒的?","這 是 四 零 四 !","看起来你訪問了一個失效的鏈結"],back:"返回上一頁",home:"帶我回家"}},H=[[["en","en-US"],tn],[["zh","zh-CN","zh-Hans"],yn],[["zh-TW","zh-Hant"],bn],[["de"],Xa],[["de-AT"],en],[["vi"],fn],[["uk"],kn],[["ru"],un],[["pl"],dn],[["sk"],mn],[["fr"],on],[["es"],an],[["ja"],ln],[["tr"],hn],[["ko"],cn],[["fi"],nn],[["hu"],rn],[["id"],sn],[["nl"],pn],[["pt-BR"],gn]],He=["navbar","sidebar","rtl","metaLocales","navbarLocales","outlookLocales","routerLocales","blogLocales","encryptLocales","paginationLocales"],Ve=(e,{encrypt:t,...a},{enableBlog:n,enableEncrypt:o})=>{const i={encrypt:Be(t),...S(v(a).filter(([s])=>!He.includes(s))),locales:U({app:e,name:"vuepress-theme-hope",default:H.map(([s,{...l}])=>(n||(delete l.blogLocales,delete l.paginationLocales),o||delete l.encry