├── .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 |
2 | Global Component 4
3 |
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 |
2 | Global Component 1
3 |
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 | 
6 | 
7 |
--------------------------------------------------------------------------------
/e2e/docs/photo-swipe/enabled.md:
--------------------------------------------------------------------------------
1 | 
2 | 
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 |
--------------------------------------------------------------------------------