├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml ├── PULL_REQUEST_TEMPLATE.md ├── copilot-instructions.md └── workflows │ ├── check.yml │ ├── coverage.yml │ ├── docs.yml │ ├── e2e.yml │ ├── issue-commented.yml │ ├── issue-daily.yml │ ├── issue-labeled.yml │ └── release.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .prettierignore ├── .stylelintrc.yml ├── .vscode ├── extensions.json └── settings.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── commitlint.config.ts ├── docs ├── .vuepress │ ├── client.ts │ ├── components │ │ ├── NpmBadge.vue │ │ ├── PaletteDemo.vue │ │ ├── PaletteDisplay.vue │ │ ├── ToggleRTLButton.vue │ │ ├── VPAutoLink.vue │ │ ├── VPNavbarDropdown.vue │ │ └── VPSidebarItem.vue │ ├── composables │ │ ├── useNavbarRepo.ts │ │ └── useNavbarSelectLanguage.ts │ ├── config.ts │ ├── configs │ │ ├── head.ts │ │ ├── index.ts │ │ ├── llmstxtTOC.ts │ │ ├── navbar │ │ │ ├── en.ts │ │ │ ├── index.ts │ │ │ └── zh.ts │ │ ├── plugins.ts │ │ └── sidebar │ │ │ ├── en.ts │ │ │ ├── index.ts │ │ │ └── zh.ts │ ├── echarts-snippets │ │ ├── bar.snippet.md │ │ ├── candlestick.snippet.md │ │ ├── heat-map.snippet.md │ │ ├── line.snippet.md │ │ ├── multiple.snippet.md │ │ ├── pie.snippet.md │ │ ├── polar.snippet.md │ │ ├── radar.snippet.md │ │ ├── scatter.snippet.md │ │ ├── tree.snippet.md │ │ └── wordcloud.snippet.md │ ├── layouts │ │ └── CommentPage.vue │ ├── public │ │ ├── favicon.ico │ │ ├── images │ │ │ ├── comment │ │ │ │ ├── vercel-1.png │ │ │ │ ├── vercel-2.png │ │ │ │ ├── vercel-3.png │ │ │ │ ├── vercel-4.png │ │ │ │ ├── vercel-5.png │ │ │ │ ├── vercel-6.png │ │ │ │ ├── vercel-7.png │ │ │ │ ├── vercel-8.png │ │ │ │ └── vercel-9.png │ │ │ ├── cookbook │ │ │ │ └── extending-a-theme-01.png │ │ │ ├── hero.png │ │ │ ├── icon │ │ │ │ ├── github-dark.svg │ │ │ │ └── github-light.svg │ │ │ └── icons │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ ├── android-chrome-384x384.png │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ ├── apple-touch-icon.png │ │ │ │ ├── favicon-16x16.png │ │ │ │ ├── favicon-32x32.png │ │ │ │ ├── mstile-150x150.png │ │ │ │ └── safari-pinned-tab.svg │ │ └── manifest.webmanifest │ ├── shims.d.ts │ ├── styles │ │ └── index.scss │ ├── theme.ts │ └── utils │ │ └── resolveAutoLink.ts ├── README.md ├── package.json ├── plugins │ ├── README.md │ ├── ai │ │ ├── README.md │ │ └── llms.md │ ├── analytics │ │ ├── README.md │ │ ├── baidu-analytics.md │ │ ├── google-analytics.md │ │ └── umami-analytics.md │ ├── blog │ │ ├── README.md │ │ ├── blog │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ ├── comment │ │ │ ├── README.md │ │ │ ├── artalk │ │ │ │ ├── README.md │ │ │ │ └── config.md │ │ │ ├── giscus │ │ │ │ ├── README.md │ │ │ │ └── config.md │ │ │ ├── guide.md │ │ │ ├── twikoo │ │ │ │ ├── README.md │ │ │ │ └── config.md │ │ │ └── waline │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ ├── leancloud-app-1.jpg │ │ │ │ └── leancloud-app-2.jpg │ │ │ │ └── config.md │ │ └── feed │ │ │ ├── README.md │ │ │ ├── channel.md │ │ │ ├── config.md │ │ │ ├── frontmatter.md │ │ │ ├── getter.md │ │ │ └── guide.md │ ├── development │ │ ├── README.md │ │ ├── active-header-links.md │ │ ├── git.md │ │ ├── palette.md │ │ ├── reading-time.md │ │ ├── rtl.md │ │ ├── sass-palette │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ ├── theme-data.md │ │ └── toc.md │ ├── features │ │ ├── README.md │ │ ├── assets │ │ │ ├── iconfont-add.png │ │ │ ├── iconfont-edit.png │ │ │ ├── iconfont-generate.png │ │ │ └── iconfont-new.png │ │ ├── back-to-top.md │ │ ├── catalog.md │ │ ├── copy-code.md │ │ ├── copyright.md │ │ ├── icon.md │ │ ├── medium-zoom.md │ │ ├── notice.md │ │ ├── nprogress.md │ │ ├── photo-swipe.md │ │ └── watermark.md │ ├── markdown │ │ ├── README.md │ │ ├── append-date.md │ │ ├── demo.snippet.md │ │ ├── links-check.md │ │ ├── markdown-chart │ │ │ ├── README.md │ │ │ ├── chartjs.md │ │ │ ├── echarts.md │ │ │ ├── flowchart.md │ │ │ ├── markmap.md │ │ │ ├── mermaid.md │ │ │ └── plantuml.md │ │ ├── markdown-container.md │ │ ├── markdown-ext.md │ │ ├── markdown-hint.md │ │ ├── markdown-image.md │ │ ├── markdown-include.md │ │ ├── markdown-math.md │ │ ├── markdown-preview.md │ │ ├── markdown-stylize.md │ │ ├── markdown-tab.md │ │ ├── prismjs.md │ │ ├── revealjs │ │ │ ├── README.md │ │ │ ├── demo.md │ │ │ └── themes.md │ │ └── shiki.md │ ├── pwa │ │ ├── README.md │ │ ├── pwa │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ └── remove-pwa.md │ ├── search │ │ ├── README.md │ │ ├── docsearch.md │ │ ├── guidelines.md │ │ ├── meilisearch.md │ │ ├── search.md │ │ └── slimsearch.md │ ├── seo │ │ ├── README.md │ │ ├── seo │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ └── sitemap │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ ├── frontmatter.md │ │ │ └── guide.md │ └── tools │ │ ├── README.md │ │ ├── cache.md │ │ ├── google-tag-manager.md │ │ ├── redirect.md │ │ └── register-components.md ├── themes │ ├── README.md │ ├── default │ │ ├── README.md │ │ ├── components.md │ │ ├── config.md │ │ ├── extending.md │ │ ├── frontmatter.md │ │ ├── locale.md │ │ ├── markdown.md │ │ ├── plugin.md │ │ └── styles.md │ └── guidelines.md ├── tools │ ├── README.md │ └── helper │ │ ├── README.md │ │ ├── client.md │ │ ├── node │ │ ├── bundler.md │ │ ├── locales.md │ │ └── page.md │ │ ├── shared.md │ │ └── style.md └── zh │ ├── README.md │ ├── plugins │ ├── README.md │ ├── ai │ │ ├── README.md │ │ └── llms.md │ ├── analytics │ │ ├── README.md │ │ ├── baidu-analytics.md │ │ ├── google-analytics.md │ │ └── umami-analytics.md │ ├── blog │ │ ├── README.md │ │ ├── blog │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ ├── comment │ │ │ ├── README.md │ │ │ ├── artalk │ │ │ │ ├── README.md │ │ │ │ └── config.md │ │ │ ├── giscus │ │ │ │ ├── README.md │ │ │ │ └── config.md │ │ │ ├── guide.md │ │ │ ├── twikoo │ │ │ │ ├── README.md │ │ │ │ └── config.md │ │ │ └── waline │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ ├── leancloud-1.png │ │ │ │ ├── leancloud-2.png │ │ │ │ └── leancloud-3.png │ │ │ │ └── config.md │ │ └── feed │ │ │ ├── README.md │ │ │ ├── channel.md │ │ │ ├── config.md │ │ │ ├── frontmatter.md │ │ │ ├── getter.md │ │ │ └── guide.md │ ├── development │ │ ├── README.md │ │ ├── active-header-links.md │ │ ├── git.md │ │ ├── palette.md │ │ ├── reading-time.md │ │ ├── rtl.md │ │ ├── sass-palette │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ ├── theme-data.md │ │ └── toc.md │ ├── features │ │ ├── README.md │ │ ├── assets │ │ │ ├── iconfont-add.png │ │ │ ├── iconfont-edit.png │ │ │ ├── iconfont-generate.png │ │ │ └── iconfont-new.png │ │ ├── back-to-top.md │ │ ├── catalog.md │ │ ├── copy-code.md │ │ ├── copyright.md │ │ ├── icon.md │ │ ├── medium-zoom.md │ │ ├── notice.md │ │ ├── nprogress.md │ │ ├── photo-swipe.md │ │ └── watermark.md │ ├── markdown │ │ ├── README.md │ │ ├── append-date.md │ │ ├── demo.snippet.md │ │ ├── links-check.md │ │ ├── markdown-chart │ │ │ ├── README.md │ │ │ ├── chartjs.md │ │ │ ├── echarts.md │ │ │ ├── flowchart.md │ │ │ ├── markmap.md │ │ │ ├── mermaid.md │ │ │ └── plantuml.md │ │ ├── markdown-container.md │ │ ├── markdown-ext.md │ │ ├── markdown-hint.md │ │ ├── markdown-image.md │ │ ├── markdown-include.md │ │ ├── markdown-math.md │ │ ├── markdown-preview.md │ │ ├── markdown-stylize.md │ │ ├── markdown-tab.md │ │ ├── prismjs.md │ │ ├── revealjs │ │ │ ├── README.md │ │ │ ├── demo.md │ │ │ └── themes.md │ │ └── shiki.md │ ├── pwa │ │ ├── README.md │ │ ├── pwa │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ └── remove-pwa.md │ ├── search │ │ ├── README.md │ │ ├── docsearch.md │ │ ├── guidelines.md │ │ ├── meilisearch.md │ │ ├── search.md │ │ └── slimsearch.md │ ├── seo │ │ ├── README.md │ │ ├── seo │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ └── guide.md │ │ └── sitemap │ │ │ ├── README.md │ │ │ ├── config.md │ │ │ ├── frontmatter.md │ │ │ └── guide.md │ └── tools │ │ ├── README.md │ │ ├── cache.md │ │ ├── google-tag-manager.md │ │ ├── redirect.md │ │ └── register-components.md │ ├── themes │ ├── README.md │ ├── default │ │ ├── README.md │ │ ├── components.md │ │ ├── config.md │ │ ├── extending.md │ │ ├── frontmatter.md │ │ ├── locale.md │ │ ├── markdown.md │ │ ├── plugin.md │ │ └── styles.md │ └── guidelines.md │ └── tools │ ├── README.md │ └── helper │ ├── README.md │ ├── client.md │ ├── node │ ├── bundler.md │ ├── locales.md │ └── page.md │ ├── shared.md │ └── style.md ├── e2e ├── docs │ ├── .vuepress │ │ ├── client.ts │ │ ├── components │ │ │ ├── ArticleList.vue │ │ │ ├── CssVariable.vue │ │ │ ├── GlobalComponent4.vue │ │ │ ├── GlobalComponent5.ts │ │ │ ├── GlobalComponent6.js │ │ │ └── ThemeData.vue │ │ ├── config.ts │ │ ├── global-components │ │ │ ├── GlobalComponent1.vue │ │ │ ├── GlobalComponent2.ts │ │ │ └── GlobalComponent3.js │ │ ├── layouts │ │ │ ├── Article.vue │ │ │ ├── Category.vue │ │ │ ├── Tag.vue │ │ │ └── Timeline.vue │ │ ├── notice.md │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── logo.png │ │ └── styles │ │ │ ├── default-config.scss │ │ │ ├── default-palette.scss │ │ │ ├── generator.scss │ │ │ ├── test-config.scss │ │ │ └── test-palette.scss │ ├── README.md │ ├── catalog │ │ ├── base.md │ │ ├── current.md │ │ └── index.md │ ├── copy-code │ │ └── README.md │ ├── copyright │ │ └── selection.md │ ├── feed │ │ ├── custom.md │ │ ├── demo.md │ │ └── exclude.md │ ├── hint │ │ ├── README.md │ │ └── custom.md │ ├── markdown.md │ ├── navbar │ │ ├── bar.md │ │ ├── foo.md │ │ └── index.md │ ├── notice │ │ ├── README.md │ │ ├── file.md │ │ └── fullscreen.md │ ├── photo-swipe │ │ ├── disabled.md │ │ └── enabled.md │ ├── posts │ │ ├── archive1.md │ │ ├── archive2.md │ │ ├── article1.md │ │ ├── article10.md │ │ ├── article11.md │ │ ├── article12.md │ │ ├── article2.md │ │ ├── article3.md │ │ ├── article4.md │ │ ├── article5.md │ │ ├── article6.md │ │ ├── article7.md │ │ ├── article8.md │ │ ├── article9.md │ │ ├── sticky.md │ │ └── sticky2.md │ ├── redirect │ │ ├── final.md │ │ └── to.md │ ├── register-components │ │ └── README.md │ ├── sass-palette │ │ └── README.md │ ├── seo │ │ └── README.md │ ├── sidebar │ │ ├── config │ │ │ ├── 1.md │ │ │ └── 2.md │ │ ├── frontmatter │ │ │ ├── config.md │ │ │ ├── disable.md │ │ │ └── heading.md │ │ └── heading │ │ │ ├── 1.md │ │ │ └── 2.md │ ├── sitemap │ │ ├── config-exclude.md │ │ ├── frontmatter-exclude.md │ │ ├── frontmatter.md │ │ └── meta-exclude.md │ ├── watermark │ │ ├── README.md │ │ └── disabled.md │ └── zh │ │ ├── README.md │ │ └── test.md ├── package.json ├── playwright.config.ts ├── tests │ ├── plugin-blog │ │ └── blog.spec.ts │ ├── plugin-copy-code │ │ └── copy-code.spec.ts │ ├── plugin-copyright │ │ └── copyright.spec.ts │ ├── plugin-feed │ │ └── feed.spec.ts │ ├── plugin-hint │ │ └── hint.spec.ts │ ├── plugin-notice │ │ └── notice.spec.ts │ ├── plugin-pwa │ │ └── manifest.spec.ts │ ├── plugin-redirect │ │ └── redirect.spec.ts │ ├── plugin-register-components │ │ └── register-components.spec.ts │ ├── plugin-sass-palette │ │ └── sass-palette.spec.ts │ ├── plugin-seo │ │ └── seo.spec.ts │ ├── plugin-sitemap │ │ └── sitemap.spec.ts │ ├── plugin-theme-data │ │ └── theme-data.spec.ts │ ├── plugin-watermark │ │ └── watermark.spec.ts │ └── theme-default │ │ ├── home.spec.ts │ │ ├── navbar.spec.ts │ │ └── sidebar.spec.ts └── utils │ └── env.ts ├── eslint.config.js ├── lerna.json ├── package.json ├── plugins ├── ai │ └── plugin-llms │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ └── node │ │ │ ├── constants.ts │ │ │ ├── generateLLMFriendlyDocs.ts │ │ │ ├── generateLLMsFullTxt.ts │ │ │ ├── generateLLMsTxt.ts │ │ │ ├── index.ts │ │ │ ├── llmsPlugin.ts │ │ │ ├── options.ts │ │ │ ├── resolveLLMPages.ts │ │ │ ├── templateGetter.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ ├── expandTemplate.ts │ │ │ ├── extractTitle.ts │ │ │ ├── generateLink.ts │ │ │ ├── generateTOCLink.ts │ │ │ ├── getSizeOf.ts │ │ │ ├── index.ts │ │ │ ├── logger.ts │ │ │ └── stripExt.ts │ │ ├── tests │ │ └── stripExt.spec.ts │ │ └── tsconfig.build.json ├── analytics │ ├── plugin-baidu-analytics │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useBaiduAnalytics.ts │ │ │ │ ├── config.ts │ │ │ │ └── index.ts │ │ │ └── node │ │ │ │ ├── baiduAnalyticsPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-google-analytics │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useGoogleAnalytics.ts │ │ │ │ ├── config.ts │ │ │ │ └── index.ts │ │ │ ├── node │ │ │ │ ├── googleAnalyticsPlugin.ts │ │ │ │ └── index.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ └── tsconfig.build.json │ └── plugin-umami-analytics │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── client │ │ │ ├── composables │ │ │ │ ├── index.ts │ │ │ │ └── useUmamiAnalytics.ts │ │ │ ├── config.ts │ │ │ └── index.ts │ │ ├── node │ │ │ ├── index.ts │ │ │ └── umamiAnalyticsPlugin.ts │ │ └── shared │ │ │ ├── index.ts │ │ │ └── options.ts │ │ └── tsconfig.build.json ├── blog │ ├── plugin-blog │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useBlogCategory.ts │ │ │ │ │ └── useBlogType.ts │ │ │ │ ├── index.ts │ │ │ │ └── typings.ts │ │ │ ├── node │ │ │ │ ├── blogPlugin.ts │ │ │ │ ├── category │ │ │ │ │ ├── getCategory.ts │ │ │ │ │ ├── getCategoryOptions.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── prepareCategoriesMap.ts │ │ │ │ ├── getPagesMap.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── options.ts │ │ │ │ ├── store.ts │ │ │ │ ├── type │ │ │ │ │ ├── getType.ts │ │ │ │ │ ├── getTypeOptions.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── prepareTypesMap.ts │ │ │ │ └── utils.ts │ │ │ ├── shared │ │ │ │ ├── frontmatter.ts │ │ │ │ ├── index.ts │ │ │ │ └── internal.ts │ │ │ ├── shims-category.d.ts │ │ │ ├── shims-store.d.ts │ │ │ └── shims-type.d.ts │ │ └── tsconfig.build.json │ ├── plugin-comment │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── ArtalkComment.ts │ │ │ │ │ ├── CommentService.ts │ │ │ │ │ ├── GiscusComment.ts │ │ │ │ │ ├── TwikooComment.ts │ │ │ │ │ └── WalineComment.ts │ │ │ │ ├── config.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── comment.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pageview │ │ │ │ │ ├── artalk.ts │ │ │ │ │ ├── noop.ts │ │ │ │ │ ├── typings.ts │ │ │ │ │ └── waline.ts │ │ │ │ └── styles │ │ │ │ │ ├── base.scss │ │ │ │ │ ├── giscus.scss │ │ │ │ │ └── waline.scss │ │ │ ├── node │ │ │ │ ├── commentPlugin.ts │ │ │ │ ├── getProvider.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── options.ts │ │ │ │ └── utils.ts │ │ │ ├── shared │ │ │ │ ├── frontmatter.ts │ │ │ │ ├── index.ts │ │ │ │ └── options │ │ │ │ │ ├── artalk.ts │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── disable.ts │ │ │ │ │ ├── giscus.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── options.ts │ │ │ │ │ ├── twikoo.ts │ │ │ │ │ └── waline.ts │ │ │ ├── shims-artalk.d.ts │ │ │ ├── shims-comment-provider.d.ts │ │ │ └── shims-twikoo.d.ts │ │ └── tsconfig.build.json │ └── plugin-feed │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── node │ │ │ ├── addFeedLinks.ts │ │ │ ├── feed │ │ │ │ ├── index.ts │ │ │ │ ├── item.ts │ │ │ │ └── store.ts │ │ │ ├── feedPlugin.ts │ │ │ ├── generator │ │ │ │ ├── atom │ │ │ │ │ ├── index.ts │ │ │ │ │ └── typings.ts │ │ │ │ ├── index.ts │ │ │ │ ├── json │ │ │ │ │ ├── index.ts │ │ │ │ │ └── typings.ts │ │ │ │ └── rss │ │ │ │ │ ├── index.ts │ │ │ │ │ └── typings.ts │ │ │ ├── getFeedChannelOptions.ts │ │ │ ├── getFeedFilenames.ts │ │ │ ├── getFeedFiles.ts │ │ │ ├── getFeedLinks.ts │ │ │ ├── getFeedOptions.ts │ │ │ ├── getTemplates.ts │ │ │ ├── index.ts │ │ │ ├── output.ts │ │ │ └── utils │ │ │ │ ├── encodeXML.ts │ │ │ │ ├── getAuthor.ts │ │ │ │ ├── getCategory.ts │ │ │ │ ├── getMineType.ts │ │ │ │ ├── getUrl.ts │ │ │ │ ├── index.ts │ │ │ │ └── logger.ts │ │ └── typings │ │ │ ├── feed.ts │ │ │ ├── frontmatter.ts │ │ │ ├── index.ts │ │ │ ├── internal.ts │ │ │ ├── options.ts │ │ │ └── page.ts │ │ ├── templates │ │ ├── atom.xsl │ │ └── rss.xsl │ │ ├── tests │ │ └── node │ │ │ └── encode.spec.ts │ │ └── tsconfig.build.json ├── development │ ├── plugin-active-header-links │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useActiveHeaderLinks.ts │ │ │ │ ├── config.ts │ │ │ │ └── index.ts │ │ │ └── node │ │ │ │ ├── activeHeaderLinksPlugin.ts │ │ │ │ └── index.ts │ │ └── tsconfig.build.json │ ├── plugin-git │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── GitChangelog.ts │ │ │ │ │ ├── GitContributors.ts │ │ │ │ │ ├── VPHeader.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useChangelog.ts │ │ │ │ │ ├── useContributors.ts │ │ │ │ │ ├── useGitLocales.ts │ │ │ │ │ └── useLastUpdated.ts │ │ │ │ ├── index.ts │ │ │ │ ├── options.ts │ │ │ │ ├── styles │ │ │ │ │ ├── changelog.scss │ │ │ │ │ ├── contributors.scss │ │ │ │ │ └── vars.css │ │ │ │ └── utils │ │ │ │ │ ├── index.ts │ │ │ │ │ └── resolveRepoLink.ts │ │ │ ├── node │ │ │ │ ├── gitPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ ├── resolveChangelog.ts │ │ │ │ ├── resolveContributors.ts │ │ │ │ ├── typings.ts │ │ │ │ └── utils │ │ │ │ │ ├── checkGitRepo.ts │ │ │ │ │ ├── checkGithubUsername.ts │ │ │ │ │ ├── digestSHA256.ts │ │ │ │ │ ├── getCommits.ts │ │ │ │ │ ├── getContributorInfo.ts │ │ │ │ │ ├── getUserNameWithNoreplyEmail.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── inferGitProvider.ts │ │ │ │ │ ├── injectGitOptions.ts │ │ │ │ │ ├── logger.ts │ │ │ │ │ └── sanitizeHTML.ts │ │ │ └── shared │ │ │ │ └── index.ts │ │ ├── tests │ │ │ └── node │ │ │ │ └── sanitizeHTML.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-palette │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── palettePlugin.ts │ │ │ │ ├── preparePaletteFile.ts │ │ │ │ ├── prepareStyleFile.ts │ │ │ │ └── presetOptions.ts │ │ ├── tests │ │ │ ├── __fixtures__ │ │ │ │ ├── css │ │ │ │ │ ├── index.css │ │ │ │ │ └── palette.css │ │ │ │ ├── less │ │ │ │ │ ├── index.less │ │ │ │ │ └── palette.less │ │ │ │ ├── sass │ │ │ │ │ ├── index.scss │ │ │ │ │ └── palette.scss │ │ │ │ └── stylus │ │ │ │ │ ├── index.styl │ │ │ │ │ └── palette.styl │ │ │ └── node │ │ │ │ ├── preparePaletteFile.spec.ts │ │ │ │ └── prepareStyleFile.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-reading-time │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useReadingTimeData.ts │ │ │ │ │ └── useReadingTimeLocale.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils │ │ │ │ │ ├── index.ts │ │ │ │ │ └── locales.ts │ │ │ ├── node │ │ │ │ ├── getReadingTime.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── options.ts │ │ │ │ ├── readingTimePlugin.ts │ │ │ │ └── useReadingTimePlugin.ts │ │ │ └── shared │ │ │ │ ├── data.ts │ │ │ │ ├── index.ts │ │ │ │ └── locales.ts │ │ ├── tests │ │ │ └── node │ │ │ │ └── readingTime.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-rtl │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useRtl.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils │ │ │ │ │ └── index.ts │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ └── rtlPlugin.ts │ │ └── tsconfig.build.json │ ├── plugin-sass-palette │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── injectScssConfigModule.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepare │ │ │ │ ├── index.ts │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ ├── prepareConfigSass.ts │ │ │ │ ├── prepareInjectSass.ts │ │ │ │ ├── preparePaletteSass.ts │ │ │ │ └── prepareStyleSass.ts │ │ │ │ ├── removePalettePlugin.ts │ │ │ │ ├── sassPalettePlugin.ts │ │ │ │ ├── useSassPalettePlugin.ts │ │ │ │ └── utils.ts │ │ ├── styles │ │ │ ├── default │ │ │ │ └── config.scss │ │ │ ├── empty.scss │ │ │ └── helper.scss │ │ └── tsconfig.build.json │ ├── plugin-theme-data │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── setupDevtools.ts │ │ │ │ │ ├── useThemeData.ts │ │ │ │ │ └── useThemeLocaleData.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── themeData.d.ts │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── prepareThemeData.ts │ │ │ │ └── themeDataPlugin.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── themeData.ts │ │ └── tsconfig.build.json │ └── plugin-toc │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── client │ │ │ ├── components │ │ │ │ ├── Toc.ts │ │ │ │ └── index.ts │ │ │ ├── config.ts │ │ │ └── index.ts │ │ ├── node │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ └── tocPlugin.ts │ │ └── shared │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── tsconfig.build.json ├── features │ ├── plugin-back-to-top │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── BackToTop.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── styles │ │ │ │ │ ├── back-to-top.scss │ │ │ │ │ ├── back-to-top.svg │ │ │ │ │ └── vars.css │ │ │ │ └── utils.ts │ │ │ ├── node │ │ │ │ ├── backToTopPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── logger.ts │ │ │ │ └── options.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── locales.ts │ │ └── tsconfig.build.json │ ├── plugin-catalog │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ └── Catalog.ts │ │ │ │ ├── config.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useCatalogInfoGetter.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles │ │ │ │ │ ├── catalog.scss │ │ │ │ │ └── vars.css │ │ │ ├── node │ │ │ │ ├── catalogPlugin.ts │ │ │ │ ├── generateCatalogPage.ts │ │ │ │ ├── getTitleFromFilename.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── logger.ts │ │ │ │ └── options.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── locales.ts │ │ ├── tests │ │ │ └── node │ │ │ │ └── getTitleFromFilename.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-copy-code │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useCopyCode.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── styles │ │ │ │ │ ├── copy-code.scss │ │ │ │ │ └── vars.css │ │ │ │ └── types.ts │ │ │ ├── node │ │ │ │ ├── copyCodePlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── logger.ts │ │ │ │ └── options.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── locales.ts │ │ └── tsconfig.build.json │ ├── plugin-copyright │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── setupCopyright.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── typings.ts │ │ │ ├── node │ │ │ │ ├── copyrightPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ └── options.ts │ │ │ └── shared │ │ │ │ ├── data.ts │ │ │ │ ├── frontmatter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-icon │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── VPIcon.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles │ │ │ │ │ └── vp-icon.scss │ │ │ ├── node │ │ │ │ ├── getAssetsType.ts │ │ │ │ ├── getIconLinks.ts │ │ │ │ ├── getIconPrefix.ts │ │ │ │ ├── iconPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepareConfigFile.ts │ │ │ │ └── utils.ts │ │ │ └── shared │ │ │ │ └── index.ts │ │ └── tsconfig.build.json │ ├── plugin-medium-zoom │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useMediumZoom.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles │ │ │ │ │ ├── medium-zoom.scss │ │ │ │ │ └── vars.css │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── mediumZoomPlugin.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-notice │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── CloseIcon.ts │ │ │ │ │ ├── Notice.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useNoticeOptions.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── noticeOptions.d.ts │ │ │ │ └── styles │ │ │ │ │ ├── notice.scss │ │ │ │ │ └── vars.css │ │ │ ├── node │ │ │ │ ├── getNoticeOptions.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── noticePlugin.ts │ │ │ │ ├── options.ts │ │ │ │ └── prepareNoticeOptions.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── notice.ts │ │ └── tsconfig.build.json │ ├── plugin-nprogress │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useNprogress.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── nprogress.ts │ │ │ │ └── styles │ │ │ │ │ ├── nprogress.scss │ │ │ │ │ └── vars.css │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ └── nprogressPlugin.ts │ │ └── tsconfig.build.json │ ├── plugin-photo-swipe │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ └── usePhotoSwipe.ts │ │ │ │ ├── config.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── index.ts │ │ │ │ │ └── photo-swipe.ts │ │ │ │ ├── index.ts │ │ │ │ ├── styles │ │ │ │ │ ├── photo-swipe.css │ │ │ │ │ └── vars.css │ │ │ │ ├── typings.ts │ │ │ │ └── utils │ │ │ │ │ ├── createPhotoSwipe.ts │ │ │ │ │ ├── images.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── loadingIcon.ts │ │ │ │ │ └── setupPhotoSwipe.ts │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── options.ts │ │ │ │ └── photoSwipePlugin.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── locales.ts │ │ └── tsconfig.build.json │ └── plugin-watermark │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── client │ │ │ ├── composables │ │ │ │ ├── index.ts │ │ │ │ └── setupWatermark.ts │ │ │ ├── config.ts │ │ │ ├── helper │ │ │ │ ├── index.ts │ │ │ │ └── watermark.ts │ │ │ └── index.ts │ │ ├── node │ │ │ ├── index.ts │ │ │ ├── logger.ts │ │ │ ├── options.ts │ │ │ └── watermarkPlugin.ts │ │ └── shared │ │ │ ├── index.ts │ │ │ └── options.ts │ │ └── tsconfig.build.json ├── markdown │ ├── plugin-append-date │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── appendDate.ts │ │ │ │ ├── appendDatePlugin.ts │ │ │ │ ├── checkGitPlugin.ts │ │ │ │ ├── formatDate.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ └── options.ts │ │ ├── tests │ │ │ └── node │ │ │ │ └── formatDate.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-links-check │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── checkMarkdownLink.ts │ │ │ │ ├── index.ts │ │ │ │ ├── linksCheckPlugin.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-chart │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── ChartJS.ts │ │ │ │ │ ├── ECharts.ts │ │ │ │ │ ├── FlowChart.ts │ │ │ │ │ ├── MarkMap.ts │ │ │ │ │ └── Mermaid.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── echarts.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── mermaid.ts │ │ │ │ ├── index.ts │ │ │ │ ├── styles │ │ │ │ │ ├── chartjs.scss │ │ │ │ │ ├── echarts.scss │ │ │ │ │ ├── flowchart.scss │ │ │ │ │ ├── markmap.scss │ │ │ │ │ └── mermaid.scss │ │ │ │ ├── typings │ │ │ │ │ ├── index.ts │ │ │ │ │ └── mermaid.ts │ │ │ │ └── utils │ │ │ │ │ ├── encodeSVG.ts │ │ │ │ │ ├── flowchart-presets │ │ │ │ │ ├── ant.ts │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── pie.ts │ │ │ │ │ └── vue.ts │ │ │ │ │ ├── icons.ts │ │ │ │ │ └── index.ts │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdown-it-plugins │ │ │ │ │ ├── chartjs.ts │ │ │ │ │ ├── echarts.ts │ │ │ │ │ ├── flowchart.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markmap.ts │ │ │ │ │ ├── mermaid.ts │ │ │ │ │ └── plantuml.ts │ │ │ │ ├── markdownChartPlugin.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepareConfigFile.ts │ │ │ │ └── utils.ts │ │ │ └── shims.d.ts │ │ ├── tests │ │ │ └── node │ │ │ │ ├── __snapshots__ │ │ │ │ ├── chartjs.spec.ts.snap │ │ │ │ ├── echarts.spec.ts.snap │ │ │ │ ├── flowchart.spec.ts.snap │ │ │ │ ├── markmap.spec.ts.snap │ │ │ │ └── mermaid.spec.ts.snap │ │ │ │ ├── chartjs.spec.ts │ │ │ │ ├── echarts.spec.ts │ │ │ │ ├── flowchart.spec.ts │ │ │ │ ├── markmap.spec.ts │ │ │ │ └── mermaid.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-container │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdown-it-container.d.ts │ │ │ │ ├── markdownContainerPlugin.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-ext │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ └── styles │ │ │ │ │ ├── footnote.scss │ │ │ │ │ └── tasklist.scss │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdown-it-plugins │ │ │ │ ├── component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── utils.ts │ │ │ │ └── vPre.ts │ │ │ │ ├── markdownExtPlugin.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepreClientConfigFile.ts │ │ │ │ └── utils.ts │ │ ├── tests │ │ │ └── node │ │ │ │ ├── __snapshots__ │ │ │ │ └── component.spec.ts.snap │ │ │ │ ├── component.spec.ts │ │ │ │ └── vPre.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-hint │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── config.ts │ │ │ │ └── styles │ │ │ │ │ ├── _icons.scss │ │ │ │ │ ├── _svg.scss │ │ │ │ │ ├── hint.scss │ │ │ │ │ └── vars.css │ │ │ └── node │ │ │ │ ├── alert.ts │ │ │ │ ├── cleanMarkdownEnv.ts │ │ │ │ ├── hint.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── markdownHintPlugin.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-image │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ └── styles │ │ │ │ │ ├── figure.scss │ │ │ │ │ └── mark.scss │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdownImagePlugin.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepare │ │ │ │ ├── index.ts │ │ │ │ └── prepareClientConfigFile.ts │ │ │ │ └── utils.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-include │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdownIncludePlugin.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-math │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── composables │ │ │ │ │ └── useKatexCopy.ts │ │ │ │ └── styles │ │ │ │ │ └── katex.scss │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdownMathPlugin.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepare │ │ │ │ ├── index.ts │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ └── prepareMathjaxStyle.ts │ │ │ │ └── utils.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-preview │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── VPPreview.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles │ │ │ │ │ ├── vars.css │ │ │ │ │ └── vp-preview.scss │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── markdownPreviewPlugin.ts │ │ │ │ ├── options.ts │ │ │ │ └── preview.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ └── locales.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-stylize │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ └── node │ │ │ │ ├── index.ts │ │ │ │ ├── markdownStylizePlugin.ts │ │ │ │ ├── options.ts │ │ │ │ └── prepareClientConfigFile.ts │ │ └── tsconfig.build.json │ ├── plugin-markdown-tab │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── CodeTabs.ts │ │ │ │ │ ├── Tabs.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles │ │ │ │ │ ├── code-tabs.scss │ │ │ │ │ ├── tabs.scss │ │ │ │ │ └── vars.css │ │ │ └── node │ │ │ │ ├── codeTabs.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdownTabPlugin.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ ├── tabs.ts │ │ │ │ └── utils.ts │ │ ├── tests │ │ │ └── node │ │ │ │ ├── __snapshots__ │ │ │ │ ├── codeTabs.spec.ts.snap │ │ │ │ └── tabs.spec.ts.snap │ │ │ │ ├── codeTabs.spec.ts │ │ │ │ └── tabs.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-prismjs │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── scripts │ │ │ └── generateThemeFiles.ts │ │ ├── src │ │ │ ├── client │ │ │ │ └── styles │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ └── themes │ │ │ │ │ ├── ateliersulphurpool-light.scss │ │ │ │ │ ├── atom-dark.scss │ │ │ │ │ ├── cb.scss │ │ │ │ │ ├── coldark-cold.scss │ │ │ │ │ ├── coldark-dark.scss │ │ │ │ │ ├── coy.scss │ │ │ │ │ ├── dark.scss │ │ │ │ │ ├── dracula.scss │ │ │ │ │ ├── duotone-dark.scss │ │ │ │ │ ├── duotone-earth.scss │ │ │ │ │ ├── duotone-forest.scss │ │ │ │ │ ├── duotone-light.scss │ │ │ │ │ ├── duotone-sea.scss │ │ │ │ │ ├── duotone-space.scss │ │ │ │ │ ├── ghcolors.scss │ │ │ │ │ ├── gruvbox-dark.scss │ │ │ │ │ ├── gruvbox-light.scss │ │ │ │ │ ├── holi.scss │ │ │ │ │ ├── hopscotch.scss │ │ │ │ │ ├── lucario.scss │ │ │ │ │ ├── material-dark.scss │ │ │ │ │ ├── material-light.scss │ │ │ │ │ ├── material-oceanic.scss │ │ │ │ │ ├── night-owl.scss │ │ │ │ │ ├── nord.scss │ │ │ │ │ ├── one-dark.scss │ │ │ │ │ ├── one-light.scss │ │ │ │ │ ├── pojoaque.scss │ │ │ │ │ ├── shades-of-purple.scss │ │ │ │ │ ├── solarized-dark-atom.scss │ │ │ │ │ ├── tomorrow.scss │ │ │ │ │ ├── vs.scss │ │ │ │ │ ├── vsc-dark-plus.scss │ │ │ │ │ ├── xonokai.scss │ │ │ │ │ └── z-touch.scss │ │ │ └── node │ │ │ │ ├── getTheme.ts │ │ │ │ ├── index.ts │ │ │ │ ├── loadLanguages.ts │ │ │ │ ├── markdown │ │ │ │ ├── highlightPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ └── preWrapperPlugin.ts │ │ │ │ ├── options.ts │ │ │ │ ├── parser │ │ │ │ ├── createNotationRule.ts │ │ │ │ ├── getCodeParser.ts │ │ │ │ ├── highlightLines.ts │ │ │ │ ├── highlightWord.ts │ │ │ │ ├── index.ts │ │ │ │ ├── notation.ts │ │ │ │ └── whitespace.ts │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ ├── prismjsPlugin.ts │ │ │ │ ├── resolveHighlighter.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils │ │ │ │ ├── escapeRegExp.ts │ │ │ │ ├── index.ts │ │ │ │ ├── languages.ts │ │ │ │ └── resolveLanguage.ts │ │ ├── tests │ │ │ ├── __snapshots__ │ │ │ │ ├── getCodeParser.spec.ts.snap │ │ │ │ └── prismjs-preWrapper.spec.ts.snap │ │ │ ├── getCodeParser.spec.ts │ │ │ └── prismjs-preWrapper.spec.ts │ │ └── tsconfig.build.json │ ├── plugin-revealjs │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── RevealJs.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── index.ts │ │ │ │ │ └── revealJs.ts │ │ │ │ ├── index.ts │ │ │ │ ├── layouts │ │ │ │ │ ├── SlidePage.ts │ │ │ │ │ └── index.ts │ │ │ │ └── styles │ │ │ │ │ ├── _normalize.scss │ │ │ │ │ ├── base.scss │ │ │ │ │ ├── fonts │ │ │ │ │ ├── lato.scss │ │ │ │ │ ├── league-gothic.scss │ │ │ │ │ ├── montserrat.scss │ │ │ │ │ ├── news-cycle.scss │ │ │ │ │ ├── open-sans.scss │ │ │ │ │ ├── quicksand.scss │ │ │ │ │ ├── source-sans-pro.scss │ │ │ │ │ └── ubuntu.scss │ │ │ │ │ ├── reveal-js.scss │ │ │ │ │ ├── slide-page.scss │ │ │ │ │ ├── themes │ │ │ │ │ ├── auto.scss │ │ │ │ │ ├── beige.scss │ │ │ │ │ ├── black.scss │ │ │ │ │ ├── blood.scss │ │ │ │ │ ├── helper │ │ │ │ │ │ ├── _helper.scss │ │ │ │ │ │ └── _vars.scss │ │ │ │ │ ├── highlight │ │ │ │ │ │ ├── _dark.scss │ │ │ │ │ │ ├── _index.scss │ │ │ │ │ │ └── _light.scss │ │ │ │ │ ├── league.scss │ │ │ │ │ ├── moon.scss │ │ │ │ │ ├── night.scss │ │ │ │ │ ├── serif.scss │ │ │ │ │ ├── simple.scss │ │ │ │ │ ├── sky.scss │ │ │ │ │ ├── solarized.scss │ │ │ │ │ └── white.scss │ │ │ │ │ └── vars.css │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepare │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ │ └── prepareRevealJsEntry.ts │ │ │ │ ├── revealJs.ts │ │ │ │ ├── revealJsPlugin.ts │ │ │ │ └── utils.ts │ │ │ ├── shared │ │ │ │ ├── index.ts │ │ │ │ └── theme.ts │ │ │ └── shims.d.ts │ │ ├── tests │ │ │ └── node │ │ │ │ ├── __snapshots__ │ │ │ │ └── revealJs.spec.ts.snap │ │ │ │ └── revealJs.spec.ts │ │ └── tsconfig.build.json │ └── plugin-shiki │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── client │ │ │ └── styles │ │ │ │ └── shiki.scss │ │ └── node │ │ │ ├── index.ts │ │ │ ├── markdown │ │ │ ├── highlighter │ │ │ │ ├── createMarkdownFilePathGetter.ts │ │ │ │ ├── createShikiHighlighter.ts │ │ │ │ ├── getHighLightFunction.ts │ │ │ │ ├── getLanguage.ts │ │ │ │ ├── handleMustache.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── preWrapperPlugin.ts │ │ │ ├── options.ts │ │ │ ├── prepareClientConfigFile.ts │ │ │ ├── resolveLang.ts │ │ │ ├── shikiPlugin.ts │ │ │ ├── transformers │ │ │ ├── getTransformers.ts │ │ │ ├── index.ts │ │ │ └── vuepressTransformers.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── tests │ │ ├── __snapshots__ │ │ │ └── shiki-preWrapper.spec.ts.snap │ │ └── shiki-preWrapper.spec.ts │ │ └── tsconfig.build.json ├── pwa │ ├── plugin-pwa │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── PwaFoundPopup.ts │ │ │ │ │ ├── PwaInstall.ts │ │ │ │ │ ├── PwaInstallModal.ts │ │ │ │ │ ├── PwaReadyPopup.ts │ │ │ │ │ ├── icons.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── setupPwa.ts │ │ │ │ │ ├── setupViewPoint.ts │ │ │ │ │ ├── usePwaEvent.ts │ │ │ │ │ └── useRegisterSW.ts │ │ │ │ ├── index.ts │ │ │ │ ├── styles │ │ │ │ │ ├── modal.scss │ │ │ │ │ ├── popup.scss │ │ │ │ │ └── vars.css │ │ │ │ ├── types.ts │ │ │ │ └── utils │ │ │ │ │ ├── forceUpdate.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── registerSW.ts │ │ │ │ │ ├── skipWaiting.ts │ │ │ │ │ └── unregisterSW.ts │ │ │ ├── node │ │ │ │ ├── generateManifest.ts │ │ │ │ ├── generateServiceWorker.ts │ │ │ │ ├── getManifest.ts │ │ │ │ ├── helper.ts │ │ │ │ ├── index.ts │ │ │ │ ├── injectLinksToHead.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── options.ts │ │ │ │ ├── prepareClientConfigFile.ts │ │ │ │ └── pwaPlugin.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ └── manifest.ts │ │ ├── tests │ │ │ └── node │ │ │ │ └── injectLinksToHead.spec.ts │ │ └── tsconfig.build.json │ └── plugin-remove-pwa │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ └── node │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ ├── removePwaPlugin.ts │ │ │ └── serviceWorkerContent.ts │ │ └── tsconfig.build.json ├── search │ ├── plugin-docsearch │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── DocSearch.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useDocSearchHotkeyListener.ts │ │ │ │ │ └── useDocSearchSlim.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── docsearch.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── shims.d.ts │ │ │ │ ├── styles │ │ │ │ │ ├── docsearch.scss │ │ │ │ │ └── vars.scss │ │ │ │ └── utils │ │ │ │ │ ├── getFacetFilters.ts │ │ │ │ │ ├── getSearchButtonTemplate.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── pollToOpenDocSearch.ts │ │ │ │ │ └── preconnectToAlgolia.ts │ │ │ ├── node │ │ │ │ ├── docsearchPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── prepareClientConfig.ts │ │ │ │ └── utils.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ └── options.ts │ │ └── tsconfig.build.json │ ├── plugin-meilisearch │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── cli │ │ │ │ ├── generateScraperConfig.ts │ │ │ │ ├── index.ts │ │ │ │ ├── shouldRescrape.ts │ │ │ │ └── utils.ts │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── MeiliSearch.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── config.ts │ │ │ │ ├── shims.d.ts │ │ │ │ ├── styles │ │ │ │ │ └── vars.css │ │ │ │ └── utils │ │ │ │ │ ├── getSearchButtonTemplate.ts │ │ │ │ │ └── index.ts │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ └── meilisearchPlugin.ts │ │ │ ├── shared │ │ │ │ └── index.ts │ │ │ └── shim.d.ts │ │ └── tsconfig.build.json │ ├── plugin-search │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── SearchBox.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── composables │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useSearchIndex.ts │ │ │ │ │ ├── useSearchSuggestions.ts │ │ │ │ │ └── useSuggestionsFocus.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── searchIndex.d.ts │ │ │ │ ├── styles │ │ │ │ │ ├── search.scss │ │ │ │ │ ├── search.svg │ │ │ │ │ └── vars.css │ │ │ │ ├── types.ts │ │ │ │ └── utils │ │ │ │ │ ├── index.ts │ │ │ │ │ └── isQueryMatched.ts │ │ │ ├── node │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ ├── prepareSearchIndex.ts │ │ │ │ └── searchPlugin.ts │ │ │ └── shared │ │ │ │ ├── index.ts │ │ │ │ ├── locales.ts │ │ │ │ └── searchIndex.ts │ │ └── tsconfig.build.json │ └── plugin-slimsearch │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── client │ │ │ ├── components │ │ │ │ ├── SearchBox.ts │ │ │ │ ├── SearchKeyHints.ts │ │ │ │ ├── SearchLoading.ts │ │ │ │ ├── SearchModal.ts │ │ │ │ ├── SearchResult.ts │ │ │ │ └── icons.ts │ │ │ ├── composables │ │ │ │ ├── index.ts │ │ │ │ ├── useActiveState.ts │ │ │ │ ├── useArrayCycle.ts │ │ │ │ ├── useMobile.ts │ │ │ │ ├── useQueryHistory.ts │ │ │ │ ├── useResultHistory.ts │ │ │ │ ├── useResults.ts │ │ │ │ └── useSuggestions.ts │ │ │ ├── config.ts │ │ │ ├── define.ts │ │ │ ├── helpers │ │ │ │ ├── index.ts │ │ │ │ └── search.ts │ │ │ ├── icons │ │ │ │ ├── closeIcon.ts │ │ │ │ ├── index.ts │ │ │ │ └── keyIcons.ts │ │ │ ├── index.ts │ │ │ ├── styles │ │ │ │ ├── search-box.scss │ │ │ │ ├── search-modal.scss │ │ │ │ └── search-result.scss │ │ │ ├── typings │ │ │ │ ├── index.ts │ │ │ │ ├── result.ts │ │ │ │ └── worker.ts │ │ │ ├── utils │ │ │ │ ├── createSearchWorker.ts │ │ │ │ ├── getResultPath.ts │ │ │ │ ├── index.ts │ │ │ │ └── querySplitter.ts │ │ │ ├── worker-utils │ │ │ │ ├── getMatchedContent.ts │ │ │ │ ├── getSearchResults.ts │ │ │ │ ├── getSuggestions.ts │ │ │ │ └── index.ts │ │ │ └── worker.ts │ │ ├── node │ │ │ ├── generateIndex.ts │ │ │ ├── generateWorker.ts │ │ │ ├── index.ts │ │ │ ├── locales.ts │ │ │ ├── options.ts │ │ │ ├── pathStore.ts │ │ │ ├── prepare.ts │ │ │ ├── slimsearchPlugin.ts │ │ │ └── utils.ts │ │ ├── shared │ │ │ ├── data.ts │ │ │ ├── formatter.ts │ │ │ ├── index.ts │ │ │ └── locales.ts │ │ ├── shims.d.ts │ │ └── worker │ │ │ └── index.ts │ │ ├── tests │ │ ├── __fixtures__ │ │ │ ├── src │ │ │ │ ├── demo.md │ │ │ │ ├── example.md │ │ │ │ ├── single.md │ │ │ │ ├── tagwithoutTitle.md │ │ │ │ └── zh.md │ │ │ └── theme │ │ │ │ └── empty.ts │ │ ├── __snapshots__ │ │ │ └── generateIndex.spec.ts.snap │ │ ├── generateIndex.spec.ts │ │ ├── getMatchedContent.spec.ts │ │ └── querySliptter.spec.ts │ │ └── tsconfig.build.json ├── seo │ ├── plugin-seo │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ │ ├── node │ │ │ │ ├── appendHead.ts │ │ │ │ ├── appendSEO.ts │ │ │ │ ├── generateDescription.ts │ │ │ │ ├── generateRobotsTxt.ts │ │ │ │ ├── getJSONLDInfo.ts │ │ │ │ ├── getOGPInfo.ts │ │ │ │ ├── index.ts │ │ │ │ ├── options.ts │ │ │ │ ├── seoPlugin.ts │ │ │ │ └── utils │ │ │ │ │ ├── getAlternatePaths.ts │ │ │ │ │ ├── getAuthor.ts │ │ │ │ │ ├── getCover.ts │ │ │ │ │ ├── getImages.ts │ │ │ │ │ ├── getLinks.ts │ │ │ │ │ ├── getUrl.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── logger.ts │ │ │ └── typings │ │ │ │ ├── frontmatter.ts │ │ │ │ ├── helper.ts │ │ │ │ ├── index.ts │ │ │ │ ├── ogp.ts │ │ │ │ └── schema.ts │ │ ├── tests │ │ │ ├── __fixtures__ │ │ │ │ ├── src │ │ │ │ │ ├── README.md │ │ │ │ │ ├── description.md │ │ │ │ │ ├── example.md │ │ │ │ │ ├── excerpt.md │ │ │ │ │ └── zh │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── description.md │ │ │ │ │ │ ├── example.md │ │ │ │ │ │ └── excerpt.md │ │ │ │ └── theme │ │ │ │ │ └── empty.ts │ │ │ └── node │ │ │ │ ├── __snapshots__ │ │ │ │ └── description.spec.ts.snap │ │ │ │ └── description.spec.ts │ │ └── tsconfig.build.json │ └── plugin-sitemap │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── rollup.config.ts │ │ ├── src │ │ ├── node │ │ │ ├── getInfo.ts │ │ │ ├── getSitemap.ts │ │ │ ├── getSitemapTemplate.ts │ │ │ ├── index.ts │ │ │ ├── logger.ts │ │ │ ├── outputSitemap.ts │ │ │ └── sitemapPlugin.ts │ │ └── typings │ │ │ ├── frontmatter.ts │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ └── sitemap.ts │ │ ├── templates │ │ └── sitemap.xsl │ │ └── tsconfig.build.json └── tools │ ├── plugin-cache │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ │ └── node │ │ │ ├── cachePlugin.ts │ │ │ ├── highlightCache.ts │ │ │ ├── index.ts │ │ │ ├── renderCache.ts │ │ │ └── utils.ts │ └── tsconfig.build.json │ ├── plugin-google-tag-manager │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ │ └── node │ │ │ ├── googleTagManagerPlugin.ts │ │ │ └── index.ts │ └── tsconfig.build.json │ ├── plugin-redirect │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ │ ├── cli │ │ │ └── index.ts │ │ ├── client │ │ │ ├── components │ │ │ │ ├── RedirectModal.ts │ │ │ │ └── index.ts │ │ │ ├── composables │ │ │ │ ├── index.ts │ │ │ │ ├── setupDevServerRedirect.ts │ │ │ │ ├── setupRedirect.ts │ │ │ │ └── useRedirectInfo.ts │ │ │ ├── config.ts │ │ │ ├── index.ts │ │ │ ├── styles │ │ │ │ ├── redirect-modal.scss │ │ │ │ └── vars.css │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── index.ts │ │ │ │ └── storage.ts │ │ ├── node │ │ │ ├── ensureRootHomePage.ts │ │ │ ├── generate │ │ │ │ ├── generateAutoLocaleRedirectFiles.ts │ │ │ │ ├── generateRedirectFiles.ts │ │ │ │ ├── getLocaleRedirectHTML.ts │ │ │ │ ├── getRedirectHTML.ts │ │ │ │ └── index.ts │ │ │ ├── getRedirectLocaleConfig.ts │ │ │ ├── getRedirectMap.ts │ │ │ ├── handleRedirectTo.ts │ │ │ ├── index.ts │ │ │ ├── locales.ts │ │ │ ├── logger.ts │ │ │ ├── redirectPlugin.ts │ │ │ └── types │ │ │ │ ├── frontmatter.ts │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ ├── shared │ │ │ ├── behavior.ts │ │ │ ├── index.ts │ │ │ ├── locales.ts │ │ │ └── normalizePath.ts │ │ └── shims.d.ts │ ├── tests │ │ └── shared │ │ │ └── normalizePath.spec.ts │ └── tsconfig.build.json │ └── plugin-register-components │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ └── node │ │ ├── getComponentsFromDir.ts │ │ ├── index.ts │ │ ├── prepareClientConfigFile.ts │ │ └── registerComponentsPlugin.ts │ ├── tests │ ├── __fixtures__ │ │ └── components │ │ │ ├── FooBar.vue │ │ │ └── FooBaz.ts │ ├── getComponentsFromDir.spec.ts │ └── prepareClientAppEnhanceFile.spec.ts │ └── tsconfig.build.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── scripts ├── rollup.ts └── syncNpmmirror.ts ├── themes └── theme-default │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ ├── client │ │ ├── components │ │ │ ├── VPAutoLink.vue │ │ │ ├── VPDarkIcon.vue │ │ │ ├── VPDropdownTransition.vue │ │ │ ├── VPEditIcon.vue │ │ │ ├── VPFadeSlideYTransition.vue │ │ │ ├── VPHome.vue │ │ │ ├── VPHomeFeatures.vue │ │ │ ├── VPHomeFooter.vue │ │ │ ├── VPHomeHero.vue │ │ │ ├── VPLightIcon.vue │ │ │ ├── VPNavbar.vue │ │ │ ├── VPNavbarBrand.vue │ │ │ ├── VPNavbarDropdown.vue │ │ │ ├── VPNavbarItems.vue │ │ │ ├── VPPage.vue │ │ │ ├── VPPageMeta.vue │ │ │ ├── VPPageNav.vue │ │ │ ├── VPSidebar.vue │ │ │ ├── VPSidebarItem.vue │ │ │ ├── VPSidebarItems.vue │ │ │ ├── VPToggleColorModeButton.vue │ │ │ ├── VPToggleSidebarButton.vue │ │ │ └── global │ │ │ │ ├── Badge.vue │ │ │ │ └── index.ts │ │ ├── composables │ │ │ ├── index.ts │ │ │ ├── useDarkMode.ts │ │ │ ├── useData.ts │ │ │ ├── useEditLink.ts │ │ │ ├── useHeaders.ts │ │ │ ├── useNavbarConfig.ts │ │ │ ├── useNavbarRepo.ts │ │ │ ├── useNavbarSelectLanguage.ts │ │ │ ├── useNavigate.ts │ │ │ ├── useRelatedLinks.ts │ │ │ ├── useScrollPromise.ts │ │ │ ├── useSidebarItems.ts │ │ │ └── useUpdateDeviceStatus.ts │ │ ├── config.ts │ │ ├── index.ts │ │ ├── layouts │ │ │ ├── Layout.vue │ │ │ └── NotFound.vue │ │ ├── shim.d.ts │ │ ├── styles │ │ │ ├── _mixins.scss │ │ │ ├── _variables.module.scss │ │ │ ├── _variables.scss │ │ │ ├── arrow.scss │ │ │ ├── code-group.scss │ │ │ ├── content │ │ │ │ ├── code.scss │ │ │ │ ├── index.scss │ │ │ │ ├── normalize.scss │ │ │ │ └── toc.scss │ │ │ ├── external-link-icon.scss │ │ │ ├── index.scss │ │ │ ├── layout.scss │ │ │ ├── normalize.scss │ │ │ ├── plugins.scss │ │ │ ├── vars-dark.scss │ │ │ └── vars.scss │ │ ├── typings.ts │ │ └── utils │ │ │ ├── index.ts │ │ │ ├── isActiveSidebarItem.ts │ │ │ ├── resolveAutoLink.ts │ │ │ ├── resolveEditLink.ts │ │ │ ├── resolvePrefix.ts │ │ │ └── resolveRepoType.ts │ ├── node │ │ ├── defaultTheme.ts │ │ ├── index.ts │ │ ├── typings.ts │ │ └── utils │ │ │ ├── assignDefaultLocaleOptions.ts │ │ │ ├── index.ts │ │ │ └── resolveMarkdownHintLocales.ts │ └── shared │ │ ├── index.ts │ │ ├── nav.ts │ │ ├── navbar.ts │ │ ├── options.ts │ │ ├── page.ts │ │ └── sidebar.ts │ ├── templates │ └── build.html │ ├── tests │ └── navbar.spec-d.ts │ └── tsconfig.build.json ├── tools ├── create-vuepress │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ │ ├── action.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── flow │ │ │ ├── createPackageJson.ts │ │ │ ├── generateTemplate.ts │ │ │ └── index.ts │ │ ├── i18n │ │ │ ├── en.ts │ │ │ ├── index.ts │ │ │ ├── typings.ts │ │ │ └── zh.ts │ │ ├── index.ts │ │ └── utils │ │ │ ├── checkYarnClassic.ts │ │ │ ├── file.ts │ │ │ ├── getPackageManager.ts │ │ │ ├── getRegistry.ts │ │ │ ├── index.ts │ │ │ ├── normalizeThemeName.ts │ │ │ └── pkgJson.ts │ ├── template │ │ ├── blog │ │ │ ├── .vuepress │ │ │ │ ├── client.js │ │ │ │ ├── components │ │ │ │ │ └── ArticleList.vue │ │ │ │ ├── config.js │ │ │ │ └── layouts │ │ │ │ │ ├── Article.vue │ │ │ │ │ ├── Category.vue │ │ │ │ │ ├── Tag.vue │ │ │ │ │ └── Timeline.vue │ │ │ ├── README.md │ │ │ ├── get-started.md │ │ │ └── posts │ │ │ │ ├── archive1.md │ │ │ │ ├── archive2.md │ │ │ │ ├── article1.md │ │ │ │ ├── article10.md │ │ │ │ ├── article11.md │ │ │ │ ├── article12.md │ │ │ │ ├── article2.md │ │ │ │ ├── article3.md │ │ │ │ ├── article4.md │ │ │ │ ├── article5.md │ │ │ │ ├── article6.md │ │ │ │ ├── article7.md │ │ │ │ ├── article8.md │ │ │ │ ├── article9.md │ │ │ │ ├── sticky.md │ │ │ │ └── sticky2.md │ │ └── docs │ │ │ ├── .vuepress │ │ │ └── config.js │ │ │ ├── README.md │ │ │ └── get-started.md │ └── tsconfig.build.json ├── helper │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ │ ├── client │ │ │ ├── components │ │ │ │ ├── LoadingIcon.ts │ │ │ │ ├── RenderDefault.ts │ │ │ │ ├── Transitions │ │ │ │ │ ├── FadeInExpandTransition.ts │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── composables │ │ │ │ ├── index.ts │ │ │ │ ├── useDarkMode.ts │ │ │ │ ├── useHeaders.ts │ │ │ │ ├── useKeys.ts │ │ │ │ ├── useLocaleConfig.ts │ │ │ │ └── useRoutePaths.ts │ │ │ ├── index.ts │ │ │ ├── noopComponent.ts │ │ │ ├── noopModule.ts │ │ │ ├── styles │ │ │ │ ├── colors.scss │ │ │ │ ├── message.scss │ │ │ │ ├── normalize.scss │ │ │ │ ├── sr-only.scss │ │ │ │ └── transition │ │ │ │ │ ├── fade-in-down.scss │ │ │ │ │ ├── fade-in-height-expand.scss │ │ │ │ │ ├── fade-in-left.scss │ │ │ │ │ ├── fade-in-right.scss │ │ │ │ │ ├── fade-in-scale-up.scss │ │ │ │ │ ├── fade-in-up.scss │ │ │ │ │ ├── fade-in-width-expand.scss │ │ │ │ │ ├── fade-in.scss │ │ │ │ │ ├── slide-in-down.scss │ │ │ │ │ ├── slide-in-left.scss │ │ │ │ │ ├── slide-in-right.scss │ │ │ │ │ ├── slide-in-up.scss │ │ │ │ │ └── vars.scss │ │ │ ├── typings │ │ │ │ ├── index.ts │ │ │ │ └── slot.ts │ │ │ └── utils │ │ │ │ ├── data.ts │ │ │ │ ├── env.ts │ │ │ │ ├── getDarkMode.ts │ │ │ │ ├── getHeaders.ts │ │ │ │ ├── hasGlobalComponent.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isFocusingTextControl.ts │ │ │ │ ├── isKeyMatched.ts │ │ │ │ ├── isSlotContentEmpty.ts │ │ │ │ ├── message.ts │ │ │ │ └── wait.ts │ │ ├── node │ │ │ ├── bundler │ │ │ │ ├── addCustomElement.ts │ │ │ │ ├── customizeDevServer.ts │ │ │ │ ├── getBundlerName.ts │ │ │ │ ├── index.ts │ │ │ │ ├── vite │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mergeViteConfig.ts │ │ │ │ │ └── viteHelper.ts │ │ │ │ └── webpack │ │ │ │ │ ├── chainWebpack.ts │ │ │ │ │ ├── configWebpack.ts │ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── locales │ │ │ │ ├── getFullLocaleConfig.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── page │ │ │ │ ├── excerpt.ts │ │ │ │ ├── index.ts │ │ │ │ └── text.ts │ │ │ └── utils │ │ │ │ ├── data.ts │ │ │ │ ├── getModulePath.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isModuleAvailable.ts │ │ │ │ ├── logger.ts │ │ │ │ └── packageManager.ts │ │ └── shared │ │ │ ├── date.ts │ │ │ ├── deepAssign.ts │ │ │ ├── header.ts │ │ │ ├── helper.ts │ │ │ ├── index.ts │ │ │ ├── key.ts │ │ │ ├── link.ts │ │ │ ├── locales.ts │ │ │ └── types.ts │ ├── tests │ │ ├── __fixtures__ │ │ │ ├── package-manager │ │ │ │ ├── config │ │ │ │ │ ├── npm │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── pnpm │ │ │ │ │ │ └── package.json │ │ │ │ │ └── yarn │ │ │ │ │ │ └── package.json │ │ │ │ ├── global │ │ │ │ │ └── package.json │ │ │ │ └── lock-file │ │ │ │ │ ├── npm │ │ │ │ │ ├── package-lock.json │ │ │ │ │ └── package.json │ │ │ │ │ ├── pnpm │ │ │ │ │ ├── package.json │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ └── yarn │ │ │ │ │ ├── package.json │ │ │ │ │ └── yarn.lock │ │ │ ├── src │ │ │ │ ├── README.md │ │ │ │ ├── component.md │ │ │ │ ├── custom-separator.md │ │ │ │ ├── long-content.md │ │ │ │ ├── markdown.md │ │ │ │ └── separator.md │ │ │ └── theme │ │ │ │ └── empty.ts │ │ ├── data.spec.ts │ │ ├── node │ │ │ ├── __snapshots__ │ │ │ │ ├── excerpt.spec.ts.snap │ │ │ │ └── text.spec.ts.snap │ │ │ ├── excerpt.spec.ts │ │ │ ├── getBundlerName.spec.ts │ │ │ ├── isModuleAvailable.spec.ts │ │ │ ├── locales.spec.ts │ │ │ ├── packageManager.spec.ts │ │ │ ├── text.spec.ts │ │ │ └── viteHelper.spec.ts │ │ └── shared │ │ │ ├── date.spec.ts │ │ │ ├── deepAssign.spec.ts │ │ │ ├── helper.spec.ts │ │ │ └── link.spec.ts │ └── tsconfig.build.json ├── highlighter-helper │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── scss │ │ └── code-title-icon.scss │ ├── src │ │ ├── client │ │ │ ├── composables │ │ │ │ ├── index.ts │ │ │ │ └── setupCollapsedLines.ts │ │ │ ├── index.ts │ │ │ └── styles │ │ │ │ ├── base.scss │ │ │ │ ├── code-block-title.scss │ │ │ │ ├── collapsed-lines.scss │ │ │ │ ├── line-numbers.scss │ │ │ │ ├── notation-diff.scss │ │ │ │ ├── notation-error-level.scss │ │ │ │ ├── notation-focus.scss │ │ │ │ ├── notation-highlight.scss │ │ │ │ ├── notation-word-highlight.scss │ │ │ │ └── whitespace.scss │ │ └── node │ │ │ ├── codeBlockTitle │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ └── plugin.ts │ │ │ ├── collapsedLines │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ ├── plugin.ts │ │ │ └── resolveCollapsedLine.ts │ │ │ ├── index.ts │ │ │ ├── lineNumbers │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ ├── plugin.ts │ │ │ └── resolveLineNumbers.ts │ │ │ ├── utils │ │ │ ├── index.ts │ │ │ └── resolveAttr.ts │ │ │ └── whitespace.ts │ └── tsconfig.build.json ├── shiki-twoslash │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ │ ├── client │ │ │ ├── enhanceTwoslash.ts │ │ │ ├── index.ts │ │ │ ├── shim.d.ts │ │ │ └── styles │ │ │ │ └── twoslash.scss │ │ └── node │ │ │ ├── createFileSystemTypesCache.ts │ │ │ ├── createTwoslashTransformer.ts │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ ├── rendererFloatingVue.ts │ │ │ └── resolveTypeScriptPaths.ts │ └── tsconfig.build.json └── vp-update │ ├── CHANGELOG.md │ ├── package.json │ ├── rollup.config.ts │ ├── src │ ├── config │ │ ├── index.ts │ │ ├── packages.ts │ │ └── version.ts │ ├── index.ts │ └── utils │ │ ├── getVersion.ts │ │ ├── index.ts │ │ ├── packageManager.ts │ │ ├── registry.ts │ │ └── updatePackage.ts │ ├── tests │ └── getRegistry.spec.ts │ └── tsconfig.build.json ├── tsconfig.base.json ├── tsconfig.build.json ├── tsconfig.json └── vitest.config.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | *.txt text eol=crlf 3 | 4 | *.png binary 5 | *.jpg binary 6 | *.jpeg binary 7 | *.ico binary 8 | *.tff binary 9 | *.woff binary 10 | *.woff2 binary 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Question & Discussion 4 | url: https://github.com/vuepress/ecosystem/discussions 5 | about: Please ask and answer questions here. 6 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | pnpm commitlint --edit $1 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | pnpm nano-staged 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .vuepress/.cache/ 2 | .vuepress/.temp/ 3 | .vuepress/dist/ 4 | 5 | pnpm-lock.yaml 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "dbaeumer.vscode-eslint", 4 | "esbenp.prettier-vscode", 5 | "mrmlnc.vscode-scss", 6 | "ms-playwright.playwright", 7 | "stylelint.vscode-stylelint", 8 | "vitest.explorer", 9 | "vue.volar" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /docs/.vuepress/configs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './head.js' 2 | export * from './navbar/index.js' 3 | export * from './plugins.js' 4 | export * from './sidebar/index.js' 5 | -------------------------------------------------------------------------------- /docs/.vuepress/configs/navbar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './en.js' 2 | export * from './zh.js' 3 | -------------------------------------------------------------------------------- /docs/.vuepress/configs/sidebar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './en.js' 2 | export * from './zh.js' 3 | -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-1.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-2.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-3.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-4.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-5.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-6.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-7.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-8.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/comment/vercel-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/comment/vercel-9.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/cookbook/extending-a-theme-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/cookbook/extending-a-theme-01.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/hero.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/android-chrome-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/android-chrome-384x384.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/favicon-16x16.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/favicon-32x32.png -------------------------------------------------------------------------------- /docs/.vuepress/public/images/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/.vuepress/public/images/icons/mstile-150x150.png -------------------------------------------------------------------------------- /docs/.vuepress/shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@vuepress/theme-default' { 2 | interface NavItemOptions { 3 | icon?: string 4 | } 5 | } 6 | 7 | export {} 8 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | title: Home 4 | icon: home 5 | heroImage: /images/hero.png 6 | actions: 7 | - text: Themes 8 | icon: palette 9 | link: ./themes/ 10 | type: primary 11 | 12 | - text: Plugins 13 | icon: unplug 14 | link: ./plugins/ 15 | type: primary 16 | 17 | footer: MIT Licensed | Copyright © 2018-present VuePress Community 18 | --- 19 | -------------------------------------------------------------------------------- /docs/plugins/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: unplug 3 | --- 4 | 5 | # Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/ai/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: eos-icons:ai 3 | --- 4 | 5 | # AI Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/analytics/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: chart-no-axes-combined 3 | --- 4 | 5 | # Analytics Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/blog/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: la:blog 3 | --- 4 | 5 | # Blog Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/blog/comment/waline/assets/leancloud-app-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/plugins/blog/comment/waline/assets/leancloud-app-1.jpg -------------------------------------------------------------------------------- /docs/plugins/blog/comment/waline/assets/leancloud-app-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/plugins/blog/comment/waline/assets/leancloud-app-2.jpg -------------------------------------------------------------------------------- /docs/plugins/development/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: server-cog 3 | --- 4 | 5 | # Development Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/features/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: sparkles 3 | --- 4 | 5 | # Feature Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/features/assets/iconfont-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/plugins/features/assets/iconfont-add.png -------------------------------------------------------------------------------- /docs/plugins/features/assets/iconfont-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/plugins/features/assets/iconfont-edit.png -------------------------------------------------------------------------------- /docs/plugins/features/assets/iconfont-generate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/plugins/features/assets/iconfont-generate.png -------------------------------------------------------------------------------- /docs/plugins/features/assets/iconfont-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/plugins/features/assets/iconfont-new.png -------------------------------------------------------------------------------- /docs/plugins/markdown/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: octicon:markdown-16 3 | --- 4 | 5 | # Markdown Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/markdown/demo.snippet.md: -------------------------------------------------------------------------------- 1 | ## Heading 2 2 | 3 | 4 | 5 | Contents containing **bolded text** and some markdown enhance features: 6 | 7 | 8 | 9 | ::: tip 10 | 11 | Hey how are **you**? :smile: 12 | 13 | ::: 14 | -------------------------------------------------------------------------------- /docs/plugins/pwa/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: layout-grid 3 | --- 4 | 5 | # PWA Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/search/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: search 3 | --- 4 | 5 | # Search Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/seo/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: scan-search 3 | --- 4 | 5 | # SEO Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/plugins/tools/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: hammer 3 | --- 4 | 5 | # Tool Plugins 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/themes/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: palette 3 | --- 4 | 5 | # Themes 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/tools/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: hammer 3 | --- 4 | 5 | # Tool Packages 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | title: 首页 4 | icon: home 5 | heroImage: /images/hero.png 6 | actions: 7 | - text: 主题 8 | icon: palette 9 | link: ./themes/ 10 | type: primary 11 | 12 | - text: 插件 13 | icon: unplug 14 | link: ./plugins/ 15 | type: primary 16 | 17 | footer: MIT 协议 | 版权所有 © 2018-至今 VuePress 社区 18 | --- 19 | -------------------------------------------------------------------------------- /docs/zh/plugins/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: unplug 3 | --- 4 | 5 | # 插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/ai/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: eos-icons:ai 3 | --- 4 | 5 | # AI 插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/analytics/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: chart-no-axes-combined 3 | --- 4 | 5 | # 统计分析插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/blog/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: la:blog 3 | --- 4 | 5 | # 博客插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/blog/comment/waline/assets/leancloud-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/blog/comment/waline/assets/leancloud-1.png -------------------------------------------------------------------------------- /docs/zh/plugins/blog/comment/waline/assets/leancloud-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/blog/comment/waline/assets/leancloud-2.png -------------------------------------------------------------------------------- /docs/zh/plugins/blog/comment/waline/assets/leancloud-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/blog/comment/waline/assets/leancloud-3.png -------------------------------------------------------------------------------- /docs/zh/plugins/development/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: server-cog 3 | --- 4 | 5 | # 开发插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/features/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: sparkles 3 | --- 4 | 5 | # 功能插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/features/assets/iconfont-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/features/assets/iconfont-add.png -------------------------------------------------------------------------------- /docs/zh/plugins/features/assets/iconfont-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/features/assets/iconfont-edit.png -------------------------------------------------------------------------------- /docs/zh/plugins/features/assets/iconfont-generate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/features/assets/iconfont-generate.png -------------------------------------------------------------------------------- /docs/zh/plugins/features/assets/iconfont-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/docs/zh/plugins/features/assets/iconfont-new.png -------------------------------------------------------------------------------- /docs/zh/plugins/markdown/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: octicon:markdown-16 3 | --- 4 | 5 | # Markdown 插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/markdown/demo.snippet.md: -------------------------------------------------------------------------------- 1 | ## 二级标题 2 | 3 | 4 | 5 | 内容包含**加粗文字**和一些其他增强内容: 6 | 7 | 8 | 9 | ::: tip 10 | 11 | 你最近怎么样了? :smile: 12 | 13 | ::: 14 | -------------------------------------------------------------------------------- /docs/zh/plugins/pwa/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: layout-grid 3 | --- 4 | 5 | # 渐进式应用插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/search/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: search 3 | --- 4 | 5 | # 搜索插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/search/guidelines.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: signpost 3 | --- 4 | 5 | # 搜索插件指南 6 | 7 | 为了使 VuePress 主题开箱即用地支持搜索插件,我们有一套创建搜索插件时应遵循的指南。 8 | 9 | ## 组件名称 10 | 11 | - 如果搜索插件提供了适合在导航栏或侧边栏中显示的搜索框,则应将其命名为 `` 并进行全局注册。 12 | - 如果搜索插件提供了适合在单个页面中显示的复杂搜索结果组件(包含输入和结果列表),则应将其命名为 `` 并进行全局注册。 13 | 14 | 搜索插件应在每个语言环境中自动生成一个包含 `` 组件的 `/search.html` 页面,但不得覆盖任何现有页面。 15 | -------------------------------------------------------------------------------- /docs/zh/plugins/seo/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: scan-search 3 | --- 4 | 5 | # 搜索引擎优化插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/plugins/tools/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: hammer 3 | --- 4 | 5 | # 工具插件 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/themes/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: palette 3 | --- 4 | 5 | # 主题 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/zh/tools/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: hammer 3 | --- 4 | 5 | # 工具包 6 | 7 | 8 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/components/GlobalComponent4.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/components/GlobalComponent5.ts: -------------------------------------------------------------------------------- 1 | import type { VNode } from 'vue' 2 | import { h } from 'vue' 3 | 4 | export default (): VNode => 5 | h('div', { id: 'global-component-5' }, 'Global Component 5') 6 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/components/GlobalComponent6.js: -------------------------------------------------------------------------------- 1 | import { h } from 'vue' 2 | 3 | export default () => 4 | h('div', { id: 'global-component-6' }, 'Global Component 6') 5 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/global-components/GlobalComponent1.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/global-components/GlobalComponent2.ts: -------------------------------------------------------------------------------- 1 | import type { VNode } from 'vue' 2 | import { h } from 'vue' 3 | 4 | export default (): VNode => 5 | h('div', { id: 'global-component-2' }, 'Global Component 2') 6 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/global-components/GlobalComponent3.js: -------------------------------------------------------------------------------- 1 | import { h } from 'vue' 2 | 3 | export default () => 4 | h('div', { id: 'global-component-3' }, 'Global Component 3') 5 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/notice.md: -------------------------------------------------------------------------------- 1 | **Notice Content** [link](https://example.com) 2 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/e2e/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /e2e/docs/.vuepress/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/e2e/docs/.vuepress/public/logo.png -------------------------------------------------------------------------------- /e2e/docs/.vuepress/styles/default-config.scss: -------------------------------------------------------------------------------- 1 | $width: 2.5rem !default; 2 | $height: 2.5rem !default; 3 | $colors: #f00, #0f0, #00f !default; 4 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/styles/default-palette.scss: -------------------------------------------------------------------------------- 1 | /* stylelint-disable scss/dollar-variable-pattern */ 2 | $color: #f00 !default; 3 | $snake_color: #f00 !default; 4 | $kebab-color: #f00 !default; 5 | $PascalColor: #f00 !default; 6 | $length: 1rem !default; 7 | $complex: '1s ease' !default; 8 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/styles/test-config.scss: -------------------------------------------------------------------------------- 1 | $width: 3.5rem; 2 | $colors: #f00, #0f0, #00f; 3 | -------------------------------------------------------------------------------- /e2e/docs/.vuepress/styles/test-palette.scss: -------------------------------------------------------------------------------- 1 | $color: #00f; 2 | $color-new: #00f; 3 | $color-generator: #00f; 4 | -------------------------------------------------------------------------------- /e2e/docs/catalog/base.md: -------------------------------------------------------------------------------- 1 | ## Homepage Catalog 2 | 3 | 4 | -------------------------------------------------------------------------------- /e2e/docs/catalog/current.md: -------------------------------------------------------------------------------- 1 | # Current Page Catalog 2 | 3 | 4 | -------------------------------------------------------------------------------- /e2e/docs/catalog/index.md: -------------------------------------------------------------------------------- 1 | # Index Catalog 2 | 3 | ## Current 4 | 5 | 6 | 7 | ## Homepage 8 | 9 | 10 | -------------------------------------------------------------------------------- /e2e/docs/copy-code/README.md: -------------------------------------------------------------------------------- 1 | # Copy code 2 | 3 | ```ts 4 | const a = 1 5 | const b = 2 6 | ``` 7 | -------------------------------------------------------------------------------- /e2e/docs/copyright/selection.md: -------------------------------------------------------------------------------- 1 | --- 2 | copy: 3 | disableSelection: true 4 | --- 5 | 6 | No selection 7 | -------------------------------------------------------------------------------- /e2e/docs/feed/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Custom feed page 3 | feed: 4 | title: Custom feed title 5 | description: Custom feed description 6 | content: Custom feed content. 7 | --- 8 | 9 | Feed item of this page is customized. 10 | -------------------------------------------------------------------------------- /e2e/docs/feed/demo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Feed Demo Page 3 | author: Mr.Hope 4 | date: 2021-01-01 5 | category: 6 | - Demo 7 | tag: 8 | - Demo 9 | --- 10 | 11 | Here is **article excerpt**. 12 | 13 | ```js 14 | const a = 1 15 | ``` 16 | 17 | 18 | 19 | ## Content 20 | 21 | Here is main content of **article**. 22 | 23 | 1. A 24 | 1. B 25 | 1. C 26 | 27 | ```js 28 | const a = 1 29 | ``` 30 | -------------------------------------------------------------------------------- /e2e/docs/feed/exclude.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Feed exclude Page 3 | feed: false 4 | --- 5 | 6 | Excluded feed page content. 7 | -------------------------------------------------------------------------------- /e2e/docs/navbar/bar.md: -------------------------------------------------------------------------------- 1 | # Nested bar 2 | 3 | nested bar content 4 | -------------------------------------------------------------------------------- /e2e/docs/navbar/foo.md: -------------------------------------------------------------------------------- 1 | nested foo content 2 | -------------------------------------------------------------------------------- /e2e/docs/navbar/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/e2e/docs/navbar/index.md -------------------------------------------------------------------------------- /e2e/docs/notice/README.md: -------------------------------------------------------------------------------- 1 | # A Notice Page 2 | -------------------------------------------------------------------------------- /e2e/docs/notice/file.md: -------------------------------------------------------------------------------- 1 | # Load Notice Content From File 2 | -------------------------------------------------------------------------------- /e2e/docs/notice/fullscreen.md: -------------------------------------------------------------------------------- 1 | # A Full Screen Notice Page 2 | -------------------------------------------------------------------------------- /e2e/docs/photo-swipe/disabled.md: -------------------------------------------------------------------------------- 1 | --- 2 | photoSwipe: false 3 | --- 4 | 5 | ![](/logo.png) 6 | ![](/favicon.ico) 7 | -------------------------------------------------------------------------------- /e2e/docs/photo-swipe/enabled.md: -------------------------------------------------------------------------------- 1 | ![](/logo.png) 2 | ![](/favicon.ico) 3 | -------------------------------------------------------------------------------- /e2e/docs/posts/archive1.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 1998-01-01 3 | category: 4 | - History 5 | tag: 6 | - WWI 7 | archive: true 8 | --- 9 | 10 | # Archive Article1 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /e2e/docs/posts/archive2.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 1998-01-02 3 | category: 4 | - History 5 | tag: 6 | - WWII 7 | archive: true 8 | --- 9 | 10 | # Archive Article2 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /e2e/docs/posts/article1.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-01 3 | category: 4 | - Category A 5 | tag: 6 | - tag A 7 | - tag B 8 | --- 9 | 10 | # Article 1 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /e2e/docs/posts/article10.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-10 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 10 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article11.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-11 3 | category: 4 | - Category A 5 | - Category B 6 | - 分类 1 7 | tag: 8 | - tag C 9 | - tag D 10 | - 标签 1 11 | --- 12 | 13 | # Article 11 14 | 15 | ## Heading 2 16 | 17 | Here is the content. 18 | 19 | ### Heading 3 20 | 21 | Here is the content. 22 | -------------------------------------------------------------------------------- /e2e/docs/posts/article12.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-12 3 | category: 4 | - Category A 5 | - Category B 6 | - 分类 1 7 | - 分类 2 8 | tag: 9 | - tag C 10 | - tag D 11 | - 标签 1 12 | - 标签 2 13 | --- 14 | 15 | # Article 12 16 | 17 | ## Heading 2 18 | 19 | Here is the content. 20 | 21 | ### Heading 3 22 | 23 | Here is the content. 24 | -------------------------------------------------------------------------------- /e2e/docs/posts/article2.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-02 3 | category: 4 | - Category A 5 | tag: 6 | - tag A 7 | - tag B 8 | --- 9 | 10 | # Article 2 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /e2e/docs/posts/article3.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-03 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 3 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article4.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-04 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 4 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article5.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-05 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 5 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article6.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-06 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 6 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article7.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-07 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 7 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article8.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-08 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 8 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/article9.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-09 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 9 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/sticky.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2021-01-01 3 | category: 4 | - Category C 5 | tag: 6 | - tag E 7 | sticky: true 8 | excerpt:

