vuepress-plugin-components
Advanced tools
Comparing version 2.0.0-beta.79 to 2.0.0-beta.80
@@ -1,2 +0,2 @@ | ||
import{useEventListener as o,useDebounceFn as e}from"@vueuse/core";import{usePageFrontmatter as l}from"@vuepress/client";import{useThemeData as t}from"@vuepress/plugin-theme-data/lib/client";import{h as a,defineComponent as c,ref as r,computed as s,onMounted as p,Transition as u}from"vue";import{IconBase as n,useLocaleConfig as m}from"vuepress-shared/lib/client";import"../styles/back-to-top.scss";const i=()=>a(n,{name:"back-to-top"},(()=>[a("path",{d:"M512 843.2c-36.2 0-66.4-13.6-85.8-21.8-10.8-4.6-22.6 3.6-21.8 15.2l7 102c.4 6.2 7.6 9.4 12.6 5.6l29-22c3.6-2.8 9-1.8 11.4 2l41 64.2c3 4.8 10.2 4.8 13.2 0l41-64.2c2.4-3.8 7.8-4.8 11.4-2l29 22c5 3.8 12.2.6 12.6-5.6l7-102c.8-11.6-11-20-21.8-15.2-19.6 8.2-49.6 21.8-85.8 21.8z"}),a("path",{d:"m795.4 586.2-96-98.2C699.4 172 513 32 513 32S324.8 172 324.8 488l-96 98.2c-3.6 3.6-5.2 9-4.4 14.2L261.2 824c1.8 11.4 14.2 17 23.6 10.8L419 744s41.4 40 94.2 40c52.8 0 92.2-40 92.2-40l134.2 90.8c9.2 6.2 21.6.6 23.6-10.8l37-223.8c.4-5.2-1.2-10.4-4.8-14zM513 384c-34 0-61.4-28.6-61.4-64s27.6-64 61.4-64c34 0 61.4 28.6 61.4 64S547 384 513 384z"})]));i.displayName="BacktoTopIcon";var d=c({name:"BackToTop",props:{threshold:{type:Number,default:300}},setup(c){const n=l(),d=t(),v=m(BACK_TO_TOP_LOCALES),b=r(0),T=s((()=>{const{backToTop:o}=d.value;return"number"==typeof o?o:c.threshold})),f=s((()=>{const o=!1!==d.value.backToTop,e=n.value.backToTop;return(e||o&&!1!==e)&&b.value>T.value})),h=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;return p((()=>{b.value=h()})),o("scroll",e((()=>{b.value=h()}),100)),()=>a(u,{name:"fade"},(()=>f.value?a("button",{class:"back-to-top","aria-label":v.value.backToTop,"data-balloon-pos":"left",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"}),b.value=0}},a(i)):null))}});export{d as default}; | ||
import{useEventListener as o,useDebounceFn as e}from"@vueuse/core";import{usePageFrontmatter as l}from"@vuepress/client";import{h as t,defineComponent as c,ref as a,computed as s,onMounted as p,Transition as r}from"vue";import{IconBase as u,useLocaleConfig as m}from"vuepress-shared/lib/client";import"../styles/back-to-top.scss";const n=()=>t(u,{name:"back-to-top"},(()=>[t("path",{d:"M512 843.2c-36.2 0-66.4-13.6-85.8-21.8-10.8-4.6-22.6 3.6-21.8 15.2l7 102c.4 6.2 7.6 9.4 12.6 5.6l29-22c3.6-2.8 9-1.8 11.4 2l41 64.2c3 4.8 10.2 4.8 13.2 0l41-64.2c2.4-3.8 7.8-4.8 11.4-2l29 22c5 3.8 12.2.6 12.6-5.6l7-102c.8-11.6-11-20-21.8-15.2-19.6 8.2-49.6 21.8-85.8 21.8z"}),t("path",{d:"m795.4 586.2-96-98.2C699.4 172 513 32 513 32S324.8 172 324.8 488l-96 98.2c-3.6 3.6-5.2 9-4.4 14.2L261.2 824c1.8 11.4 14.2 17 23.6 10.8L419 744s41.4 40 94.2 40c52.8 0 92.2-40 92.2-40l134.2 90.8c9.2 6.2 21.6.6 23.6-10.8l37-223.8c.4-5.2-1.2-10.4-4.8-14zM513 384c-34 0-61.4-28.6-61.4-64s27.6-64 61.4-64c34 0 61.4 28.6 61.4 64S547 384 513 384z"})]));n.displayName="BacktoTopIcon";var d=c({name:"BackToTop",props:{threshold:{type:Number,default:300}},setup(c){const u=l(),d=m(BACK_TO_TOP_LOCALES),i=a(0),v=s((()=>!1!==u.value.backToTop&&i.value>c.threshold)),b=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;return p((()=>{i.value=b()})),o("scroll",e((()=>{i.value=b()}),100)),()=>t(r,{name:"fade"},(()=>v.value?t("button",{class:"back-to-top","aria-label":d.value.backToTop,"data-balloon-pos":"left",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"}),i.value=0}},t(n)):null))}});export{d as default}; | ||
//# sourceMappingURL=BackToTop.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var o=require("vuepress-plugin-sass-palette"),e=require("vuepress-shared"),n=require("@vuepress/shared"),t=require("@vuepress/utils");const s={"/en/":{backToTop:"Back to top"},"/zh/":{backToTop:"返回顶部"},"/zh-tw/":{backToTop:"返回頂部"},"/de/":{backToTop:"Zurück nach oben."},"/vi/":{backToTop:"Trở lại đầu trang"},"/uk/":{backToTop:"Повернутися до початку"},"/ru/":{backToTop:"Вернуться к началу"},"/br/":{backToTop:"Volta ao topo"},"/pl/":{backToTop:"Wróć na górę"},"/sk/":{backToTop:"Back to top"},"/fr/":{backToTop:"Back to top"},"/es/":{backToTop:"Volver arriba"}},p=new e.Logger("vuepress-plugin-components"),i=(o="")=>"fontawesome"===o||o.match(/^(?:https:)?\/\/kit\.fontawesome\.com\//)?"fas fa-":"iconfont"===o||o.match(/^(?:https:)?\/\/at\.alicdn\.com\/t\//)?"iconfont icon-":"",c=n.ensureEndingSlash(t.path.resolve(__dirname,"../client")),a=["Badge","CodePen","FontIcon","PDF","StackBlitz"],r=(o,e)=>{let n="",t="",s="",i="",r=!1;return e.components.forEach((o=>{if(a.includes(o)&&(n+=`import ${o} from "${c}components/${o}";\n`,t+=`app.component("${o}", ${o});\n`),"FontIcon"===o&&e.iconAssets){const o=(o=>{if("fontawesome"===o)return{type:"script",content:"https://kit.fontawesome.com/ca37c296c5.js"};if("iconfont"===o)return{type:"style",content:'@import url("//at.alicdn.com/t/font_2410206_a0xb9hku9iu.css");'};const e=o.match(/^(?:https?:)?\/\//g)?o:`//${o}`;return e.endsWith(".css")?{type:"style",content:`@import url("${o}");`}:e.endsWith(".js")?{type:"script",content:o}:(p.error(`Can not recognize icon link: "${o}"`),null)})(e.iconAssets);if(o){const{type:e,content:t}=o,p="script"===e?"useScriptTag":"useStyleTag";"script"===e&&(r=!0),n+=`import { ${p} } from "${c}composables";\n`,s+=`${p}(\`${t}\`${"style"===e?', { id: "icon-assets" }':""});\n`}}})),"string"==typeof e.addThis&&(r||(n+=`import { useScriptTag } from "${c}composables";\n`),s+=`useScriptTag(\`//s7.addthis.com/js/300/addthis_widget.js#pubid=${e.addThis}\`);\n`),e.backToTop&&(n+=`import BackToTop from "${c}components/BackToTop";\n`,i+="BackToTop,\n"),o.writeTemp("components/config.js",`import { defineClientConfig } from "@vuepress/client";\n${n}\n\nexport default defineClientConfig({\n enhance: ({ app }) => {\n${t.split("\n").map((o=>` ${o}`)).join("\n")}\n },\n setup: () => {\n${s.split("\n").map((o=>` ${o}`)).join("\n")}\n },\n rootComponents: [\n${i.split("\n").map((o=>` ${o}`)).join("\n")}\n ],\n});`)},T=n=>t=>(t.env.isDebug&&p.info(`Options: ${n.toString()}`),o.useSassPalettePlugin(t,{id:"hope"}),{name:"vuepress-plugin-components",define:{BACK_TO_TOP_THRESHOLD:"number"==typeof n.backToTop?n.backToTop:300,BACK_TO_TOP_LOCALES:e.getLocales({app:t,name:"backToTop",default:s,config:n.backToTopLocales}),ICON_PREFIX:"string"==typeof n.iconPrefix?n.iconPrefix:i(n.iconAssets)},clientConfigFile:o=>r(o,n)});exports.componentsPlugin=T,exports.default=T; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var o=require("vuepress-plugin-sass-palette"),e=require("vuepress-shared"),n=require("@vuepress/shared"),t=require("@vuepress/utils");const s={"/en/":{backToTop:"Back to top"},"/zh/":{backToTop:"返回顶部"},"/zh-tw/":{backToTop:"返回頂部"},"/de-at/":{backToTop:"Zurück nach oben."},"/vi/":{backToTop:"Trở lại đầu trang"},"/uk/":{backToTop:"Повернутися до початку"},"/ru/":{backToTop:"Вернуться к началу"},"/br/":{backToTop:"Volta ao topo"},"/pl/":{backToTop:"Wróć na górę"},"/sk/":{backToTop:"Back to top"},"/fr/":{backToTop:"Back to top"},"/es/":{backToTop:"Volver arriba"}},p=new e.Logger("vuepress-plugin-components"),i=(o="")=>"fontawesome"===o||o.match(/^(?:https:)?\/\/kit\.fontawesome\.com\//)?"fas fa-":"iconfont"===o||o.match(/^(?:https:)?\/\/at\.alicdn\.com\/t\//)?"iconfont icon-":"",c=n.ensureEndingSlash(t.path.resolve(__dirname,"../client")),a=["Badge","CodePen","FontIcon","PDF","StackBlitz"],r=(o,e)=>{let n="",t="",s="",i="",r=!1,T=!1,u=!1;return e.components.forEach((o=>{if(a.includes(o)&&(n+=`import ${o} from "${c}components/${o}";\n`,t+=`app.component("${o}", ${o});\n`),"FontIcon"===o&&e.iconAssets){const o=(o=>{if("fontawesome"===o)return{type:"script",content:"https://kit.fontawesome.com/ca37c296c5.js"};if("iconfont"===o)return{type:"style",content:'@import url("//at.alicdn.com/t/font_2410206_a0xb9hku9iu.css");'};const e=o.match(/^(?:https?:)?\/\//g)?o:`//${o}`;return e.endsWith(".css")?{type:"style",content:`@import url("${o}");`}:e.endsWith(".js")?{type:"script",content:o}:(p.error(`Can not recognize icon link: "${o}"`),null)})(e.iconAssets);if(o){const{type:e,content:n}=o;"script"===e?(T=!0,s+=`useScriptTag(\`${n}\`);\n`):(u=!0,s+=`useStyleTag(\`${n}\`, { id: "icon-assets" });\n`)}}})),"string"==typeof e.addThis&&(s+=`useScriptTag(\`//s7.addthis.com/js/300/addthis_widget.js#pubid=${e.addThis}\`);\n`),e.backToTop&&(r=!0,n+=`import BackToTop from "${c}components/BackToTop";\n`,i+=`() => h(BackToTop, { threshold: ${"number"==typeof e.backToTop?e.backToTop:300} }),\n`),o.writeTemp("components/config.js",`${T?`import { useScriptTag } from "${c}composables";\n`:""}${u?`import { useStyleTag } from "${c}composables";\n`:""}${r?'import { h } from "vue";\n':""}import { defineClientConfig } from "@vuepress/client";\n${n}\n\nexport default defineClientConfig({\n enhance: ({ app }) => {\n${t.split("\n").map((o=>` ${o}`)).join("\n")}\n },\n setup: () => {\n${s.split("\n").map((o=>` ${o}`)).join("\n")}\n },\n rootComponents: [\n${i.split("\n").map((o=>` ${o}`)).join("\n")}\n ],\n});`)},T=n=>t=>(t.env.isDebug&&p.info(`Options: ${n.toString()}`),o.useSassPalettePlugin(t,{id:"hope"}),{name:"vuepress-plugin-components",define:{BACK_TO_TOP_LOCALES:e.getLocales({app:t,name:"backToTop",default:s,config:n.backToTopLocales}),ICON_PREFIX:"string"==typeof n.iconPrefix?n.iconPrefix:i(n.iconAssets)},clientConfigFile:o=>r(o,n)});exports.componentsPlugin=T,exports.default=T; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "vuepress-plugin-components", | ||
"version": "2.0.0-beta.79", | ||
"version": "2.0.0-beta.80", | ||
"description": "Components collection plugin for VuePress2", | ||
@@ -33,16 +33,16 @@ "keywords": [ | ||
"dependencies": { | ||
"@vuepress/client": "2.0.0-beta.46", | ||
"@vuepress/plugin-theme-data": "2.0.0-beta.46", | ||
"@vuepress/shared": "2.0.0-beta.46", | ||
"@vuepress/utils": "2.0.0-beta.46", | ||
"@vuepress/client": "2.0.0-beta.47", | ||
"@vuepress/plugin-theme-data": "2.0.0-beta.47", | ||
"@vuepress/shared": "2.0.0-beta.47", | ||
"@vuepress/utils": "2.0.0-beta.47", | ||
"@vueuse/core": "^8.6.0", | ||
"balloon-css": "^1.2.0", | ||
"vue": "^3.2.36", | ||
"vue-router": "^4.0.15", | ||
"vuepress-plugin-reading-time2": "2.0.0-beta.79", | ||
"vuepress-plugin-sass-palette": "2.0.0-beta.79", | ||
"vuepress-shared": "2.0.0-beta.79" | ||
"vue": "^3.2.37", | ||
"vue-router": "^4.0.16", | ||
"vuepress-plugin-reading-time2": "2.0.0-beta.80", | ||
"vuepress-plugin-sass-palette": "2.0.0-beta.80", | ||
"vuepress-shared": "2.0.0-beta.80" | ||
}, | ||
"devDependencies": { | ||
"@vuepress/core": "2.0.0-beta.46", | ||
"@vuepress/core": "2.0.0-beta.47", | ||
"rimraf": "3.0.2" | ||
@@ -49,0 +49,0 @@ }, |
import { useEventListener, useDebounceFn } from "@vueuse/core"; | ||
import { usePageFrontmatter } from "@vuepress/client"; | ||
import { useThemeData } from "@vuepress/plugin-theme-data/lib/client"; | ||
import { Transition, computed, defineComponent, h, onMounted, ref } from "vue"; | ||
@@ -24,3 +23,2 @@ import { useLocaleConfig } from "vuepress-shared/lib/client"; | ||
const pageFrontmatter = usePageFrontmatter<{ backToTop?: boolean }>(); | ||
const themeData = useThemeData(); | ||
const locale = useLocaleConfig(BACK_TO_TOP_LOCALES); | ||
@@ -31,19 +29,9 @@ | ||
const thresholdDistance = computed<number>(() => { | ||
const { backToTop } = themeData.value; | ||
return typeof backToTop === "number" ? backToTop : props.threshold; | ||
}); | ||
/** Whether to display button */ | ||
const show = computed<boolean>(() => { | ||
const globalEnable = themeData.value["backToTop"] !== false; | ||
const pageEnable = pageFrontmatter.value.backToTop; | ||
const show = computed<boolean>( | ||
() => | ||
pageFrontmatter.value.backToTop !== false && | ||
scrollTop.value > props.threshold | ||
); | ||
return ( | ||
(pageEnable || (globalEnable && pageEnable !== false)) && | ||
scrollTop.value > thresholdDistance.value | ||
); | ||
}); | ||
// Get scroll distance | ||
@@ -50,0 +38,0 @@ const getScrollTop = (): number => |
@@ -16,3 +16,3 @@ import type { BackToTopLocaleConfig } from "../shared"; | ||
"/de/": { | ||
"/de-at/": { | ||
backToTop: "Zurück nach oben.", | ||
@@ -19,0 +19,0 @@ }, |
@@ -22,4 +22,2 @@ import { useSassPalettePlugin } from "vuepress-plugin-sass-palette"; | ||
define: { | ||
BACK_TO_TOP_THRESHOLD: | ||
typeof options.backToTop === "number" ? options.backToTop : 300, | ||
BACK_TO_TOP_LOCALES: getLocales({ | ||
@@ -26,0 +24,0 @@ app, |
@@ -62,3 +62,5 @@ import { ensureEndingSlash } from "@vuepress/shared"; | ||
let rootComponents = ""; | ||
let isUseScriptTagImported = false; | ||
let shouldImportH = false; | ||
let shouldImportUseScriptTag = false; | ||
let shouldImportUseStyleTag = false; | ||
@@ -76,11 +78,10 @@ options.components.forEach((item) => { | ||
const { type, content } = result; | ||
const composableName = | ||
type === "script" ? "useScriptTag" : "useStyleTag"; | ||
if (type === "script") isUseScriptTagImported = true; | ||
configImport += `import { ${composableName} } from "${CLIENT_FOLDER}composables";\n`; | ||
setup += `${composableName}(\`${content}\`${ | ||
type === "style" ? ', { id: "icon-assets" }' : "" | ||
});\n`; | ||
if (type === "script") { | ||
shouldImportUseScriptTag = true; | ||
setup += `useScriptTag(\`${content}\`);\n`; | ||
} else { | ||
shouldImportUseStyleTag = true; | ||
setup += `useStyleTag(\`${content}\`, { id: "icon-assets" });\n`; | ||
} | ||
} | ||
@@ -91,5 +92,2 @@ } | ||
if (typeof options.addThis === "string") { | ||
if (!isUseScriptTagImported) | ||
configImport += `import { useScriptTag } from "${CLIENT_FOLDER}composables";\n`; | ||
setup += `useScriptTag(\`//s7.addthis.com/js/300/addthis_widget.js#pubid=${options.addThis}\`);\n`; | ||
@@ -99,4 +97,7 @@ } | ||
if (options.backToTop) { | ||
shouldImportH = true; | ||
configImport += `import BackToTop from "${CLIENT_FOLDER}components/BackToTop";\n`; | ||
rootComponents += `BackToTop,\n`; | ||
rootComponents += `() => h(BackToTop, { threshold: ${ | ||
typeof options.backToTop === "number" ? options.backToTop : 300 | ||
} }),\n`; | ||
} | ||
@@ -106,3 +107,13 @@ | ||
`components/config.js`, | ||
`import { defineClientConfig } from "@vuepress/client"; | ||
`${ | ||
shouldImportUseScriptTag | ||
? `import { useScriptTag } from "${CLIENT_FOLDER}composables";\n` | ||
: "" | ||
}${ | ||
shouldImportUseStyleTag | ||
? `import { useStyleTag } from "${CLIENT_FOLDER}composables";\n` | ||
: "" | ||
}${ | ||
shouldImportH ? `import { h } from "vue";\n` : "" | ||
}import { defineClientConfig } from "@vuepress/client"; | ||
${configImport} | ||
@@ -109,0 +120,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1100
56941
+ Added@vuepress/client@2.0.0-beta.47(transitive)
+ Added@vuepress/core@2.0.0-beta.47(transitive)
+ Added@vuepress/markdown@2.0.0-beta.47(transitive)
+ Added@vuepress/plugin-git@2.0.0-beta.47(transitive)
+ Added@vuepress/plugin-theme-data@2.0.0-beta.47(transitive)
+ Added@vuepress/shared@2.0.0-beta.47(transitive)
+ Added@vuepress/utils@2.0.0-beta.47(transitive)
+ Addedcaniuse-lite@1.0.30001698(transitive)
+ Addedelectron-to-chromium@1.5.95(transitive)
+ Addedterser@5.38.1(transitive)
+ Addedvuepress-plugin-reading-time2@2.0.0-beta.80(transitive)
+ Addedvuepress-plugin-sass-palette@2.0.0-beta.80(transitive)
+ Addedvuepress-shared@2.0.0-beta.80(transitive)
- Removed@vuepress/client@2.0.0-beta.46(transitive)
- Removed@vuepress/core@2.0.0-beta.46(transitive)
- Removed@vuepress/markdown@2.0.0-beta.46(transitive)
- Removed@vuepress/plugin-git@2.0.0-beta.46(transitive)
- Removed@vuepress/plugin-theme-data@2.0.0-beta.46(transitive)
- Removed@vuepress/shared@2.0.0-beta.46(transitive)
- Removed@vuepress/utils@2.0.0-beta.46(transitive)
- Removedcaniuse-lite@1.0.30001697(transitive)
- Removedelectron-to-chromium@1.5.93(transitive)
- Removedterser@5.38.0(transitive)
- Removedvuepress-plugin-reading-time2@2.0.0-beta.79(transitive)
- Removedvuepress-plugin-sass-palette@2.0.0-beta.79(transitive)
- Removedvuepress-shared@2.0.0-beta.79(transitive)
Updatedvue@^3.2.37
Updatedvue-router@^4.0.16