A sticky article demo.

9 | --- 10 | 11 | # Sticky Article 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /e2e/docs/posts/sticky2.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2020-01-01 3 | category: 4 | - Category C 5 | tag: 6 | - tag E 7 | sticky: 10 8 | --- 9 | 10 | # Sticky Article with Higher Priority 11 | 12 | Excerpt information which is added manually. 13 | 14 | 15 | 16 | ## Heading 2 17 | 18 | Here is the content. 19 | 20 | ### Heading 3 21 | 22 | Here is the content. 23 | -------------------------------------------------------------------------------- /e2e/docs/redirect/final.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirectFrom: /redirect/from.md 3 | --- 4 | 5 | # Final 6 | -------------------------------------------------------------------------------- /e2e/docs/redirect/to.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirectTo: /redirect/final.md 3 | --- 4 | 5 | # Redirect to 6 | -------------------------------------------------------------------------------- /e2e/docs/register-components/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/config/1.md: -------------------------------------------------------------------------------- 1 | # Sidebar 1 2 | 3 | ## Sidebar 1 Heading 1 4 | 5 | ## Sidebar 1 Heading 2 6 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/config/2.md: -------------------------------------------------------------------------------- 1 | # Sidebar 2 2 | 3 | ## Sidebar 2 Heading 1 4 | 5 | ## Sidebar 2 Heading 2 6 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/frontmatter/config.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar: 3 | - / 4 | - /zh/ 5 | --- 6 | 7 | # Sidebar 8 | 9 | ## Sidebar Heading 1 10 | 11 | ## Sidebar Heading 2 12 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/frontmatter/disable.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar: false 3 | --- 4 | 5 | # Sidebar 6 | 7 | ## Sidebar Heading 1 8 | 9 | ## Sidebar Heading 2 10 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/frontmatter/heading.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar: heading 3 | --- 4 | 5 | # Sidebar 6 | 7 | ## Sidebar Heading 1 8 | 9 | ## Sidebar Heading 2 10 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/heading/1.md: -------------------------------------------------------------------------------- 1 | # Sidebar 1 2 | 3 | ## Sidebar 1 Heading 1 4 | 5 | ## Sidebar 1 Heading 2 6 | -------------------------------------------------------------------------------- /e2e/docs/sidebar/heading/2.md: -------------------------------------------------------------------------------- 1 | # Sidebar 2 2 | 3 | ## Sidebar 2 Heading 1 4 | 5 | ## Sidebar 2 Heading 2 6 | -------------------------------------------------------------------------------- /e2e/docs/sitemap/config-exclude.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sitemap config exclude 3 | --- 4 | 5 | Sitemap config exclude 6 | -------------------------------------------------------------------------------- /e2e/docs/sitemap/frontmatter-exclude.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sitemap frontmatter exclude 3 | sitemap: false 4 | --- 5 | 6 | Sitemap frontmatter exclude 7 | -------------------------------------------------------------------------------- /e2e/docs/sitemap/frontmatter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sitemap test 3 | sitemap: 4 | changefreq: yearly 5 | --- 6 | 7 | Sitemap frontmatter config 8 | -------------------------------------------------------------------------------- /e2e/docs/sitemap/meta-exclude.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sitemap meta exclude 3 | sitemap: false 4 | header: 5 | - - meta 6 | - name: robots 7 | content: noindex 8 | --- 9 | 10 | Sitemap meta exclude 11 | -------------------------------------------------------------------------------- /e2e/docs/watermark/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | watermark: true 3 | --- 4 | 5 | # Default Watermark 6 | -------------------------------------------------------------------------------- /e2e/docs/watermark/disabled.md: -------------------------------------------------------------------------------- 1 | --- 2 | watermark: false 3 | --- 4 | 5 | # disabled watermark 6 | -------------------------------------------------------------------------------- /e2e/docs/zh/test.md: -------------------------------------------------------------------------------- 1 | # Test 2 | -------------------------------------------------------------------------------- /e2e/tests/theme-default/navbar.spec.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@playwright/test' 2 | 3 | test('navbar items', async ({ page }) => { 4 | await page.goto('') 5 | 6 | const navItems = page.locator('.vp-navbar .vp-navbar-item') 7 | 8 | await expect(navItems.nth(0)).toHaveText('Home') 9 | await expect(navItems.nth(1)).toContainText('Dropdown') 10 | }) 11 | -------------------------------------------------------------------------------- /e2e/utils/env.ts: -------------------------------------------------------------------------------- 1 | export const BASE = process.env.E2E_BASE ?? '/' 2 | export const BUNDLER = process.env.E2E_BUNDLER ?? 'vite' 3 | export const COMMAND = process.env.E2E_COMMAND ?? 'dev' 4 | 5 | export const IS_DEV = COMMAND === 'dev' 6 | export const IS_PROD = COMMAND === 'build' 7 | export const IS_CI = !!process.env.CI 8 | -------------------------------------------------------------------------------- /plugins/ai/plugin-llms/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: [ 6 | 'byte-size', 7 | 'gray-matter', 8 | 'millify', 9 | 'remark', 10 | 'tokenx', 11 | 'unist-util-remove', 12 | ], 13 | }), 14 | ] 15 | -------------------------------------------------------------------------------- /plugins/ai/plugin-llms/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './constants.js' 2 | export * from './templateGetter.js' 3 | export * from './utils/index.js' 4 | export * from './generateLLMFriendlyDocs.js' 5 | export * from './generateLLMsTxt.js' 6 | export * from './generateLLMsFullTxt.js' 7 | export * from './llmsPlugin.js' 8 | export type * from './options.js' 9 | export type * from './types.js' 10 | -------------------------------------------------------------------------------- /plugins/ai/plugin-llms/src/node/utils/getSizeOf.ts: -------------------------------------------------------------------------------- 1 | import byteSize from 'byte-size' 2 | 3 | /** 4 | * Get string size in human-readable format 5 | * 6 | * @param string - Input string to measure 7 | * @returns Size string (e.g., "1.2 KB", "500 B") 8 | */ 9 | export const getSizeOf = (string: string): string => 10 | byteSize(new Blob([string]).size).toString() 11 | -------------------------------------------------------------------------------- /plugins/ai/plugin-llms/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './expandTemplate.js' 2 | export * from './extractTitle.js' 3 | export * from './generateLink.js' 4 | export * from './generateTOCLink.js' 5 | export * from './logger.js' 6 | export * from './getSizeOf.js' 7 | export * from './stripExt.js' 8 | -------------------------------------------------------------------------------- /plugins/ai/plugin-llms/src/node/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | import { PLUGIN_NAME } from '../constants.js' 3 | 4 | export const logger = new Logger(PLUGIN_NAME) 5 | -------------------------------------------------------------------------------- /plugins/ai/plugin-llms/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [ 10 | { 11 | "path": "../../../tools/helper/tsconfig.build.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useBaiduAnalytics.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/src/client/config.ts: -------------------------------------------------------------------------------- 1 | import { defineClientConfig } from 'vuepress/client' 2 | import { useBaiduAnalytics } from './composables/index.js' 3 | 4 | declare const __BD_ID__: string 5 | 6 | export default defineClientConfig({ 7 | setup() { 8 | useBaiduAnalytics(__BD_ID__) 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './baiduAnalyticsPlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/src/node/options.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Options for @vuepress/plugin-baidu-analytics 3 | */ 4 | export interface BaiduAnalyticsPluginOptions { 5 | /** 6 | * Baidu Analytics tracking ID 7 | * 8 | * @description The ID found in the `hm.js` URL from Baidu Analytics tracking code 9 | */ 10 | id: string 11 | } 12 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-baidu-analytics/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-google-analytics/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-google-analytics/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useGoogleAnalytics.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-google-analytics/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-google-analytics/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './googleAnalyticsPlugin.js' 2 | export type * from '../shared/index.js' 3 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-google-analytics/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './types.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-google-analytics/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-umami-analytics/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-umami-analytics/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useUmamiAnalytics.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-umami-analytics/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-umami-analytics/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './umamiAnalyticsPlugin.js' 2 | export type { UmamiOptions as UmamiPluginOptions } from '../shared/index.js' 3 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-umami-analytics/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | -------------------------------------------------------------------------------- /plugins/analytics/plugin-umami-analytics/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['chokidar'], 6 | }), 7 | ...rollupBundle('client/index'), 8 | ] 9 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useBlogCategory.js' 2 | export * from './useBlogType.js' 3 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | export type * from './typings.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/node/category/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getCategory.js' 2 | export * from './getCategoryOptions.js' 3 | export * from './prepareCategoriesMap.js' 4 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './blogPlugin.js' 2 | 3 | export type * from './options.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-blog' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/node/type/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getType.js' 2 | export * from './getTypeOptions.js' 3 | export * from './prepareTypesMap.js' 4 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/node/utils.ts: -------------------------------------------------------------------------------- 1 | import { sanitizeFileName } from 'vuepress/utils' 2 | 3 | export const getPagePath = (path: string): string => 4 | encodeURI(path.split('/').map(sanitizeFileName).join('/')) 5 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './frontmatter.js' 2 | export type * from './internal.js' 3 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/shims-category.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@temp/blog/category' { 2 | import type { CategoriesMap } from '@vuepress/plugin-blog' 3 | 4 | export const categoriesMap: CategoriesMap 5 | } 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/shims-store.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@temp/blog/store' { 2 | export const store: string[] 3 | } 4 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/src/shims-type.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@temp/blog/type' { 2 | import type { TypesMap } from '@vuepress/plugin-blog' 3 | 4 | export const typesMap: TypesMap 5 | } 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-blog/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src", "./src/*.d.ts"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './comment.js' 2 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | defineArtalkConfig, 3 | defineGiscusConfig, 4 | defineTwikooConfig, 5 | defineWalineConfig, 6 | useArtalkOptions, 7 | useGiscusOptions, 8 | useTwikooOptions, 9 | useWalineOptions, 10 | } from './helpers/index.js' 11 | export type * from '../shared/index.js' 12 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/pageview/noop.ts: -------------------------------------------------------------------------------- 1 | import type { UpdatePageview } from './typings.js' 2 | 3 | export const isSupported: boolean = false 4 | 5 | export const usePageview = (): UpdatePageview => () => { 6 | // do nothing 7 | } 8 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/pageview/typings.ts: -------------------------------------------------------------------------------- 1 | export interface PageviewOptions { 2 | selector?: string 3 | } 4 | 5 | export type UpdatePageview = (options: PageviewOptions) => void 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/styles/base.scss: -------------------------------------------------------------------------------- 1 | .vp-comment { 2 | @media print { 3 | display: none !important; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/styles/giscus.scss: -------------------------------------------------------------------------------- 1 | .giscus-wrapper { 2 | &.input-top .giscus { 3 | margin-bottom: -3rem; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/client/styles/waline.scss: -------------------------------------------------------------------------------- 1 | .waline-wrapper { 2 | --waline-bg-color: var(--vp-c-bg); 3 | --waline-bg-color-light: var(--v-c-bg-alt); 4 | --waline-text-color: var(--vp-c-text); 5 | --waline-border: 1px solid var(--vp-c-border); 6 | --waline-border-color: var(--vp-c-border); 7 | --waline-theme-color: var(--vp-c-accent); 8 | --waline-active-color: var(--vp-c-accent-hover); 9 | } 10 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './commentPlugin.js' 2 | export * from './locales.js' 3 | export type * from './options.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './frontmatter.js' 2 | export type * from './options/index.js' 3 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/shared/options/artalk.ts: -------------------------------------------------------------------------------- 1 | import type { ArtalkConfig } from 'artalk' 2 | import type { BaseCommentPluginOptions } from './base.js' 3 | 4 | /** 5 | * Artalk comment options 6 | * 7 | * Artalk 评论选项 8 | */ 9 | export type ArtalkOptions = BaseCommentPluginOptions & 10 | Partial> 11 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/shared/options/disable.ts: -------------------------------------------------------------------------------- 1 | import type { BaseCommentPluginOptions } from './base.js' 2 | 3 | /** 4 | * No comment plugin options 5 | * 6 | * 禁用评论插件选项 7 | */ 8 | export interface NoCommentPluginOptions extends BaseCommentPluginOptions { 9 | provider?: 'None' 10 | comment?: never 11 | } 12 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/shared/options/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './artalk.js' 2 | export type * from './disable.js' 3 | export type * from './giscus.js' 4 | export type * from './options.js' 5 | export type * from './twikoo.js' 6 | export type * from './waline.js' 7 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/shims-artalk.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'artalk/dist/Artalk.mjs' { 2 | import Artalk from 'artalk' 3 | 4 | export * from 'artalk' 5 | export default Artalk 6 | } 7 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/src/shims-comment-provider.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@vuepress/plugin-comment/service' { 2 | import type { DefineComponent } from 'vue' 3 | 4 | const component: DefineComponent 5 | 6 | export default component 7 | } 8 | -------------------------------------------------------------------------------- /plugins/blog/plugin-comment/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['xml-js'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/feed/index.ts: -------------------------------------------------------------------------------- 1 | export * from './item.js' 2 | export * from './store.js' 3 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/generator/index.ts: -------------------------------------------------------------------------------- 1 | export * from './atom/index.js' 2 | export * from './json/index.js' 3 | export * from './rss/index.js' 4 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './feedPlugin.js' 2 | export type * from '../typings/index.js' 3 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/utils/getCategory.ts: -------------------------------------------------------------------------------- 1 | import { isArray, isString } from '@vuepress/helper' 2 | 3 | export const getFeedCategory = ( 4 | category: string[] | string | undefined, 5 | ): string[] => { 6 | if (category) { 7 | if (isArray(category) && category.every(isString)) return category 8 | if (isString(category)) return [category] 9 | } 10 | 11 | return [] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/utils/getMineType.ts: -------------------------------------------------------------------------------- 1 | export const getImageMineType = (ext = ''): string => 2 | `image/${ 3 | ext === 'jpg' 4 | ? 'jpeg' 5 | : ext === 'svg' 6 | ? 'svg+xml' 7 | : ext === 'jpeg' || 8 | ext === 'png' || 9 | ext === 'bmp' || 10 | ext === 'gif' || 11 | ext === 'webp' 12 | ? ext 13 | : '' 14 | }` 15 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/utils/getUrl.ts: -------------------------------------------------------------------------------- 1 | import { 2 | isLinkHttp, 3 | removeEndingSlash, 4 | removeLeadingSlash, 5 | } from 'vuepress/shared' 6 | 7 | export const getUrl = (hostname: string, base = '', path = ''): string => 8 | `${ 9 | isLinkHttp(hostname) 10 | ? removeEndingSlash(hostname) 11 | : `https://${removeEndingSlash(hostname)}` 12 | }${base}${removeLeadingSlash(path)}` 13 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './encodeXML.js' 2 | export * from './getAuthor.js' 3 | export * from './getCategory.js' 4 | export * from './getMineType.js' 5 | export * from './getUrl.js' 6 | export * from './logger.js' 7 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/node/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const FEED_GENERATOR = '@vuepress/plugin-feed' 4 | 5 | export const logger = new Logger(FEED_GENERATOR) 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/typings/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './feed.js' 2 | export type * from './frontmatter.js' 3 | export type * from './internal.js' 4 | export type * from './options.js' 5 | export type * from './page.js' 6 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/typings/internal.ts: -------------------------------------------------------------------------------- 1 | export type FeedConfig = [path: string, content: string, contentType?: string] 2 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/src/typings/page.ts: -------------------------------------------------------------------------------- 1 | import type { GitData } from '@vuepress/plugin-git' 2 | import type { Page } from 'vuepress' 3 | import type { FeedPluginFrontmatter } from './frontmatter.js' 4 | 5 | export type FeedPage = Page< 6 | Record & { excerpt?: string; git?: GitData }, 7 | FeedPluginFrontmatter 8 | > 9 | -------------------------------------------------------------------------------- /plugins/blog/plugin-feed/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [ 9 | { "path": "../../development/plugin-git/tsconfig.build.json" }, 10 | { "path": "../../../tools/helper/tsconfig.build.json" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/development/plugin-active-header-links/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/development/plugin-active-header-links/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useActiveHeaderLinks.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-active-header-links/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-active-header-links/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './activeHeaderLinksPlugin.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-active-header-links/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './GitContributors.js' 2 | export * from './GitChangelog.js' 3 | export * from './VPHeader.js' 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useChangelog.js' 2 | export * from './useContributors.js' 3 | export * from './useGitLocales.js' 4 | export * from './useLastUpdated.js' 5 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './composables/index.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/client/options.ts: -------------------------------------------------------------------------------- 1 | import type { GitInjectOptions } from '../shared/index.js' 2 | 3 | declare const __GIT_OPTIONS__: GitInjectOptions 4 | 5 | export const gitOptions = 6 | typeof __GIT_OPTIONS__ === 'undefined' ? {} : __GIT_OPTIONS__ 7 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --changelog-bg: var(--vp-c-bg-alt); 3 | --changelog-font-size: 0.875rem; 4 | --changelog-c-text: var(--vp-c-text); 5 | } 6 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './resolveRepoLink.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './gitPlugin.js' 2 | export * from './resolveChangelog.js' 3 | export * from './resolveContributors.js' 4 | export * from './utils/index.js' 5 | export type * from './options.js' 6 | export type * from './typings.js' 7 | export type * from '../shared/index.js' 8 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/node/utils/digestSHA256.ts: -------------------------------------------------------------------------------- 1 | import { createHash } from 'node:crypto' 2 | 3 | export const digestSHA256 = (message: string): string => { 4 | const hash = createHash('sha256') 5 | hash.update(message) 6 | 7 | return hash.digest('hex') 8 | } 9 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/node/utils/getUserNameWithNoreplyEmail.ts: -------------------------------------------------------------------------------- 1 | export const getUserNameWithNoreplyEmail = (email: string): string | null => 2 | email.endsWith('@users.noreply.github.com') 3 | ? email.replace('@users.noreply.github.com', '').split('+')[1] 4 | : null 5 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/src/node/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-git' 4 | export const logger = new Logger(PLUGIN_NAME) 5 | -------------------------------------------------------------------------------- /plugins/development/plugin-git/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/development/plugin-palette/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['chokidar'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/development/plugin-palette/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './palettePlugin.js' 2 | export * from './preparePaletteFile.js' 3 | export * from './prepareStyleFile.js' 4 | export * from './presetOptions.js' 5 | -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/css/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/css/index.css -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/css/palette.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/css/palette.css -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/less/index.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/less/index.less -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/less/palette.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/less/palette.less -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/sass/index.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/sass/index.scss -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/sass/palette.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/sass/palette.scss -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/stylus/index.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/stylus/index.styl -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tests/__fixtures__/stylus/palette.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-palette/tests/__fixtures__/stylus/palette.styl -------------------------------------------------------------------------------- /plugins/development/plugin-palette/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [...rollupBundle('node/index'), ...rollupBundle('client/index')] 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useReadingTimeData.js' 2 | export * from './useReadingTimeLocale.js' 3 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | export * from './utils/index.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './locales.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './locales.js' 2 | export * from './getReadingTime.js' 3 | export type * from './options.js' 4 | export * from './readingTimePlugin.js' 5 | export * from './useReadingTimePlugin.js' 6 | export type * from '../shared/index.js' 7 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-reading-time' 4 | 5 | export const logger = new Logger('@vuepress/plugin-reading-time') 6 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './data.js' 2 | export type * from './locales.js' 3 | -------------------------------------------------------------------------------- /plugins/development/plugin-reading-time/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/development/plugin-rtl/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/development/plugin-rtl/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useRtl.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-rtl/src/client/config.ts: -------------------------------------------------------------------------------- 1 | import { defineClientConfig } from 'vuepress/client' 2 | import { useRtl } from './composables/index.js' 3 | 4 | declare const __RTL_LOCALES__: string[] 5 | declare const __RTL_SELECTOR__: Record> 6 | 7 | export default defineClientConfig({ 8 | setup() { 9 | useRtl(__RTL_LOCALES__, __RTL_SELECTOR__) 10 | }, 11 | }) 12 | -------------------------------------------------------------------------------- /plugins/development/plugin-rtl/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-rtl/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './rtlPlugin.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-rtl/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/development/plugin-sass-palette/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['chokidar'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/development/plugin-sass-palette/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './sassPalettePlugin.js' 3 | export * from './removePalettePlugin.js' 4 | export * from './useSassPalettePlugin.js' 5 | -------------------------------------------------------------------------------- /plugins/development/plugin-sass-palette/src/node/prepare/index.ts: -------------------------------------------------------------------------------- 1 | export * from './prepareClientConfigFile.js' 2 | export * from './prepareConfigSass.js' 3 | export * from './prepareInjectSass.js' 4 | export * from './preparePaletteSass.js' 5 | export * from './prepareStyleSass.js' 6 | -------------------------------------------------------------------------------- /plugins/development/plugin-sass-palette/styles/default/config.scss: -------------------------------------------------------------------------------- 1 | /* responsive breakpoints */ 2 | 3 | // wide screen 4 | $pc: 1440px !default; 5 | 6 | // desktop 7 | $laptop: 1280px !default; 8 | 9 | // narrow desktop / iPad 10 | $pad: 959px !default; 11 | 12 | // wide mobile 13 | $tablet: 719px !default; 14 | 15 | // narrow mobile 16 | $mobile: 419px !default; 17 | -------------------------------------------------------------------------------- /plugins/development/plugin-sass-palette/styles/empty.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/development/plugin-sass-palette/styles/empty.scss -------------------------------------------------------------------------------- /plugins/development/plugin-sass-palette/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle( 6 | { 7 | base: 'client', 8 | files: ['config', 'index'], 9 | }, 10 | { 11 | external: ['@internal/themeData', '@vue/devtools-api'], 12 | }, 13 | ), 14 | ] 15 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupDevtools.js' 2 | export * from './useThemeData.js' 3 | export * from './useThemeLocaleData.js' 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | export type * from '../shared/index.js' 3 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/src/client/themeData.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@internal/themeData' { 2 | import type { ThemeData } from '@vuepress/plugin-theme-data' 3 | 4 | export const themeData: ThemeData 5 | } 6 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from '../shared/index.js' 2 | export * from './prepareThemeData.js' 3 | export * from './themeDataPlugin.js' 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './themeData.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/src/shared/themeData.ts: -------------------------------------------------------------------------------- 1 | import type { LocaleConfig, LocaleData } from 'vuepress/shared' 2 | 3 | /** 4 | * Theme data with locale support 5 | * 6 | * 支持多语言的主题数据 7 | */ 8 | export type ThemeData = T & { 9 | /** 10 | * Locale configurations 11 | * 12 | * 多语言配置 13 | */ 14 | locales?: LocaleConfig 15 | } 16 | -------------------------------------------------------------------------------- /plugins/development/plugin-theme-data/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "paths": { 7 | "@internal/themeData": ["./src/client/themeData.d.ts"] 8 | }, 9 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 10 | }, 11 | "include": ["./src"] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/development/plugin-toc/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle( 6 | { 7 | base: 'client', 8 | files: ['config', 'index'], 9 | }, 10 | { 11 | external: ['vue-router'], 12 | }, 13 | ), 14 | ] 15 | -------------------------------------------------------------------------------- /plugins/development/plugin-toc/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Toc.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-toc/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export type * from '../shared/index.js' 3 | -------------------------------------------------------------------------------- /plugins/development/plugin-toc/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './tocPlugin.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/development/plugin-toc/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './types.js' 2 | -------------------------------------------------------------------------------- /plugins/development/plugin-toc/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './BackToTop.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/client/config.ts: -------------------------------------------------------------------------------- 1 | import { defineClientConfig } from 'vuepress/client' 2 | import { BackToTop } from './components/index.js' 3 | 4 | import './styles/vars.css' 5 | 6 | export default defineClientConfig({ 7 | rootComponents: [BackToTop], 8 | }) 9 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './utils.js' 3 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/client/styles/back-to-top.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --back-to-top-z-index: 5; 3 | --back-to-top-icon: url('back-to-top.svg'); 4 | --back-to-top-c-bg: var(--vp-c-bg); 5 | --back-to-top-c-accent-bg: var(--vp-c-accent-bg); 6 | --back-to-top-c-accent-hover: var(--vp-c-accent-hover); 7 | --back-to-top-c-shadow: var(--vp-c-shadow); 8 | --back-to-top-c-icon: currentcolor; 9 | } 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/client/utils.ts: -------------------------------------------------------------------------------- 1 | export const getScrollTop = (): number => 2 | window.scrollY || 3 | document.documentElement.scrollTop || 4 | document.body.scrollTop || 5 | 0 6 | 7 | export const scrollToTop = (): void => { 8 | window.scrollTo({ top: 0, behavior: 'smooth' }) 9 | } 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './backToTopPlugin.js' 2 | export type * from './options.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-back-to-top' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | export interface BackToTopPluginLocaleData { 2 | /** 3 | * Back to top button label text 4 | * 5 | * 返回顶部按钮标签文字 6 | */ 7 | backToTop: string 8 | } 9 | -------------------------------------------------------------------------------- /plugins/features/plugin-back-to-top/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useCatalogInfoGetter.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './helpers/index.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --catalog-c-accent: var(--vp-c-accent); 3 | --catalog-c-accent-text: var(--vp-c-accent-text); 4 | --catalog-c-control: var(--vp-c-bg-alt); 5 | --catalog-c-control-hover: var(--vp-c-bg-alt); 6 | --catalog-c-divider: var(--vp-c-divider); 7 | --catalog-header-offset: var(--header-offset, 3.6rem); 8 | } 9 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './catalogPlugin.js' 2 | export type * from './options.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-catalog' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | export interface CatalogPluginLocaleData { 2 | /** 3 | * Catalog title text 4 | * 5 | * 目录标题文字 6 | */ 7 | title: string 8 | 9 | /** 10 | * Empty hint 11 | * 12 | * 空目录提示 13 | */ 14 | empty: string 15 | } 16 | -------------------------------------------------------------------------------- /plugins/features/plugin-catalog/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useCopyCode.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/client/types.ts: -------------------------------------------------------------------------------- 1 | import type { ExactLocaleConfig } from '@vuepress/helper/client' 2 | import type { CopyCodePluginLocaleData } from '../shared/index.js' 3 | 4 | export type CopyCodePluginLocaleConfig = 5 | ExactLocaleConfig 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './copyCodePlugin.js' 2 | export * from './locales.js' 3 | export type * from './options.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-copy-code' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | export interface CopyCodePluginLocaleData { 2 | /** 3 | * Copy text 4 | * 5 | * 复制文字 6 | */ 7 | copy: string 8 | 9 | /** 10 | * Copied text 11 | * 12 | * 已复制文字 13 | */ 14 | copied: string 15 | } 16 | -------------------------------------------------------------------------------- /plugins/features/plugin-copy-code/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupCopyright.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | export type * from './typings.js' 3 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/src/client/typings.ts: -------------------------------------------------------------------------------- 1 | import type { CopyrightPluginSharedOptions } from '../shared/options.js' 2 | 3 | export type CopyrightPluginClientOptions = CopyrightPluginSharedOptions 4 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './copyrightPlugin.js' 2 | export * from './locales.js' 3 | export type * from './options.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './data.js' 2 | export type * from './frontmatter.js' 3 | export type * from './locales.js' 4 | export type * from './options.js' 5 | -------------------------------------------------------------------------------- /plugins/features/plugin-copyright/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { external: ['@mdit/plugin-icon'] }), 5 | ...rollupBundle('client/index'), 6 | ] 7 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './VPIcon.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './iconPlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/src/node/utils.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-icon' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Icon type 3 | * 4 | * 图标类型 5 | */ 6 | export type IconType = 'fontawesome' | 'iconfont' | 'iconify' | 'unknown' 7 | -------------------------------------------------------------------------------- /plugins/features/plugin-icon/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-medium-zoom/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle( 6 | { 7 | base: 'client', 8 | files: ['config', 'index'], 9 | }, 10 | { external: ['medium-zoom'] }, 11 | ), 12 | ] 13 | -------------------------------------------------------------------------------- /plugins/features/plugin-medium-zoom/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useMediumZoom.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-medium-zoom/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-medium-zoom/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --medium-zoom-z-index: 100; 3 | --medium-zoom-c-bg: var(--vp-c-bg-elv, #fff); 4 | --medium-zoom-opacity: 1; 5 | } 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-medium-zoom/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mediumZoomPlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/features/plugin-medium-zoom/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['chokidar'], 6 | }), 7 | ...rollupBundle( 8 | { 9 | base: 'client', 10 | files: ['config', 'index'], 11 | }, 12 | { external: ['@internal/noticeOptions'] }, 13 | ), 14 | ] 15 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Notice.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useNoticeOptions.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/client/config.ts: -------------------------------------------------------------------------------- 1 | import { h } from 'vue' 2 | import { defineClientConfig } from 'vuepress/client' 3 | import { Notice } from './components/index.js' 4 | 5 | import './styles/vars.css' 6 | 7 | export default defineClientConfig({ 8 | rootComponents: [() => h(Notice)], 9 | }) 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './composables/index.js' 3 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/client/noticeOptions.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@internal/noticeOptions' { 2 | import type { NoticeAttrOptions } from '../shared/index.js' 3 | 4 | export const NOTICE_OPTIONS: NoticeAttrOptions[] 5 | } 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './noticePlugin.js' 2 | export type * from './options.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-notice' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/node/options.ts: -------------------------------------------------------------------------------- 1 | import type { NoticeOptions } from '../shared/index.js' 2 | 3 | /** 4 | * Notice plugin options 5 | * 6 | * 通知插件选项 7 | */ 8 | export interface NoticePluginOptions { 9 | /** 10 | * Notice configuration 11 | * 12 | * 通知配置 13 | */ 14 | config: NoticeOptions[] 15 | } 16 | -------------------------------------------------------------------------------- /plugins/features/plugin-notice/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './notice.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle({ 6 | base: 'client', 7 | files: ['config', 'index'], 8 | }), 9 | ] 10 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useNprogress.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/src/client/config.ts: -------------------------------------------------------------------------------- 1 | import { defineClientConfig } from 'vuepress/client' 2 | import { useNprogress } from './composables/index.js' 3 | 4 | export default defineClientConfig({ 5 | setup() { 6 | useNprogress() 7 | }, 8 | }) 9 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/src/client/styles/nprogress.scss: -------------------------------------------------------------------------------- 1 | #nprogress { 2 | pointer-events: none; 3 | 4 | .bar { 5 | position: fixed; 6 | top: 0; 7 | left: 0; 8 | z-index: var(--nprogress-z-index); 9 | 10 | width: 100%; 11 | height: 2px; 12 | 13 | background: var(--nprogress-c); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --nprogress-c: var(--vp-c-accent); 3 | --nprogress-z-index: 1031; 4 | } 5 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './nprogressPlugin.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-nprogress/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle( 6 | { 7 | base: 'client', 8 | files: ['config', 'index'], 9 | }, 10 | { 11 | external: ['photoswipe'], 12 | }, 13 | ), 14 | ] 15 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './usePhotoSwipe.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './photo-swipe.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './helpers/index.js' 2 | export * from './composables/index.js' 3 | export type * from './typings.js' 4 | export { createPhotoSwipe } from './utils/index.js' 5 | export type * from '../shared/index.js' 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --photo-swipe-c-bullet: var(--vp-c-bg-elv); 3 | --photo-swipe-c-bullet-active: var(--vp-c-accent); 4 | } 5 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './createPhotoSwipe.js' 2 | export * from './images.js' 3 | export * from './loadingIcon.js' 4 | export * from './setupPhotoSwipe.js' 5 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './locales.js' 2 | export * from './photoSwipePlugin.js' 3 | 4 | export type * from './options.js' 5 | export type * from '../shared/index.js' 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-photo-swipe' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-photo-swipe/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle( 6 | { 7 | base: 'client', 8 | files: ['config', 'index'], 9 | }, 10 | { 11 | external: ['watermark-js-plus'], 12 | }, 13 | ), 14 | ] 15 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupWatermark.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/src/client/helper/index.ts: -------------------------------------------------------------------------------- 1 | export * from './watermark.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | export * from './helper/index.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './watermarkPlugin.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-watermark' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | -------------------------------------------------------------------------------- /plugins/features/plugin-watermark/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-append-date/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index') 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-append-date/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './appendDatePlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-append-date/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress-plugin/append-date' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-append-date/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [ 9 | { "path": "../../development/plugin-git/tsconfig.build.json" }, 10 | { "path": "../../../tools/helper/tsconfig.build.json" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-links-check/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index') 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-links-check/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './checkMarkdownLink.js' 2 | export * from './linksCheckPlugin.js' 3 | export type * from './options.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-links-check/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './echarts.js' 2 | export * from './mermaid.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/client/helpers/mermaid.ts: -------------------------------------------------------------------------------- 1 | import type { MermaidOptions } from '../typings/index.js' 2 | 3 | let mermaidOptions: MermaidOptions = {} 4 | 5 | export const defineMermaidConfig = (options: MermaidOptions): void => { 6 | mermaidOptions = options 7 | } 8 | 9 | /** 10 | * @internal 11 | */ 12 | export const useMermaidOptions = (): MermaidOptions => mermaidOptions 13 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './helpers/index.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/client/typings/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './mermaid.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/client/utils/flowchart-presets/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Forked from https://github.com/ulivz/vuepress-plugin-flowchart/tree/master/lib/presets 3 | * 4 | * MIT LICENSED 5 | */ 6 | 7 | import ant from './ant.js' 8 | import pie from './pie.js' 9 | import vue from './vue.js' 10 | 11 | export const flowchartPresets = { 12 | ant, 13 | vue, 14 | pie, 15 | } 16 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './encodeSVG.js' 2 | export * from './flowchart-presets/index.js' 3 | export * from './icons.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdown-it-plugins/index.js' 2 | export * from './markdownChartPlugin.js' 3 | export type * from './options.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/node/markdown-it-plugins/index.ts: -------------------------------------------------------------------------------- 1 | export * from './chartjs.js' 2 | export * from './echarts.js' 3 | export * from './flowchart.js' 4 | export * from './markmap.js' 5 | export * from './mermaid.js' 6 | export * from './plantuml.js' 7 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/src/shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'mermaid/dist/mermaid.esm.min.mjs' { 2 | // eslint-disable-next-line import/no-rename-default 3 | import mermaid from 'mermaid' 4 | 5 | export default mermaid 6 | } 7 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-chart/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-container/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['markdown-it-container'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-container/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownContainerPlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-container/src/node/markdown-it-container.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'markdown-it-container' { 2 | import type { PluginWithParams } from 'markdown-it' 3 | 4 | const container: PluginWithParams 5 | export = container 6 | } 7 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-container/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-ext/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: [ 5 | '@mdit/plugin-container', 6 | '@mdit/plugin-footnote', 7 | '@mdit/plugin-tasklist', 8 | 'js-yaml', 9 | ], 10 | }) 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-ext/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownExtPlugin.js' 2 | export * from './markdown-it-plugins/index.js' 3 | export type * from './options.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-ext/src/node/markdown-it-plugins/index.ts: -------------------------------------------------------------------------------- 1 | export * from './component.js' 2 | export * from './vPre.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-ext/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-hint/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['@mdit/plugin-alert', '@mdit/plugin-container'], 6 | }), 7 | ...rollupBundle('client/config'), 8 | ] 9 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-hint/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './alert.js' 2 | export * from './hint.js' 3 | export * from './markdownHintPlugin.js' 4 | export type * from './options.js' 5 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-hint/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: [ 5 | '@mdit/plugin-figure', 6 | '@mdit/plugin-img-lazyload', 7 | '@mdit/plugin-img-mark', 8 | '@mdit/plugin-img-size', 9 | ], 10 | }) 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/src/client/styles/figure.scss: -------------------------------------------------------------------------------- 1 | figure { 2 | text-align: center; 3 | 4 | /* hide external-link-icon */ 5 | > a[href*="://"]::after, 6 | > a[target=_blank]::after { 7 | display: none !important; 8 | } 9 | } 10 | 11 | figcaption { 12 | font-size: 0.8rem; 13 | } 14 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/src/client/styles/mark.scss: -------------------------------------------------------------------------------- 1 | [data-theme='light'] { 2 | figure:has(img[data-mode='darkmode-only']), 3 | img[data-mode='darkmode-only'] { 4 | display: none !important; 5 | } 6 | } 7 | 8 | [data-theme='dark'] { 9 | figure:has(img[data-mode='lightmode-only']), 10 | img[data-mode='lightmode-only'] { 11 | display: none !important; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownImagePlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/src/node/prepare/index.ts: -------------------------------------------------------------------------------- 1 | export * from './prepareClientConfigFile.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/src/node/utils.ts: -------------------------------------------------------------------------------- 1 | export const PLUGIN_NAME = '@vuepress/plugin-markdown-image' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-image/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-include/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['@mdit/plugin-include'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-include/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownIncludePlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-include/src/node/options.ts: -------------------------------------------------------------------------------- 1 | import type { MarkdownItIncludeOptions } from '@mdit/plugin-include' 2 | 3 | /** 4 | * Options for @vuepress/plugin-markdown-include 5 | * 6 | * @vuepress/plugin-markdown-include 插件的选项 7 | */ 8 | export type MarkdownIncludePluginOptions = Omit< 9 | MarkdownItIncludeOptions, 10 | 'currentPath' 11 | > 12 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-include/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-math/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['@mdit/plugin-katex-slim', '@mdit/plugin-mathjax-slim'], 6 | }), 7 | ...rollupBundle('client/composables/useKatexCopy', { 8 | external: ['katex/dist/contrib/copy-tex.min.js'], 9 | }), 10 | ] 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-math/src/client/composables/useKatexCopy.ts: -------------------------------------------------------------------------------- 1 | import { onMounted } from 'vue' 2 | 3 | export const useKatexCopy = (): void => { 4 | onMounted(async () => { 5 | if (__VUEPRESS_SSR__) return 6 | 7 | await import( 8 | /* webpackChunkName: "katex" */ 'katex/dist/contrib/copy-tex.min.js' 9 | ) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-math/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownMathPlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-math/src/node/prepare/index.ts: -------------------------------------------------------------------------------- 1 | export * from './prepareClientConfigFile.js' 2 | export * from './prepareMathjaxStyle.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-math/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['@mdit/plugin-demo', '@mdit/helper'], 6 | }), 7 | ...rollupBundle({ base: 'client', files: ['index', 'config'] }), 8 | ] 9 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './VPPreview.js' 2 | export { default as VPPreview } from './VPPreview.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --preview-c-divider: var(--vp-c-divider); 3 | --preview-c-button: var(--vp-c-text-mute); 4 | --preview-c-button-hover: var(--vp-c-accent); 5 | --preview-c-button-focus: var(--vp-c-text); 6 | --preview-border-radius: 8px; 7 | } 8 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownPreviewPlugin.js' 2 | export type * from './options.js' 3 | export * from './preview.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/node/options.ts: -------------------------------------------------------------------------------- 1 | import type { LocaleConfig } from 'vuepress' 2 | import type { MarkdownPreviewPluginLocaleData } from '../shared/index.js' 3 | 4 | export interface MarkdownPreviewPluginOptions { 5 | /** 6 | * Localization config for preview component 7 | * 8 | * 预览组件的本地化配置 9 | */ 10 | locales?: LocaleConfig 11 | } 12 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | import type { ExactLocaleConfig } from '@vuepress/helper' 2 | 3 | export interface MarkdownPreviewPluginLocaleData { 4 | /** 5 | * Toggle code button text 6 | * 7 | * 切换代码按钮文字 8 | */ 9 | toggle: string 10 | } 11 | 12 | export type MarkdownPreviewPluginLocaleConfig = 13 | ExactLocaleConfig 14 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-preview/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-stylize/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: [ 5 | '@mdit/plugin-align', 6 | '@mdit/plugin-attrs', 7 | '@mdit/plugin-mark', 8 | '@mdit/plugin-spoiler', 9 | '@mdit/plugin-stylize', 10 | '@mdit/plugin-sub', 11 | '@mdit/plugin-sup', 12 | ], 13 | }) 14 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-stylize/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdownStylizePlugin.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-stylize/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['@mdit/plugin-tab'], 6 | }), 7 | ...rollupBundle({ 8 | base: 'client', 9 | files: ['components/CodeTabs', 'components/Tabs', 'index'], 10 | }), 11 | ] 12 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CodeTabs.js' 2 | export * from './Tabs.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --code-tabs-c-text: var(--code-c-text); 3 | --code-tabs-c-bg: var(--code-c-highlight-bg); 4 | --code-tabs-c-hover: var(--code-c-bg, var(--vp-c-bg-alt)); 5 | --tab-c-bg: var(--vp-c-bg); 6 | --tab-c-nav: var(--vp-c-text); 7 | --tab-c-bg-nav: var(--vp-c-grey-bg); 8 | --tab-c-bg-nav-hover: var(--vp-c-control-hover); 9 | } 10 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './codeTabs.js' 2 | export * from './markdownTabPlugin.js' 3 | export type * from './options.js' 4 | export * from './tabs.js' 5 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/src/node/utils.ts: -------------------------------------------------------------------------------- 1 | // Single quote will break @vue/compiler-sfc 2 | export const stringifyProp = (data: unknown): string => 3 | JSON.stringify(data).replace(/'/g, ''') 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-markdown-tab/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-prismjs/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['prismjs', 'prismjs/components/index.js'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-prismjs/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './loadLanguages.js' 2 | export type * from './options.js' 3 | export * from './prismjsPlugin.js' 4 | export * from './resolveHighlighter.js' 5 | export * from './markdown/index.js' 6 | export * from './parser/index.js' 7 | export * from './utils/index.js' 8 | export type * from './types.js' 9 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-prismjs/src/node/markdown/index.ts: -------------------------------------------------------------------------------- 1 | export * from './highlightPlugin.js' 2 | export * from './preWrapperPlugin.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-prismjs/src/node/parser/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getCodeParser.js' 2 | export * from './createNotationRule.js' 3 | export * from './notation.js' 4 | export * from './highlightLines.js' 5 | export * from './highlightWord.js' 6 | export * from './whitespace.js' 7 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-prismjs/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './escapeRegExp.js' 2 | export * from './languages.js' 3 | export * from './resolveLanguage.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-prismjs/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [ 9 | { "path": "../../../tools/highlighter-helper/tsconfig.build.json" }, 10 | { "path": "../../../tools/helper/tsconfig.build.json" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index', { 5 | external: ['@mdit/plugin-uml'], 6 | }), 7 | ...rollupBundle({ 8 | base: 'client', 9 | files: ['layouts/index', 'index'], 10 | }), 11 | ] 12 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './RevealJs.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './revealJs.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './helpers/index.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/layouts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './SlidePage.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/styles/reveal-js.scss: -------------------------------------------------------------------------------- 1 | .vp-reveal { 2 | position: relative; 3 | width: 100%; 4 | height: 400px; 5 | min-height: 400px; 6 | 7 | @media print { 8 | page-break-inside: avoid; 9 | } 10 | } 11 | 12 | .reveal-loading { 13 | position: absolute; 14 | inset: 0 0 auto; 15 | color: var(--vp-c-accent-bg); 16 | } 17 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/styles/themes/highlight/_index.scss: -------------------------------------------------------------------------------- 1 | .reveal pre.code-wrapper { 2 | margin: var(--r-block-margin) auto; 3 | padding: 0; 4 | background: transparent; 5 | 6 | code { 7 | color: inherit; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --reveal-c-accent: var(--vp-c-accent); 3 | --reveal-c-control: var(--vp-c-control); 4 | --reveal-c-control-hover: var(--vp-c-control-hover); 5 | --reveal-c-shadow: var(--vp-c-shadow); 6 | } 7 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './revealJs.js' 3 | export * from './revealJsPlugin.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/node/prepare/index.ts: -------------------------------------------------------------------------------- 1 | export * from './prepareClientConfigFile.js' 2 | export * from './prepareRevealJsEntry.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/node/utils.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-revealjs' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './theme.js' 2 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/src/shared/theme.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Built-in reveal.js theme names 3 | * 4 | * reveal.js 内置主题名称 5 | */ 6 | export type RevealJsTheme = 7 | | 'auto' 8 | | 'beige' 9 | | 'black' 10 | | 'blood' 11 | | 'league' 12 | | 'moon' 13 | | 'night' 14 | | 'serif' 15 | | 'simple' 16 | | 'sky' 17 | | 'solarized' 18 | | 'white' 19 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-revealjs/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-shiki/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle( 4 | { base: 'node', files: ['index', 'resolveLang'] }, 5 | { 6 | external: ['@shikijs/transformers', 'nanoid', 'shiki', 'synckit'], 7 | }, 8 | ) 9 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-shiki/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './shikiPlugin.js' 3 | export type * from './types.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-shiki/src/node/markdown/highlighter/index.ts: -------------------------------------------------------------------------------- 1 | export * from './createMarkdownFilePathGetter.js' 2 | export * from './createShikiHighlighter.js' 3 | export * from './getHighLightFunction.js' 4 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-shiki/src/node/markdown/index.ts: -------------------------------------------------------------------------------- 1 | export * from './highlighter/index.js' 2 | export * from './preWrapperPlugin.js' 3 | -------------------------------------------------------------------------------- /plugins/markdown/plugin-shiki/src/node/transformers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getTransformers.js' 2 | export * from './vuepressTransformers.js' 3 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PwaInstall.js' 2 | export * from './PwaFoundPopup.js' 3 | export * from './PwaReadyPopup.js' 4 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupPwa.js' 2 | export * from './setupViewPoint.js' 3 | export * from './usePwaEvent.js' 4 | export * from './useRegisterSW.js' 5 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './composables/index.js' 3 | export * from './utils/index.js' 4 | export type * from './types.js' 5 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/client/types.ts: -------------------------------------------------------------------------------- 1 | import type { ExactLocaleConfig } from '@vuepress/helper/client' 2 | import type { PwaPluginLocaleData } from '../shared/index.js' 3 | 4 | export type PwaPluginLocaleConfig = ExactLocaleConfig 5 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './forceUpdate.js' 2 | export * from './registerSW.js' 3 | export * from './skipWaiting.js' 4 | export * from './unregisterSW.js' 5 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './locales.js' 2 | export type * from './options.js' 3 | export * from './pwaPlugin.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-pwa' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | export type * from './manifest.js' 3 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-pwa/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-remove-pwa/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index') 4 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-remove-pwa/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './removePwaPlugin.js' 3 | -------------------------------------------------------------------------------- /plugins/pwa/plugin-remove-pwa/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default [ 4 | ...rollupBundle('node/index'), 5 | ...rollupBundle('client/index', { 6 | external: ['@docsearch/js', 'ts-debounce'], 7 | }), 8 | ] 9 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './DocSearch.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useDocSearchHotkeyListener.js' 2 | export * from './useDocSearchSlim.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './docsearch.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './helpers/index.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@docsearch/css' { 2 | export {} 3 | } 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/styles/docsearch.scss: -------------------------------------------------------------------------------- 1 | /* stylelint-disable selector-class-pattern */ 2 | 3 | @media (max-width: 750px) { 4 | .DocSearch-Container { 5 | /* fix the search modal on mobile */ 6 | position: fixed; 7 | } 8 | } 9 | 10 | @media print { 11 | #docsearch-container, 12 | .DocSearch-Button { 13 | display: none; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getFacetFilters.js' 2 | export * from './getSearchButtonTemplate.js' 3 | export * from './pollToOpenDocSearch.js' 4 | export * from './preconnectToAlgolia.js' 5 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './docsearchPlugin.js' 2 | export type * from '../shared/index.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/node/utils.ts: -------------------------------------------------------------------------------- 1 | export const PLUGIN_NAME = '@vuepress/plugin-docsearch' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | import type { DocSearchProps } from '@docsearch/react' 2 | import type { DeepRequired } from '@vuepress/helper/shared' 3 | 4 | export type DocSearchLocaleData = DeepRequired< 5 | Pick 6 | > 7 | -------------------------------------------------------------------------------- /plugins/search/plugin-docsearch/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/search/plugin-meilisearch/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './MeiliSearch.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-meilisearch/src/client/shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'meilisearch-docsearch/css/button' { 2 | export {} 3 | } 4 | 5 | declare module 'meilisearch-docsearch/css/modal' { 6 | export {} 7 | } 8 | -------------------------------------------------------------------------------- /plugins/search/plugin-meilisearch/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getSearchButtonTemplate.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-meilisearch/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './locales.js' 2 | export * from './meilisearchPlugin.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-meilisearch/src/shim.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import type { ComponentOptions } from 'vue' 3 | 4 | const comp: ComponentOptions 5 | export default comp 6 | } 7 | -------------------------------------------------------------------------------- /plugins/search/plugin-meilisearch/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './SearchBox.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useSearchIndex.js' 2 | export * from './useSearchSuggestions.js' 3 | export * from './useSuggestionsFocus.js' 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './composables/index.js' 3 | export * from './utils/index.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/searchIndex.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@internal/searchIndex' { 2 | import type { SearchIndex } from '@vuepress/plugin-search/client' 3 | 4 | export const SEARCH_INDEX: SearchIndex 5 | } 6 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/styles/search.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/styles/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --search-c-bg: var(--vp-c-bg); 3 | --search-c-accent: var(--vp-c-accent); 4 | --search-c-text: var(--vp-c-text); 5 | --search-c-divider: var(--vp-c-divider); 6 | --search-c-item-text: var(--vp-c-text-subtle); 7 | --search-c-item-focus: var(--vp-c-bg-alt); 8 | --search-input-width: 8rem; 9 | --search-result-width: 20rem; 10 | } 11 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/types.ts: -------------------------------------------------------------------------------- 1 | import type { ExactLocaleConfig } from '@vuepress/helper/client' 2 | import type { SearchPluginLocaleData } from '../shared/index.js' 3 | 4 | export type SearchPluginLocaleConfig = ExactLocaleConfig 5 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './isQueryMatched.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './prepareSearchIndex.js' 2 | export * from './searchPlugin.js' 3 | export type * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './locales.js' 2 | export type * from './searchIndex.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | export interface SearchPluginLocaleData { 2 | /** 3 | * The placeholder of the search box 4 | */ 5 | placeholder: string 6 | } 7 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/src/shared/searchIndex.ts: -------------------------------------------------------------------------------- 1 | import type { PageHeader } from 'vuepress/shared' 2 | 3 | export interface SearchIndexItem { 4 | title: string 5 | path: string 6 | pathLocale: string 7 | extraFields: string[] 8 | headers: PageHeader[] 9 | } 10 | 11 | export type SearchIndex = SearchIndexItem[] 12 | -------------------------------------------------------------------------------- /plugins/search/plugin-search/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "paths": { 7 | "@internal/searchIndex": ["./src/client/searchIndex.d.ts"] 8 | }, 9 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 10 | }, 11 | "include": ["./src"] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useActiveState.js' 2 | export * from './useArrayCycle.js' 3 | export * from './useMobile.js' 4 | export * from './useQueryHistory.js' 5 | export * from './useResultHistory.js' 6 | export * from './useResults.js' 7 | export * from './useSuggestions.js' 8 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './search.js' 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/icons/closeIcon.ts: -------------------------------------------------------------------------------- 1 | export const CLOSE_ICON = 2 | '' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/icons/index.ts: -------------------------------------------------------------------------------- 1 | export * from './closeIcon.js' 2 | export * from './keyIcons.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './helpers/index.js' 2 | export { type SearchWorker, createSearchWorker } from './utils/index.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/typings/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './result.js' 2 | export type * from './worker.js' 3 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/utils/getResultPath.ts: -------------------------------------------------------------------------------- 1 | import { store } from '@temp/slimsearch/store.js' 2 | 3 | import type { MatchedItem } from '../typings/index.js' 4 | 5 | export const getResultPath = (item: MatchedItem): string => 6 | store[item.id] + ('anchor' in item ? `#${item.anchor}` : '') 7 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './createSearchWorker.js' 2 | export * from './getResultPath.js' 3 | export * from './querySplitter.js' 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/client/worker-utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getMatchedContent.js' 2 | export * from './getSearchResults.js' 3 | export * from './getSuggestions.js' 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './slimsearchPlugin.js' 3 | export * from '../shared/index.js' 4 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/shared/formatter.ts: -------------------------------------------------------------------------------- 1 | export type SlimSearchCustomFieldFormatter = Record | string 2 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './data.js' 2 | export type * from './formatter.js' 3 | export type * from './locales.js' 4 | export type SlimSearchSortStrategy = 'max' | 'total' 5 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/tests/__fixtures__/src/single.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tag Test 3 | tag: markdown 4 | --- 5 | 6 | Markdown content. 7 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/tests/__fixtures__/src/tagwithoutTitle.md: -------------------------------------------------------------------------------- 1 | --- 2 | tag: 3 | - markdown 4 | --- 5 | 6 | Markdown content. 7 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/tests/__fixtures__/theme/empty.ts: -------------------------------------------------------------------------------- 1 | import type { Theme } from 'vuepress/core' 2 | 3 | export const emptyTheme: Theme = { 4 | name: 'vuepress-theme-empty', 5 | } 6 | -------------------------------------------------------------------------------- /plugins/search/plugin-slimsearch/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index') 4 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './seoPlugin.js' 3 | export type * from '../typings/index.js' 4 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/src/node/utils/getUrl.ts: -------------------------------------------------------------------------------- 1 | import { 2 | isLinkHttp, 3 | removeEndingSlash, 4 | removeLeadingSlash, 5 | } from 'vuepress/shared' 6 | 7 | export const getUrl = (hostname: string, base: string, url: string): string => 8 | `${removeEndingSlash( 9 | isLinkHttp(hostname) ? hostname : `https://${hostname}`, 10 | )}${base}${removeLeadingSlash(url)}` 11 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getAlternatePaths.js' 2 | export * from './getAuthor.js' 3 | export * from './getCover.js' 4 | export * from './getImages.js' 5 | export * from './getLinks.js' 6 | export * from './getUrl.js' 7 | export * from './logger.js' 8 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/src/node/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-seo' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/src/typings/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './frontmatter.js' 2 | export type * from './helper.js' 3 | export type * from './ogp.js' 4 | export type * from './schema.js' 5 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/src/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | --- 4 | 5 | This is a home page. 6 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/src/description.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Description Test 3 | description: This page is used to test the description of the page. 4 | --- 5 | 6 | Page content. 7 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/src/excerpt.md: -------------------------------------------------------------------------------- 1 | # Page Excerpt 2 | 3 | This is **excerpt** content. 4 | 5 | 6 | 7 | ## Heading 2 8 | 9 | Page content. 10 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/src/zh/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | --- 4 | 5 | 这是一个主页。 6 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/src/zh/description.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 描述测试 3 | description: 这个页面用于测试页面描述 4 | --- 5 | 6 | 页面内容。 7 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/src/zh/excerpt.md: -------------------------------------------------------------------------------- 1 | # 页面摘要 2 | 3 | 这是页面**摘要**。 4 | 5 | 6 | 7 | ## 标题 2 8 | 9 | 页面内容。 10 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tests/__fixtures__/theme/empty.ts: -------------------------------------------------------------------------------- 1 | import type { Theme } from 'vuepress/core' 2 | 3 | export const emptyTheme: Theme = { 4 | name: 'vuepress-theme-empty', 5 | } 6 | -------------------------------------------------------------------------------- /plugins/seo/plugin-seo/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [ 10 | { "path": "../../development/plugin-git/tsconfig.build.json" }, 11 | { "path": "../../../tools/helper/tsconfig.build.json" } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /plugins/seo/plugin-sitemap/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['sitemap'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/seo/plugin-sitemap/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './sitemapPlugin.js' 2 | export type * from '../typings/index.js' 3 | -------------------------------------------------------------------------------- /plugins/seo/plugin-sitemap/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-sitemap' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/seo/plugin-sitemap/src/typings/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './frontmatter.js' 2 | export type * from './options.js' 3 | export type * from './sitemap.js' 4 | -------------------------------------------------------------------------------- /plugins/seo/plugin-sitemap/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"], 8 | "references": [ 9 | { "path": "../../development/plugin-git/tsconfig.build.json" }, 10 | { "path": "../../../tools/helper/tsconfig.build.json" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /plugins/tools/plugin-cache/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['ci-info', 'lru-cache'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/tools/plugin-cache/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './cachePlugin.js' 2 | -------------------------------------------------------------------------------- /plugins/tools/plugin-cache/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /plugins/tools/plugin-google-tag-manager/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index') 4 | -------------------------------------------------------------------------------- /plugins/tools/plugin-google-tag-manager/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './googleTagManagerPlugin.js' 2 | -------------------------------------------------------------------------------- /plugins/tools/plugin-google-tag-manager/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export { default as RedirectModal } from './RedirectModal.js' 2 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupDevServerRedirect.js' 2 | export * from './setupRedirect.js' 3 | export * from './useRedirectInfo.js' 4 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './composables/index.js' 3 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/client/types.ts: -------------------------------------------------------------------------------- 1 | import type { ExactLocaleConfig } from '@vuepress/helper/client' 2 | import type { RedirectPluginLocaleData } from '../shared/index.js' 3 | 4 | export type RedirectPluginLocaleConfig = 5 | ExactLocaleConfig 6 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './storage.js' 2 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/node/generate/index.ts: -------------------------------------------------------------------------------- 1 | export * from './generateAutoLocaleRedirectFiles.js' 2 | export * from './generateRedirectFiles.js' 3 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './redirectPlugin.js' 2 | export type * from './types/index.js' 3 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/node/logger.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from '@vuepress/helper' 2 | 3 | export const PLUGIN_NAME = '@vuepress/plugin-redirect' 4 | 5 | export const logger = new Logger(PLUGIN_NAME) 6 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/node/types/frontmatter.ts: -------------------------------------------------------------------------------- 1 | import type { PageFrontmatter } from 'vuepress' 2 | 3 | export interface RedirectPluginFrontmatter extends PageFrontmatter { 4 | redirectFrom?: string[] | string 5 | redirectTo?: string 6 | } 7 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/node/types/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './frontmatter.js' 2 | export type * from './options.js' 3 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './behavior.js' 2 | export type * from './locales.js' 3 | export * from './normalizePath.js' 4 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/shared/normalizePath.ts: -------------------------------------------------------------------------------- 1 | const HASH_REGEXP = /#.*$/u 2 | 3 | export const normalizePath = (path: string, removeHash = false): string => 4 | (removeHash ? path.replace(HASH_REGEXP, '') : path) 5 | .replace(/\/(?:README\.md)?$/i, '/index.html') 6 | .replace(/(?:\.(?:md|html))?$/, '.html') 7 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/src/shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@temp/redirect/map.js' { 2 | export const redirectMap: Record 3 | } 4 | 5 | declare module '@vuepress/plugin-redirect/modal' { 6 | import type { ComponentOptions } from 'vue' 7 | 8 | const component: ComponentOptions 9 | export default component 10 | } 11 | -------------------------------------------------------------------------------- /plugins/tools/plugin-redirect/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types", "vite/client", "webpack-env"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../../../tools/helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/tools/plugin-register-components/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../../scripts/rollup.js' 2 | 3 | export default rollupBundle('node/index', { 4 | external: ['chokidar'], 5 | }) 6 | -------------------------------------------------------------------------------- /plugins/tools/plugin-register-components/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getComponentsFromDir.js' 2 | export * from './prepareClientConfigFile.js' 3 | export * from './registerComponentsPlugin.js' 4 | -------------------------------------------------------------------------------- /plugins/tools/plugin-register-components/tests/__fixtures__/components/FooBar.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/tools/plugin-register-components/tests/__fixtures__/components/FooBar.vue -------------------------------------------------------------------------------- /plugins/tools/plugin-register-components/tests/__fixtures__/components/FooBaz.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/plugins/tools/plugin-register-components/tests/__fixtures__/components/FooBaz.ts -------------------------------------------------------------------------------- /plugins/tools/plugin-register-components/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/components/global/index.ts: -------------------------------------------------------------------------------- 1 | import Badge from './Badge.vue' 2 | 3 | export { Badge } 4 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | export type * from './typings.js' 3 | export * from './utils/index.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/shim.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import type { ComponentOptions } from 'vue' 3 | 4 | const component: ComponentOptions 5 | export default component 6 | } 7 | 8 | declare module '*/styles/_variables.module.scss' { 9 | const cSSVariables: Record 10 | export default cSSVariables 11 | } 12 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/_variables.module.scss: -------------------------------------------------------------------------------- 1 | @use 'variables' as *; 2 | 3 | :export { 4 | mobile: $MQMobile; 5 | } 6 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/_variables.scss: -------------------------------------------------------------------------------- 1 | /* stylelint-disable scss/dollar-variable-pattern */ 2 | @forward '@vuepress/plugin-palette/palette'; 3 | 4 | // responsive breakpoints 5 | $MQNarrow: 959px !default; 6 | $MQMobile: 719px !default; 7 | $MQMobileNarrow: 419px !default; 8 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/content/index.scss: -------------------------------------------------------------------------------- 1 | @use 'normalize'; 2 | @use 'code'; 3 | @use 'toc'; 4 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/content/toc.scss: -------------------------------------------------------------------------------- 1 | .table-of-contents { 2 | .vp-badge { 3 | vertical-align: middle; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/index.scss: -------------------------------------------------------------------------------- 1 | @use 'vars'; 2 | @use 'vars-dark'; 3 | @use 'normalize'; 4 | @use 'content'; 5 | @use 'arrow'; 6 | @use 'external-link-icon'; 7 | @use 'layout'; 8 | @use 'plugins'; 9 | @use '@vuepress/plugin-palette/style'; 10 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/layout.scss: -------------------------------------------------------------------------------- 1 | @use 'variables' as *; 2 | 3 | :root { 4 | scroll-behavior: smooth; 5 | } 6 | 7 | .vp-hide-mobile { 8 | @media screen and (max-width: $MQMobile) { 9 | display: none; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/styles/normalize.scss: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: var(--font-family); 3 | } 4 | 5 | code { 6 | font-family: var(--code-font-family); 7 | } 8 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './isActiveSidebarItem.js' 2 | export * from './resolveAutoLink.js' 3 | export * from './resolveEditLink.js' 4 | export * from './resolvePrefix.js' 5 | export * from './resolveRepoType.js' 6 | -------------------------------------------------------------------------------- /themes/theme-default/src/client/utils/resolvePrefix.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ensureEndingSlash, 3 | isLinkAbsolute, 4 | isLinkWithProtocol, 5 | } from '@vuepress/helper/client' 6 | 7 | export const resolvePrefix = (prefix = '', path = ''): string => 8 | isLinkAbsolute(path) || isLinkWithProtocol(path) 9 | ? path 10 | : `${ensureEndingSlash(prefix)}${path}` 11 | -------------------------------------------------------------------------------- /themes/theme-default/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './defaultTheme.js' 2 | export type * from './typings.js' 3 | export * from './utils/index.js' 4 | export type * from '../shared/index.js' 5 | -------------------------------------------------------------------------------- /themes/theme-default/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './assignDefaultLocaleOptions.js' 2 | export * from './resolveMarkdownHintLocales.js' 3 | -------------------------------------------------------------------------------- /themes/theme-default/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './nav.js' 2 | export type * from './navbar.js' 3 | export type * from './options.js' 4 | export type * from './page.js' 5 | export type * from './sidebar.js' 6 | -------------------------------------------------------------------------------- /tools/create-vuepress/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../scripts/rollup.js' 2 | 3 | export default rollupBundle('index', { 4 | external: [/^node:/, '@inquirer/prompts', 'commander'], 5 | dts: false, 6 | }) 7 | -------------------------------------------------------------------------------- /tools/create-vuepress/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export const KNOWN_THEME_COMMANDS = { 2 | hope: 'create-vuepress-theme-hope', 3 | } 4 | -------------------------------------------------------------------------------- /tools/create-vuepress/src/flow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './createPackageJson.js' 2 | export * from './generateTemplate.js' 3 | -------------------------------------------------------------------------------- /tools/create-vuepress/src/utils/checkYarnClassic.ts: -------------------------------------------------------------------------------- 1 | import { spawnSync } from 'node:child_process' 2 | 3 | export const checkYarnClassic = (): boolean => { 4 | try { 5 | return spawnSync('yarn --version', [], { 6 | stdio: 'ignore', 7 | shell: true, 8 | }) 9 | .stdout.toString() 10 | .startsWith('1') 11 | } catch { 12 | return false 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tools/create-vuepress/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './checkYarnClassic.js' 2 | export * from './file.js' 3 | export * from './getPackageManager.js' 4 | export * from './getRegistry.js' 5 | export * from './normalizeThemeName.js' 6 | export * from './pkgJson.js' 7 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/archive1.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 1998-01-01 3 | category: 4 | - History 5 | tag: 6 | - WWI 7 | archive: true 8 | --- 9 | 10 | # Archive Article1 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/archive2.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 1998-01-02 3 | category: 4 | - History 5 | tag: 6 | - WWII 7 | archive: true 8 | --- 9 | 10 | # Archive Article2 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article1.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-01 3 | category: 4 | - Category A 5 | tag: 6 | - tag A 7 | - tag B 8 | --- 9 | 10 | # Article 1 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article10.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-10 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 10 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article11.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-11 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 11 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article12.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-12 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 12 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article2.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-02 3 | category: 4 | - Category A 5 | tag: 6 | - tag A 7 | - tag B 8 | --- 9 | 10 | # Article 2 11 | 12 | ## Heading 2 13 | 14 | Here is the content. 15 | 16 | ### Heading 3 17 | 18 | Here is the content. 19 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article3.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-03 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 3 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article4.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-04 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 4 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article5.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-05 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 5 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article6.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-06 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag A 8 | - tag B 9 | --- 10 | 11 | # Article 6 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article7.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-07 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 7 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article8.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-08 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 8 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/article9.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2022-01-09 3 | category: 4 | - Category A 5 | - Category B 6 | tag: 7 | - tag C 8 | - tag D 9 | --- 10 | 11 | # Article 9 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/sticky.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2021-01-01 3 | category: 4 | - Category C 5 | tag: 6 | - tag E 7 | sticky: true 8 | excerpt:

A sticky article demo.

9 | --- 10 | 11 | # Sticky Article 12 | 13 | ## Heading 2 14 | 15 | Here is the content. 16 | 17 | ### Heading 3 18 | 19 | Here is the content. 20 | -------------------------------------------------------------------------------- /tools/create-vuepress/template/blog/posts/sticky2.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2020-01-01 3 | category: 4 | - Category C 5 | tag: 6 | - tag E 7 | sticky: 10 8 | --- 9 | 10 | # Sticky Article with Higher Priority 11 | 12 | Excerpt information which is added manually. 13 | 14 | 15 | 16 | ## Heading 2 17 | 18 | Here is the content. 19 | 20 | ### Heading 3 21 | 22 | Here is the content. 23 | -------------------------------------------------------------------------------- /tools/create-vuepress/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /tools/helper/src/client/components/RenderDefault.ts: -------------------------------------------------------------------------------- 1 | import type { FunctionalComponent, VNode } from 'vue' 2 | 3 | /** 4 | * Render default slot content 5 | * 6 | * 渲染默认插槽内容 7 | */ 8 | export const RenderDefault: FunctionalComponent< 9 | Record, 10 | Record, 11 | { default: () => VNode | VNode[] | null } 12 | > = (_props, { slots }) => slots.default() 13 | -------------------------------------------------------------------------------- /tools/helper/src/client/components/Transitions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './FadeInExpandTransition.js' 2 | -------------------------------------------------------------------------------- /tools/helper/src/client/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LoadingIcon.js' 2 | export * from './RenderDefault.js' 3 | export * from './Transitions/index.js' 4 | -------------------------------------------------------------------------------- /tools/helper/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useDarkMode.js' 2 | export * from './useHeaders.js' 3 | export * from './useLocaleConfig.js' 4 | export * from './useKeys.js' 5 | export * from './useRoutePaths.js' 6 | -------------------------------------------------------------------------------- /tools/helper/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index.js' 2 | export * from './composables/index.js' 3 | export type * from './typings/index.js' 4 | export * from './utils/index.js' 5 | export * from '../shared/index.js' 6 | -------------------------------------------------------------------------------- /tools/helper/src/client/noopComponent.ts: -------------------------------------------------------------------------------- 1 | import type { FunctionalComponent } from 'vue' 2 | 3 | /** 4 | * A noop component that renders nothing 5 | * 6 | * 一个不渲染任何内容的空组件 7 | */ 8 | const noopComponent: FunctionalComponent = () => null 9 | 10 | export default noopComponent 11 | -------------------------------------------------------------------------------- /tools/helper/src/client/noopModule.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Noop module 3 | * 4 | * 空模块 5 | */ 6 | export default {} 7 | -------------------------------------------------------------------------------- /tools/helper/src/client/styles/sr-only.scss: -------------------------------------------------------------------------------- 1 | .sr-only { 2 | @media screen { 3 | position: absolute; 4 | 5 | overflow: hidden; 6 | clip-path: rect(0 0 0 0); 7 | 8 | width: 1px; 9 | height: 1px; 10 | margin: -1px; 11 | padding: 0; 12 | border: 0; 13 | } 14 | 15 | @media print { 16 | display: none; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tools/helper/src/client/styles/transition/fade-in.scss: -------------------------------------------------------------------------------- 1 | @import './vars.css'; 2 | 3 | .fade-in { 4 | &-enter-active, 5 | &-leave-active { 6 | transition: all var(--transition-duration) var(--transition-ease-in-out) !important; 7 | } 8 | 9 | &-enter-from, 10 | &-leave-to { 11 | opacity: 0 !important; 12 | } 13 | 14 | &-leave-from, 15 | &-enter-to { 16 | opacity: 1; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tools/helper/src/client/typings/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './slot.js' 2 | -------------------------------------------------------------------------------- /tools/helper/src/client/utils/getDarkMode.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Get darkmode status from DOM 3 | * 4 | * 从 DOM 获取暗色模式状态 5 | * 6 | * @returns Darkmode status / 暗色模式状态 7 | */ 8 | export const getDarkMode = (): boolean => 9 | document.documentElement.getAttribute('data-theme') === 'dark' 10 | -------------------------------------------------------------------------------- /tools/helper/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './data.js' 2 | export * from './env.js' 3 | export * from './getDarkMode.js' 4 | export * from './getHeaders.js' 5 | export * from './isFocusingTextControl.js' 6 | export * from './isSlotContentEmpty.js' 7 | export * from './isKeyMatched.js' 8 | export * from './hasGlobalComponent.js' 9 | export * from './message.js' 10 | export * from './wait.js' 11 | -------------------------------------------------------------------------------- /tools/helper/src/client/utils/wait.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Wait for a given time 3 | * 4 | * 等待指定时间 5 | * 6 | * @param ms - Wait time in milliseconds / 等待时间(毫秒) 7 | * 8 | * @returns A promise that resolves after the given time / 在指定时间后解析的 Promise 9 | */ 10 | export const wait = (ms: number): Promise => 11 | new Promise((resolve) => { 12 | setTimeout(resolve, ms) 13 | }) 14 | -------------------------------------------------------------------------------- /tools/helper/src/node/bundler/index.ts: -------------------------------------------------------------------------------- 1 | export * from './addCustomElement.js' 2 | export * from './customizeDevServer.js' 3 | export * from './getBundlerName.js' 4 | export * from './vite/index.js' 5 | export * from './webpack/index.js' 6 | -------------------------------------------------------------------------------- /tools/helper/src/node/bundler/vite/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mergeViteConfig.js' 2 | export * from './viteHelper.js' 3 | -------------------------------------------------------------------------------- /tools/helper/src/node/bundler/webpack/index.ts: -------------------------------------------------------------------------------- 1 | export * from './chainWebpack.js' 2 | export * from './configWebpack.js' 3 | -------------------------------------------------------------------------------- /tools/helper/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './bundler/index.js' 2 | export * from './locales/index.js' 3 | export * from './page/index.js' 4 | export * from './utils/index.js' 5 | export * from '../shared/index.js' 6 | -------------------------------------------------------------------------------- /tools/helper/src/node/locales/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getFullLocaleConfig.js' 2 | export type * from './types.js' 3 | -------------------------------------------------------------------------------- /tools/helper/src/node/locales/types.ts: -------------------------------------------------------------------------------- 1 | import type { LocaleData } from 'vuepress/shared' 2 | 3 | export type DefaultLocaleInfoItem = [ 4 | lang: string[], 5 | data: T, 6 | ] 7 | 8 | export type DefaultLocaleInfo = 9 | DefaultLocaleInfoItem[] 10 | -------------------------------------------------------------------------------- /tools/helper/src/node/page/index.ts: -------------------------------------------------------------------------------- 1 | export * from './excerpt.js' 2 | export * from './text.js' 3 | -------------------------------------------------------------------------------- /tools/helper/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './data.js' 2 | export * from './isModuleAvailable.js' 3 | export * from './getModulePath.js' 4 | export * from './logger.js' 5 | export * from './packageManager.js' 6 | -------------------------------------------------------------------------------- /tools/helper/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './deepAssign.js' 2 | export * from './date.js' 3 | export type * from './header.js' 4 | export * from './helper.js' 5 | export * from './link.js' 6 | export type * from './locales.js' 7 | export type * from './key.js' 8 | export type * from './types.js' 9 | -------------------------------------------------------------------------------- /tools/helper/src/shared/locales.ts: -------------------------------------------------------------------------------- 1 | import type { LocaleData } from 'vuepress/shared' 2 | 3 | /** 4 | * Generate locale config with exact locale data 5 | */ 6 | export type ExactLocaleConfig = Record< 7 | string, 8 | T 9 | > 10 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/config/npm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "packageManager": "npm@11.4.1" 4 | } 5 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/config/pnpm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "packageManager": "pnpm@10.11.1" 4 | } 5 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/config/yarn/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "packageManager": "yarn@4.0.0" 4 | } 5 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/global/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test" 3 | } 4 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/lock-file/npm/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "name": "test" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/lock-file/npm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test" 3 | } 4 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/lock-file/pnpm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test" 3 | } 4 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/lock-file/pnpm/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/tools/helper/tests/__fixtures__/package-manager/lock-file/pnpm/pnpm-lock.yaml -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/lock-file/yarn/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test" 3 | } 4 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/package-manager/lock-file/yarn/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuepress/ecosystem/21b429ab45363a1f7cddf41279b9e0855061cbd4/tools/helper/tests/__fixtures__/package-manager/lock-file/yarn/yarn.lock -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/src/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | --- 4 | 5 | Homepage Content 6 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/src/component.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Component test 3 | --- 4 | 5 | A text with . 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tools/helper/tests/__fixtures__/theme/empty.ts: -------------------------------------------------------------------------------- 1 | import type { Theme } from 'vuepress/core' 2 | 3 | export const emptyTheme: Theme = { 4 | name: 'vuepress-theme-empty', 5 | } 6 | -------------------------------------------------------------------------------- /tools/helper/tests/shared/link.spec.ts: -------------------------------------------------------------------------------- 1 | import { expect, it } from 'vitest' 2 | import { isLinkAbsolute } from '../../src/shared/link.js' 3 | 4 | it('isLinkAbsolute()', () => { 5 | expect(isLinkAbsolute('/a/')).toEqual(true) 6 | expect(isLinkAbsolute('/a.html')).toEqual(true) 7 | expect(isLinkAbsolute('mister-hope.com')).toEqual(false) 8 | expect(isLinkAbsolute('mrhope')).toEqual(false) 9 | }) 10 | -------------------------------------------------------------------------------- /tools/helper/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /tools/highlighter-helper/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../scripts/rollup.js' 2 | 3 | export default [...rollupBundle('node/index'), ...rollupBundle('client/index')] 4 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupCollapsedLines.js' 2 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './composables/index.js' 2 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/client/styles/whitespace.scss: -------------------------------------------------------------------------------- 1 | // render whitespace characters 2 | div[class*='language-'] { 3 | .tab, 4 | .space { 5 | position: relative; 6 | } 7 | 8 | .tab::before, 9 | .space::before { 10 | position: absolute; 11 | opacity: 0.3; 12 | } 13 | 14 | .tab::before { 15 | content: '⇥'; 16 | } 17 | 18 | .space::before { 19 | content: '·'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/node/codeBlockTitle/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './plugin.js' 3 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/node/collapsedLines/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './plugin.js' 3 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lineNumbers/index.js' 2 | export * from './whitespace.js' 3 | export * from './collapsedLines/index.js' 4 | export * from './codeBlockTitle/index.js' 5 | export * from './utils/index.js' 6 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/node/lineNumbers/index.ts: -------------------------------------------------------------------------------- 1 | export type * from './options.js' 2 | export * from './plugin.js' 3 | -------------------------------------------------------------------------------- /tools/highlighter-helper/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './resolveAttr.js' 2 | -------------------------------------------------------------------------------- /tools/highlighter-helper/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"] 9 | } 10 | -------------------------------------------------------------------------------- /tools/shiki-twoslash/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './enhanceTwoslash.js' 2 | -------------------------------------------------------------------------------- /tools/shiki-twoslash/src/client/shim.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'floating-vue/dist/style.css' { 2 | const styles: string 3 | 4 | export default styles 5 | } 6 | -------------------------------------------------------------------------------- /tools/shiki-twoslash/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './rendererFloatingVue.js' 2 | export * from './resolveTypeScriptPaths.js' 3 | export * from './createTwoslashTransformer.js' 4 | export * from './createFileSystemTypesCache.js' 5 | export type * from './options.js' 6 | -------------------------------------------------------------------------------- /tools/shiki-twoslash/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib", 6 | "types": ["vuepress/client-types"] 7 | }, 8 | "include": ["./src"], 9 | "references": [{ "path": "../helper/tsconfig.build.json" }] 10 | } 11 | -------------------------------------------------------------------------------- /tools/vp-update/rollup.config.ts: -------------------------------------------------------------------------------- 1 | import { rollupBundle } from '../../scripts/rollup.js' 2 | 3 | export default rollupBundle('index', { 4 | external: [/^node:/, 'commander', 'semver'], 5 | dts: false, 6 | }) 7 | -------------------------------------------------------------------------------- /tools/vp-update/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './packages.js' 2 | export * from './version.js' 3 | -------------------------------------------------------------------------------- /tools/vp-update/src/config/version.ts: -------------------------------------------------------------------------------- 1 | import pkg from '../../package.json' with { type: 'json' } 2 | 3 | export const VERSION = pkg.version 4 | -------------------------------------------------------------------------------- /tools/vp-update/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './registry.js' 2 | export * from './packageManager.js' 3 | export * from './updatePackage.js' 4 | -------------------------------------------------------------------------------- /tools/vp-update/tests/getRegistry.spec.ts: -------------------------------------------------------------------------------- 1 | import { expect, it } from 'vitest' 2 | import { getRegistry } from '../src/utils/registry.js' 3 | 4 | it('getRegistry', () => { 5 | expect(getRegistry('pnpm')).toBe('https://registry.npmjs.org/') 6 | }) 7 | -------------------------------------------------------------------------------- /tools/vp-update/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./lib" 6 | }, 7 | "include": ["./src"] 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "tsconfig-vuepress/base.json", 3 | "compilerOptions": { 4 | "allowSyntheticDefaultImports": true, 5 | "lib": ["DOM", "ES2022"], 6 | "module": "ESNext", 7 | "moduleResolution": "Bundler", 8 | "noEmitOnError": true, 9 | "noImplicitAny": false, 10 | "skipLibCheck": true, 11 | "target": "ES2023" 12 | } 13 | } 14 | --------------------------------------------------------------------------------