From 4b4cfcd626bc3920c689cf7ac85e2706700cc928 Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Sun, 3 Dec 2023 22:44:37 +0800 Subject: [PATCH] build: migrate docs into a separate repo --- .editorconfig | 13 + .eslintignore | 6 + .eslintrc.cjs | 13 + .gitattributes | 10 + .github/ISSUE_TEMPLATE/bug_report.yml | 16 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/workflows/check-docs.yml | 53 + .github/workflows/docs.yml | 44 + .github/workflows/issue-commented.yml | 17 + .github/workflows/issue-daily.yml | 42 + .github/workflows/issue-labeled.yml | 30 + .gitignore | 13 + .husky/commit-msg | 4 + .husky/pre-commit | 4 + .prettierignore | 3 + .vscode/extensions.json | 7 + .vscode/settings.json | 43 + CONTRIBUTING.md | 15 + CONTRIBUTING_zh.md | 15 + LICENSE | 21 + README.md | 12 + docs/.vuepress/components/NpmBadge.vue | 49 + docs/.vuepress/config.ts | 197 + docs/.vuepress/configs/head.ts | 40 + docs/.vuepress/configs/index.ts | 3 + docs/.vuepress/configs/meta.ts | 8 + docs/.vuepress/configs/navbar/en.ts | 143 + docs/.vuepress/configs/navbar/index.ts | 2 + docs/.vuepress/configs/navbar/zh.ts | 140 + docs/.vuepress/configs/sidebar/en.ts | 126 + docs/.vuepress/configs/sidebar/index.ts | 2 + docs/.vuepress/configs/sidebar/zh.ts | 129 + docs/.vuepress/public/browserconfig.xml | 9 + docs/.vuepress/public/favicon.ico | Bin 0 -> 15086 bytes .../images/cookbook/extending-a-theme-01.png | Bin 0 -> 13453 bytes .../guide/vuepress-architecture-overview.png | Bin 0 -> 50904 bytes .../images/guide/vuepress-core-process.png | Bin 0 -> 56796 bytes docs/.vuepress/public/images/hero.png | Bin 0 -> 153793 bytes .../images/icons/android-chrome-192x192.png | Bin 0 -> 6839 bytes .../images/icons/android-chrome-384x384.png | Bin 0 -> 15528 bytes .../public/images/icons/apple-touch-icon.png | Bin 0 -> 5373 bytes .../public/images/icons/favicon-16x16.png | Bin 0 -> 806 bytes .../public/images/icons/favicon-32x32.png | Bin 0 -> 1295 bytes .../public/images/icons/mstile-150x150.png | Bin 0 -> 4676 bytes .../public/images/icons/safari-pinned-tab.svg | 23 + docs/.vuepress/public/images/logo.png | Bin 0 -> 3451 bytes docs/.vuepress/public/manifest.webmanifest | 21 + docs/.vuepress/public/new.html | 1 + docs/.vuepress/styles/index.scss | 9 + docs/README.md | 26 + docs/advanced/architecture.md | 36 + docs/advanced/cookbook/README.md | 10 + docs/advanced/cookbook/adding-extra-pages.md | 38 + .../cookbook/making-a-theme-extendable.md | 66 + .../advanced/cookbook/markdown-and-vue-sfc.md | 78 + .../cookbook/passing-data-to-client-code.md | 63 + .../cookbook/usage-of-client-config.md | 174 + docs/advanced/plugin.md | 63 + docs/advanced/theme.md | 100 + docs/guide/README.md | 39 + docs/guide/assets.md | 121 + docs/guide/bundler.md | 67 + docs/guide/configuration.md | 92 + docs/guide/deployment.md | 224 + docs/guide/getting-started.md | 145 + docs/guide/i18n.md | 72 + docs/guide/markdown.md | 435 + docs/guide/migration.md | 393 + docs/guide/page.md | 64 + docs/guide/plugin.md | 47 + docs/guide/theme.md | 39 + docs/reference/bundler/vite.md | 43 + docs/reference/bundler/webpack.md | 144 + docs/reference/cli.md | 89 + docs/reference/client-api.md | 166 + docs/reference/components.md | 46 + docs/reference/config.md | 694 ++ docs/reference/default-theme/components.md | 124 + docs/reference/default-theme/config.md | 743 ++ docs/reference/default-theme/extending.md | 113 + docs/reference/default-theme/frontmatter.md | 360 + docs/reference/default-theme/markdown.md | 126 + docs/reference/default-theme/styles.md | 40 + docs/reference/frontmatter.md | 214 + docs/reference/node-api.md | 665 ++ docs/reference/plugin-api.md | 366 + docs/reference/plugin/active-header-links.md | 74 + docs/reference/plugin/back-to-top.md | 29 + docs/reference/plugin/container.md | 161 + docs/reference/plugin/docsearch.md | 411 + docs/reference/plugin/external-link-icon.md | 87 + docs/reference/plugin/git.md | 145 + docs/reference/plugin/google-analytics.md | 78 + docs/reference/plugin/medium-zoom.md | 100 + docs/reference/plugin/nprogress.md | 37 + docs/reference/plugin/palette.md | 200 + docs/reference/plugin/prismjs.md | 43 + docs/reference/plugin/pwa-popup.md | 72 + docs/reference/plugin/pwa.md | 176 + docs/reference/plugin/register-components.md | 135 + docs/reference/plugin/search.md | 166 + docs/reference/plugin/shiki.md | 63 + docs/reference/plugin/theme-data.md | 118 + docs/reference/plugin/toc.md | 169 + docs/reference/theme-api.md | 107 + docs/zh/README.md | 26 + docs/zh/advanced/architecture.md | 36 + docs/zh/advanced/cookbook/README.md | 10 + .../advanced/cookbook/adding-extra-pages.md | 38 + .../cookbook/making-a-theme-extendable.md | 66 + .../advanced/cookbook/markdown-and-vue-sfc.md | 78 + .../cookbook/passing-data-to-client-code.md | 64 + .../cookbook/usage-of-client-config.md | 174 + docs/zh/advanced/plugin.md | 63 + docs/zh/advanced/theme.md | 100 + docs/zh/guide/README.md | 39 + docs/zh/guide/assets.md | 121 + docs/zh/guide/bundler.md | 67 + docs/zh/guide/configuration.md | 92 + docs/zh/guide/deployment.md | 257 + docs/zh/guide/getting-started.md | 145 + docs/zh/guide/i18n.md | 72 + docs/zh/guide/markdown.md | 434 + docs/zh/guide/migration.md | 395 + docs/zh/guide/page.md | 64 + docs/zh/guide/plugin.md | 47 + docs/zh/guide/theme.md | 39 + docs/zh/reference/bundler/vite.md | 43 + docs/zh/reference/bundler/webpack.md | 144 + docs/zh/reference/cli.md | 89 + docs/zh/reference/client-api.md | 166 + docs/zh/reference/components.md | 46 + docs/zh/reference/config.md | 693 ++ docs/zh/reference/default-theme/components.md | 124 + docs/zh/reference/default-theme/config.md | 743 ++ docs/zh/reference/default-theme/extending.md | 112 + .../zh/reference/default-theme/frontmatter.md | 360 + docs/zh/reference/default-theme/markdown.md | 126 + docs/zh/reference/default-theme/styles.md | 39 + docs/zh/reference/frontmatter.md | 214 + docs/zh/reference/node-api.md | 660 ++ docs/zh/reference/plugin-api.md | 366 + .../reference/plugin/active-header-links.md | 74 + docs/zh/reference/plugin/back-to-top.md | 29 + docs/zh/reference/plugin/container.md | 161 + docs/zh/reference/plugin/docsearch.md | 410 + .../zh/reference/plugin/external-link-icon.md | 87 + docs/zh/reference/plugin/git.md | 146 + docs/zh/reference/plugin/google-analytics.md | 78 + docs/zh/reference/plugin/medium-zoom.md | 100 + docs/zh/reference/plugin/nprogress.md | 37 + docs/zh/reference/plugin/palette.md | 200 + docs/zh/reference/plugin/prismjs.md | 43 + docs/zh/reference/plugin/pwa-popup.md | 72 + docs/zh/reference/plugin/pwa.md | 176 + .../reference/plugin/register-components.md | 135 + docs/zh/reference/plugin/search.md | 166 + docs/zh/reference/plugin/shiki.md | 63 + docs/zh/reference/plugin/theme-data.md | 118 + docs/zh/reference/plugin/toc.md | 169 + docs/zh/reference/theme-api.md | 107 + package.json | 66 + pnpm-lock.yaml | 9118 +++++++++++++++++ tsconfig.json | 11 + 164 files changed, 27902 insertions(+) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 .gitattributes create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/workflows/check-docs.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/issue-commented.yml create mode 100644 .github/workflows/issue-daily.yml create mode 100644 .github/workflows/issue-labeled.yml create mode 100644 .gitignore create mode 100755 .husky/commit-msg create mode 100755 .husky/pre-commit create mode 100644 .prettierignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 CONTRIBUTING.md create mode 100644 CONTRIBUTING_zh.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/.vuepress/components/NpmBadge.vue create mode 100644 docs/.vuepress/config.ts create mode 100644 docs/.vuepress/configs/head.ts create mode 100644 docs/.vuepress/configs/index.ts create mode 100644 docs/.vuepress/configs/meta.ts create mode 100644 docs/.vuepress/configs/navbar/en.ts create mode 100644 docs/.vuepress/configs/navbar/index.ts create mode 100644 docs/.vuepress/configs/navbar/zh.ts create mode 100644 docs/.vuepress/configs/sidebar/en.ts create mode 100644 docs/.vuepress/configs/sidebar/index.ts create mode 100644 docs/.vuepress/configs/sidebar/zh.ts create mode 100644 docs/.vuepress/public/browserconfig.xml create mode 100644 docs/.vuepress/public/favicon.ico create mode 100644 docs/.vuepress/public/images/cookbook/extending-a-theme-01.png create mode 100644 docs/.vuepress/public/images/guide/vuepress-architecture-overview.png create mode 100644 docs/.vuepress/public/images/guide/vuepress-core-process.png create mode 100644 docs/.vuepress/public/images/hero.png create mode 100644 docs/.vuepress/public/images/icons/android-chrome-192x192.png create mode 100644 docs/.vuepress/public/images/icons/android-chrome-384x384.png create mode 100644 docs/.vuepress/public/images/icons/apple-touch-icon.png create mode 100644 docs/.vuepress/public/images/icons/favicon-16x16.png create mode 100644 docs/.vuepress/public/images/icons/favicon-32x32.png create mode 100644 docs/.vuepress/public/images/icons/mstile-150x150.png create mode 100644 docs/.vuepress/public/images/icons/safari-pinned-tab.svg create mode 100644 docs/.vuepress/public/images/logo.png create mode 100644 docs/.vuepress/public/manifest.webmanifest create mode 100644 docs/.vuepress/public/new.html create mode 100644 docs/.vuepress/styles/index.scss create mode 100644 docs/README.md create mode 100644 docs/advanced/architecture.md create mode 100644 docs/advanced/cookbook/README.md create mode 100644 docs/advanced/cookbook/adding-extra-pages.md create mode 100644 docs/advanced/cookbook/making-a-theme-extendable.md create mode 100644 docs/advanced/cookbook/markdown-and-vue-sfc.md create mode 100644 docs/advanced/cookbook/passing-data-to-client-code.md create mode 100644 docs/advanced/cookbook/usage-of-client-config.md create mode 100644 docs/advanced/plugin.md create mode 100644 docs/advanced/theme.md create mode 100644 docs/guide/README.md create mode 100644 docs/guide/assets.md create mode 100644 docs/guide/bundler.md create mode 100644 docs/guide/configuration.md create mode 100644 docs/guide/deployment.md create mode 100644 docs/guide/getting-started.md create mode 100644 docs/guide/i18n.md create mode 100644 docs/guide/markdown.md create mode 100644 docs/guide/migration.md create mode 100644 docs/guide/page.md create mode 100644 docs/guide/plugin.md create mode 100644 docs/guide/theme.md create mode 100644 docs/reference/bundler/vite.md create mode 100644 docs/reference/bundler/webpack.md create mode 100644 docs/reference/cli.md create mode 100644 docs/reference/client-api.md create mode 100644 docs/reference/components.md create mode 100644 docs/reference/config.md create mode 100644 docs/reference/default-theme/components.md create mode 100644 docs/reference/default-theme/config.md create mode 100644 docs/reference/default-theme/extending.md create mode 100644 docs/reference/default-theme/frontmatter.md create mode 100644 docs/reference/default-theme/markdown.md create mode 100644 docs/reference/default-theme/styles.md create mode 100644 docs/reference/frontmatter.md create mode 100644 docs/reference/node-api.md create mode 100644 docs/reference/plugin-api.md create mode 100644 docs/reference/plugin/active-header-links.md create mode 100644 docs/reference/plugin/back-to-top.md create mode 100644 docs/reference/plugin/container.md create mode 100644 docs/reference/plugin/docsearch.md create mode 100644 docs/reference/plugin/external-link-icon.md create mode 100644 docs/reference/plugin/git.md create mode 100644 docs/reference/plugin/google-analytics.md create mode 100644 docs/reference/plugin/medium-zoom.md create mode 100644 docs/reference/plugin/nprogress.md create mode 100644 docs/reference/plugin/palette.md create mode 100644 docs/reference/plugin/prismjs.md create mode 100644 docs/reference/plugin/pwa-popup.md create mode 100644 docs/reference/plugin/pwa.md create mode 100644 docs/reference/plugin/register-components.md create mode 100644 docs/reference/plugin/search.md create mode 100644 docs/reference/plugin/shiki.md create mode 100644 docs/reference/plugin/theme-data.md create mode 100644 docs/reference/plugin/toc.md create mode 100644 docs/reference/theme-api.md create mode 100644 docs/zh/README.md create mode 100644 docs/zh/advanced/architecture.md create mode 100644 docs/zh/advanced/cookbook/README.md create mode 100644 docs/zh/advanced/cookbook/adding-extra-pages.md create mode 100644 docs/zh/advanced/cookbook/making-a-theme-extendable.md create mode 100644 docs/zh/advanced/cookbook/markdown-and-vue-sfc.md create mode 100644 docs/zh/advanced/cookbook/passing-data-to-client-code.md create mode 100644 docs/zh/advanced/cookbook/usage-of-client-config.md create mode 100644 docs/zh/advanced/plugin.md create mode 100644 docs/zh/advanced/theme.md create mode 100644 docs/zh/guide/README.md create mode 100644 docs/zh/guide/assets.md create mode 100644 docs/zh/guide/bundler.md create mode 100644 docs/zh/guide/configuration.md create mode 100644 docs/zh/guide/deployment.md create mode 100644 docs/zh/guide/getting-started.md create mode 100644 docs/zh/guide/i18n.md create mode 100644 docs/zh/guide/markdown.md create mode 100644 docs/zh/guide/migration.md create mode 100644 docs/zh/guide/page.md create mode 100644 docs/zh/guide/plugin.md create mode 100644 docs/zh/guide/theme.md create mode 100644 docs/zh/reference/bundler/vite.md create mode 100644 docs/zh/reference/bundler/webpack.md create mode 100644 docs/zh/reference/cli.md create mode 100644 docs/zh/reference/client-api.md create mode 100644 docs/zh/reference/components.md create mode 100644 docs/zh/reference/config.md create mode 100644 docs/zh/reference/default-theme/components.md create mode 100644 docs/zh/reference/default-theme/config.md create mode 100644 docs/zh/reference/default-theme/extending.md create mode 100644 docs/zh/reference/default-theme/frontmatter.md create mode 100644 docs/zh/reference/default-theme/markdown.md create mode 100644 docs/zh/reference/default-theme/styles.md create mode 100644 docs/zh/reference/frontmatter.md create mode 100644 docs/zh/reference/node-api.md create mode 100644 docs/zh/reference/plugin-api.md create mode 100644 docs/zh/reference/plugin/active-header-links.md create mode 100644 docs/zh/reference/plugin/back-to-top.md create mode 100644 docs/zh/reference/plugin/container.md create mode 100644 docs/zh/reference/plugin/docsearch.md create mode 100644 docs/zh/reference/plugin/external-link-icon.md create mode 100644 docs/zh/reference/plugin/git.md create mode 100644 docs/zh/reference/plugin/google-analytics.md create mode 100644 docs/zh/reference/plugin/medium-zoom.md create mode 100644 docs/zh/reference/plugin/nprogress.md create mode 100644 docs/zh/reference/plugin/palette.md create mode 100644 docs/zh/reference/plugin/prismjs.md create mode 100644 docs/zh/reference/plugin/pwa-popup.md create mode 100644 docs/zh/reference/plugin/pwa.md create mode 100644 docs/zh/reference/plugin/register-components.md create mode 100644 docs/zh/reference/plugin/search.md create mode 100644 docs/zh/reference/plugin/shiki.md create mode 100644 docs/zh/reference/plugin/theme-data.md create mode 100644 docs/zh/reference/plugin/toc.md create mode 100644 docs/zh/reference/theme-api.md create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 tsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..5d126348 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..ac5bc285 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,6 @@ +!.vuepress/ +!.*.js +.cache/ +.temp/ +node_modules/ +dist/ diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..b3ffd39f --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,13 @@ +module.exports = { + root: true, + extends: 'vuepress', + overrides: [ + { + files: ['*.ts', '*.vue'], + extends: 'vuepress-typescript', + parserOptions: { + project: ['tsconfig.json'], + }, + }, + ], +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..d022441a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +* text eol=lf +*.txt text eol=crlf + +*.png binary +*.jpg binary +*.jpeg binary +*.ico binary +*.tff binary +*.woff binary +*.woff2 binary diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..400fc670 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,16 @@ +name: Bug Report +description: Create a report to help us improve +title: '[Bug report] ' +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + - type: textarea + id: bug-description + attributes: + label: Description + description: A clear and concise description of what the bug is. If applicable, add screenshots to help explain your problem. If you intend to submit a PR for this issue, tell us in the description. Thanks! + placeholder: Bug description + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3aee83f9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Question & Discussion + url: https://github.com/vuepress/docs/discussions + about: Please ask and answer questions here. diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml new file mode 100644 index 00000000..4e8e9506 --- /dev/null +++ b/.github/workflows/check-docs.yml @@ -0,0 +1,53 @@ +name: check-docs + +on: + push: + branches: + - main + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + check-docs: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + node: ['18', '20'] + bundler: ['vite', 'webpack'] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v2 + + - name: Use Node.js ${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build source code + run: pnpm build + + - name: Build docs with ${{ matrix.bundler }} + run: pnpm docs:build + env: + DOCS_BUNDLER: ${{ matrix.bundler }} + + check-docs-result: + if: ${{ always() }} + name: check-docs result + runs-on: ubuntu-latest + needs: [check-docs] + steps: + - if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} + run: exit 1 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..9f6ae92a --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,44 @@ +name: docs + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + docs: + runs-on: ubuntu-latest + + env: + DOCS_GA_ID: G-CTB8FQ7VMW + NODE_VERSION: '18' + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install pnpm + uses: pnpm/action-setup@v2 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build documentation site + run: pnpm docs:build + + - name: Deploy to GitHub Pages + uses: crazy-max/ghaction-github-pages@v4 + with: + repo: vuepress/vuepress.github.io + target_branch: main + build_dir: docs/.vuepress/dist + env: + GH_PAT: ${{ secrets.GH_PAGES_TOKEN }} diff --git a/.github/workflows/issue-commented.yml b/.github/workflows/issue-commented.yml new file mode 100644 index 00000000..d25cc571 --- /dev/null +++ b/.github/workflows/issue-commented.yml @@ -0,0 +1,17 @@ +name: issue-commented + +on: + issue_comment: + types: [created] + +jobs: + issue-commented: + name: remove stale on commented + if: contains(github.event.issue.labels.*.name, 'stale') + runs-on: ubuntu-latest + steps: + - uses: actions-cool/issues-helper@v3 + with: + actions: 'remove-labels' + token: ${{ secrets.GITHUB_TOKEN }} + labels: 'stale' diff --git a/.github/workflows/issue-daily.yml b/.github/workflows/issue-daily.yml new file mode 100644 index 00000000..4b51b033 --- /dev/null +++ b/.github/workflows/issue-daily.yml @@ -0,0 +1,42 @@ +name: issue-daily + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + issue-label-stale: + name: label stale issues + runs-on: ubuntu-latest + steps: + - uses: actions-cool/issues-helper@v3 + with: + actions: 'check-inactive' + token: ${{ secrets.GITHUB_TOKEN }} + inactive-day: 15 + inactive-label: 'stale' + exclude-labels: 'bug, documentation, enhancement, feature, help wanted, need reproduction, need review, stale' + body: | + This issue is marked as `stale` because it has not had recent activity. Issues marked with `stale` will be closed if they have no activity within 7 days. + + issue-close-stale: + name: close stale issues + runs-on: ubuntu-latest + steps: + - uses: actions-cool/issues-helper@v3 + with: + actions: 'close-issues' + token: ${{ secrets.GITHUB_TOKEN }} + labels: 'stale' + inactive-day: 7 + + issue-close-need-reproduction: + name: close need-reproduction issues + runs-on: ubuntu-latest + steps: + - uses: actions-cool/issues-helper@v3 + with: + actions: 'close-issues' + token: ${{ secrets.GITHUB_TOKEN }} + labels: 'need reproduction' + inactive-day: 7 diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml new file mode 100644 index 00000000..e38c9047 --- /dev/null +++ b/.github/workflows/issue-labeled.yml @@ -0,0 +1,30 @@ +name: issue-labeled + +on: + issues: + types: [labeled] + +jobs: + issue-invalid: + name: close invalid issue + if: github.event.label.name == 'invalid' + runs-on: ubuntu-latest + steps: + - uses: actions-cool/issues-helper@v3 + with: + actions: 'close-issue, create-comment' + token: ${{ secrets.GITHUB_TOKEN }} + body: | + Hello @${{ github.event.issue.user.login }}. This issue is marked as `invalid` and closed. Please follow the issue template. + + issue-need-reproduction: + name: need reproduction + if: github.event.label.name == 'need reproduction' + runs-on: ubuntu-latest + steps: + - uses: actions-cool/issues-helper@v3 + with: + actions: 'create-comment' + token: ${{ secrets.GITHUB_TOKEN }} + body: | + Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [v2.vuepress.vuejs.org/new](https://v2.vuepress.vuejs.org/new). Issues marked with `need reproduction` will be closed if they have no activity within 7 days. diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e3fdda76 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# VuePress files +docs/.vuepress/.temp/ +docs/.vuepress/.cache/ +docs/.vuepress/dist/ + +# Node modules +node_modules/ + +# MacOS Desktop Services Store +.DS_Store + +# Log files +*.log diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 00000000..d69ab0a7 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +pnpm commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..fab6428a --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +pnpm lint-staged diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..94c9f11d --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +pnpm-lock.yaml +*.html +*.md diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..adc12201 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "vue.volar" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..9b673398 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,43 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.insertSpaces": true, + "editor.tabSize": 2, + "files.encoding": "utf8", + "files.eol": "\n", + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true, + "[markdown]": { + "files.trimTrailingWhitespace": false + }, + "typescript.tsdk": "node_modules/typescript/lib", + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue" + ], + "cSpell.words": [ + "composables", + "devtool", + "docsearch", + "envinfo", + "esbuild", + "frontmatter", + "globby", + "gtag", + "mdit", + "nprogress", + "prefetch", + "preload", + "prismjs", + "shiki", + "slugify", + "unmount", + "vuejs", + "vuepress", + "vueuse", + "zoomable" + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..9ef07511 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,15 @@ +# VuePress Documentation Contributing Guide + +## Overview + +VuePress documentation is powered by VuePress itself, which is built from the source code of this repository. + +All the markdown source files are placed in `docs` directory. We are maintaining two translations: + +- English (en-US) in `/` path +- Chinese (zh-CN) in `/zh/` path + +We have two different deployments: + +- Release deployment powered by [Netlify](https://www.netlify.com). This deployment is built from the latest released version, so users will not see unreleased changes. The domain name is [https://v2.vuepress.vuejs.org](https://v2.vuepress.vuejs.org). +- Developer deployment powered by [GitHub Pages](https://pages.github.com). This deployment is built from the latest commit, so developers could preview the latest changes. The domain name is [https://vuepress.github.io](https://vuepress.github.io). diff --git a/CONTRIBUTING_zh.md b/CONTRIBUTING_zh.md new file mode 100644 index 00000000..d0208725 --- /dev/null +++ b/CONTRIBUTING_zh.md @@ -0,0 +1,15 @@ +# VuePress 文档贡献指南 + +## 概览 + +VuePress 的文档是由 VuePress 自己驱动的,是由该仓库中的源码构建而来。 + +所有的 Markdown 源文件都放置在 `docs` 目录下。我们维护了两种翻译: + +- 英语 (en-US) 在 `/` 路径下 +- 中文 (zh-CN) 在 `/zh/` 路径下 + +我们部署了两套站点: + +- 在 [Netlify](https://www.netlify.com) 部署的 Release 版本。该站点是从最新发布的版本中构建而来,因此用户不会看到未发布的改动。域名为 [https://v2.vuepress.vuejs.org](https://v2.vuepress.vuejs.org)。 +- 在 [GitHub Pages](https://pages.github.com) 部署的 Developer 版本。该站点是从最新的提交中构建而来,因此开发者可以预览最新的改动。域名为 [https://vuepress.github.io](https://vuepress.github.io)。 diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..44387d62 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, VuePress Community + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..2b646bca --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# VuePress Documentation + +VuePress documentation repository. + +## Deployments + +- Release deployment: https://v2.vuepress.vuejs.org +- Developer deployment: https://vuepress.github.io + +## License + +[MIT](https://github.com/vuepress/docs/blob/main/LICENSE) diff --git a/docs/.vuepress/components/NpmBadge.vue b/docs/.vuepress/components/NpmBadge.vue new file mode 100644 index 00000000..c9ff7be2 --- /dev/null +++ b/docs/.vuepress/components/NpmBadge.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts new file mode 100644 index 00000000..5cf08ede --- /dev/null +++ b/docs/.vuepress/config.ts @@ -0,0 +1,197 @@ +import { createRequire } from 'node:module' +import process from 'node:process' +import { viteBundler } from '@vuepress/bundler-vite' +import { webpackBundler } from '@vuepress/bundler-webpack' +import { defineUserConfig } from '@vuepress/cli' +import { docsearchPlugin } from '@vuepress/plugin-docsearch' +import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics' +import { registerComponentsPlugin } from '@vuepress/plugin-register-components' +import { shikiPlugin } from '@vuepress/plugin-shiki' +import { defaultTheme } from '@vuepress/theme-default' +import { getDirname, path } from '@vuepress/utils' +import { + head, + navbarEn, + navbarZh, + sidebarEn, + sidebarZh, +} from './configs/index.js' + +const __dirname = getDirname(import.meta.url) +const require = createRequire(import.meta.url) +const isProd = process.env.NODE_ENV === 'production' + +export default defineUserConfig({ + // set site base to default value + base: '/', + + // extra tags in `` + head, + + // site-level locales config + locales: { + '/': { + lang: 'en-US', + title: 'VuePress', + description: 'Vue-powered Static Site Generator', + }, + '/zh/': { + lang: 'zh-CN', + title: 'VuePress', + description: 'Vue 驱动的静态网站生成器', + }, + }, + + // specify bundler via environment variable + bundler: + process.env.DOCS_BUNDLER === 'webpack' ? webpackBundler() : viteBundler(), + + // configure default theme + theme: defaultTheme({ + logo: '/images/hero.png', + repo: 'vuepress/vuepress-next', + docsDir: 'docs', + + // theme-level locales config + locales: { + /** + * English locale config + * + * As the default locale of @vuepress/theme-default is English, + * we don't need to set all of the locale fields + */ + '/': { + // navbar + navbar: navbarEn, + // sidebar + sidebar: sidebarEn, + // page meta + editLinkText: 'Edit this page on GitHub', + }, + + /** + * Chinese locale config + */ + '/zh/': { + // navbar + navbar: navbarZh, + selectLanguageName: '简体中文', + selectLanguageText: '选择语言', + selectLanguageAriaLabel: '选择语言', + // sidebar + sidebar: sidebarZh, + // page meta + editLinkText: '在 GitHub 上编辑此页', + lastUpdatedText: '上次更新', + contributorsText: '贡献者', + // custom containers + tip: '提示', + warning: '注意', + danger: '警告', + // 404 page + notFound: [ + '这里什么都没有', + '我们怎么到这来了?', + '这是一个 404 页面', + '看起来我们进入了错误的链接', + ], + backToHome: '返回首页', + // a11y + openInNewWindow: '在新窗口打开', + toggleColorMode: '切换颜色模式', + toggleSidebar: '切换侧边栏', + }, + }, + + themePlugins: { + // only enable git plugin in production mode + git: isProd, + // use shiki plugin in production mode instead + prismjs: !isProd, + }, + }), + + // configure markdown + markdown: { + importCode: { + handleImportPath: (importPath) => { + // handle @vuepress packages import path + if (importPath.startsWith('@vuepress/')) { + const packageName = importPath.match(/^(@vuepress\/[^/]*)/)![1] + return importPath + .replace( + packageName, + path.dirname(require.resolve(`${packageName}/package.json`)), + ) + .replace('/src/', '/lib/') + .replace(/hotKey\.ts$/, 'hotKey.d.ts') + } + return importPath + }, + }, + }, + + // use plugins + plugins: [ + docsearchPlugin({ + appId: '34YFD9IUQ2', + apiKey: '9a9058b8655746634e01071411c366b8', + indexName: 'vuepress', + searchParameters: { + facetFilters: ['tags:v2'], + }, + locales: { + '/zh/': { + placeholder: '搜索文档', + translations: { + button: { + buttonText: '搜索文档', + buttonAriaLabel: '搜索文档', + }, + modal: { + searchBox: { + resetButtonTitle: '清除查询条件', + resetButtonAriaLabel: '清除查询条件', + cancelButtonText: '取消', + cancelButtonAriaLabel: '取消', + }, + startScreen: { + recentSearchesTitle: '搜索历史', + noRecentSearchesText: '没有搜索历史', + saveRecentSearchButtonTitle: '保存至搜索历史', + removeRecentSearchButtonTitle: '从搜索历史中移除', + favoriteSearchesTitle: '收藏', + removeFavoriteSearchButtonTitle: '从收藏中移除', + }, + errorScreen: { + titleText: '无法获取结果', + helpText: '你可能需要检查你的网络连接', + }, + footer: { + selectText: '选择', + navigateText: '切换', + closeText: '关闭', + searchByText: '搜索提供者', + }, + noResultsScreen: { + noResultsText: '无法找到相关结果', + suggestedQueryText: '你可以尝试查询', + reportMissingResultsText: '你认为该查询应该有结果?', + reportMissingResultsLinkText: '点击反馈', + }, + }, + }, + }, + }, + }), + googleAnalyticsPlugin({ + // we have multiple deployments, which would use different id + id: process.env.DOCS_GA_ID ?? '', + }), + registerComponentsPlugin({ + componentsDir: path.resolve(__dirname, './components'), + }), + // only enable shiki plugin in production mode + isProd ? shikiPlugin({ theme: 'dark-plus' }) : [], + ], +}) diff --git a/docs/.vuepress/configs/head.ts b/docs/.vuepress/configs/head.ts new file mode 100644 index 00000000..8d20be52 --- /dev/null +++ b/docs/.vuepress/configs/head.ts @@ -0,0 +1,40 @@ +import type { HeadConfig } from '@vuepress/core' + +export const head: HeadConfig[] = [ + [ + 'link', + { + rel: 'icon', + type: 'image/png', + sizes: '16x16', + href: `/images/icons/favicon-16x16.png`, + }, + ], + [ + 'link', + { + rel: 'icon', + type: 'image/png', + sizes: '32x32', + href: `/images/icons/favicon-32x32.png`, + }, + ], + ['link', { rel: 'manifest', href: '/manifest.webmanifest' }], + ['meta', { name: 'application-name', content: 'VuePress' }], + ['meta', { name: 'apple-mobile-web-app-title', content: 'VuePress' }], + ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }], + [ + 'link', + { rel: 'apple-touch-icon', href: `/images/icons/apple-touch-icon.png` }, + ], + [ + 'link', + { + rel: 'mask-icon', + href: '/images/icons/safari-pinned-tab.svg', + color: '#3eaf7c', + }, + ], + ['meta', { name: 'msapplication-TileColor', content: '#3eaf7c' }], + ['meta', { name: 'theme-color', content: '#3eaf7c' }], +] diff --git a/docs/.vuepress/configs/index.ts b/docs/.vuepress/configs/index.ts new file mode 100644 index 00000000..b23dc923 --- /dev/null +++ b/docs/.vuepress/configs/index.ts @@ -0,0 +1,3 @@ +export * from './head.js' +export * from './navbar/index.js' +export * from './sidebar/index.js' diff --git a/docs/.vuepress/configs/meta.ts b/docs/.vuepress/configs/meta.ts new file mode 100644 index 00000000..64f53d0c --- /dev/null +++ b/docs/.vuepress/configs/meta.ts @@ -0,0 +1,8 @@ +import { createRequire } from 'node:module' +import { fs } from '@vuepress/utils' + +const require = createRequire(import.meta.url) + +export const version = fs.readJsonSync( + require.resolve('@vuepress/core/package.json'), +).version diff --git a/docs/.vuepress/configs/navbar/en.ts b/docs/.vuepress/configs/navbar/en.ts new file mode 100644 index 00000000..73874ecc --- /dev/null +++ b/docs/.vuepress/configs/navbar/en.ts @@ -0,0 +1,143 @@ +import type { NavbarConfig } from '@vuepress/theme-default' +import { version } from '../meta.js' + +export const navbarEn: NavbarConfig = [ + { + text: 'Guide', + link: '/guide/', + }, + { + text: 'Reference', + children: [ + { + text: 'VuePress', + children: [ + { + text: 'CLI', + link: '/reference/cli.html', + }, + '/reference/config.md', + '/reference/frontmatter.md', + '/reference/components.md', + '/reference/plugin-api.md', + '/reference/theme-api.md', + '/reference/client-api.md', + '/reference/node-api.md', + ], + }, + { + text: 'Bundlers', + children: [ + '/reference/bundler/vite.md', + '/reference/bundler/webpack.md', + ], + }, + { + text: 'Default Theme', + children: [ + '/reference/default-theme/config.md', + '/reference/default-theme/frontmatter.md', + '/reference/default-theme/components.md', + '/reference/default-theme/markdown.md', + '/reference/default-theme/styles.md', + '/reference/default-theme/extending.md', + ], + }, + ], + }, + { + text: 'Plugins', + children: [ + { + text: 'Common Features', + children: [ + '/reference/plugin/back-to-top.md', + '/reference/plugin/container.md', + '/reference/plugin/external-link-icon.md', + '/reference/plugin/google-analytics.md', + '/reference/plugin/medium-zoom.md', + '/reference/plugin/nprogress.md', + '/reference/plugin/register-components.md', + ], + }, + { + text: 'Content Search', + children: [ + '/reference/plugin/docsearch.md', + '/reference/plugin/search.md', + ], + }, + { + text: 'PWA', + children: [ + '/reference/plugin/pwa.md', + '/reference/plugin/pwa-popup.md', + ], + }, + { + text: 'Syntax Highlighting', + children: [ + '/reference/plugin/prismjs.md', + '/reference/plugin/shiki.md', + ], + }, + { + text: 'Theme Development', + children: [ + '/reference/plugin/active-header-links.md', + '/reference/plugin/git.md', + '/reference/plugin/palette.md', + '/reference/plugin/theme-data.md', + '/reference/plugin/toc.md', + ], + }, + ], + }, + { + text: 'Learn More', + children: [ + { + text: 'Advanced', + children: [ + '/advanced/architecture.md', + '/advanced/plugin.md', + '/advanced/theme.md', + { + text: 'Cookbook', + link: '/advanced/cookbook/', + }, + ], + }, + { + text: 'Resources', + children: [ + { + text: 'Contributing Guide', + link: 'https://github.com/vuepress/vuepress-next/blob/main/CONTRIBUTING.md', + }, + { + text: 'Awesome VuePress', + link: 'https://github.com/vuepress/awesome-vuepress', + }, + ], + }, + ], + }, + { + text: `v${version}`, + children: [ + { + text: 'Changelog', + link: 'https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md', + }, + { + text: 'v1.x', + link: 'https://v1.vuepress.vuejs.org', + }, + { + text: 'v0.x', + link: 'https://v0.vuepress.vuejs.org', + }, + ], + }, +] diff --git a/docs/.vuepress/configs/navbar/index.ts b/docs/.vuepress/configs/navbar/index.ts new file mode 100644 index 00000000..7183393c --- /dev/null +++ b/docs/.vuepress/configs/navbar/index.ts @@ -0,0 +1,2 @@ +export * from './en.js' +export * from './zh.js' diff --git a/docs/.vuepress/configs/navbar/zh.ts b/docs/.vuepress/configs/navbar/zh.ts new file mode 100644 index 00000000..17f77fd3 --- /dev/null +++ b/docs/.vuepress/configs/navbar/zh.ts @@ -0,0 +1,140 @@ +import type { NavbarConfig } from '@vuepress/theme-default' +import { version } from '../meta.js' + +export const navbarZh: NavbarConfig = [ + { + text: '指南', + link: '/zh/guide/', + }, + { + text: '参考', + children: [ + { + text: 'VuePress', + children: [ + '/zh/reference/cli.md', + '/zh/reference/config.md', + '/zh/reference/frontmatter.md', + '/zh/reference/components.md', + '/zh/reference/plugin-api.md', + '/zh/reference/theme-api.md', + '/zh/reference/client-api.md', + '/zh/reference/node-api.md', + ], + }, + { + text: '打包工具', + children: [ + '/zh/reference/bundler/vite.md', + '/zh/reference/bundler/webpack.md', + ], + }, + { + text: '默认主题', + children: [ + '/zh/reference/default-theme/config.md', + '/zh/reference/default-theme/frontmatter.md', + '/zh/reference/default-theme/components.md', + '/zh/reference/default-theme/markdown.md', + '/zh/reference/default-theme/styles.md', + '/zh/reference/default-theme/extending.md', + ], + }, + ], + }, + { + text: '插件', + children: [ + { + text: '常用功能', + children: [ + '/zh/reference/plugin/back-to-top.md', + '/zh/reference/plugin/container.md', + '/zh/reference/plugin/external-link-icon.md', + '/zh/reference/plugin/google-analytics.md', + '/zh/reference/plugin/medium-zoom.md', + '/zh/reference/plugin/nprogress.md', + '/zh/reference/plugin/register-components.md', + ], + }, + { + text: '内容搜索', + children: [ + '/zh/reference/plugin/docsearch.md', + '/zh/reference/plugin/search.md', + ], + }, + { + text: 'PWA', + children: [ + '/zh/reference/plugin/pwa.md', + '/zh/reference/plugin/pwa-popup.md', + ], + }, + { + text: '语法高亮', + children: [ + '/zh/reference/plugin/prismjs.md', + '/zh/reference/plugin/shiki.md', + ], + }, + { + text: '主题开发', + children: [ + '/zh/reference/plugin/active-header-links.md', + '/zh/reference/plugin/git.md', + '/zh/reference/plugin/palette.md', + '/zh/reference/plugin/theme-data.md', + '/zh/reference/plugin/toc.md', + ], + }, + ], + }, + { + text: '了解更多', + children: [ + { + text: '深入', + children: [ + '/zh/advanced/architecture.md', + '/zh/advanced/plugin.md', + '/zh/advanced/theme.md', + { + text: 'Cookbook', + link: '/zh/advanced/cookbook/', + }, + ], + }, + { + text: '其他资源', + children: [ + { + text: '贡献指南', + link: 'https://github.com/vuepress/vuepress-next/blob/main/CONTRIBUTING_zh.md', + }, + { + text: 'Awesome VuePress', + link: 'https://github.com/vuepress/awesome-vuepress', + }, + ], + }, + ], + }, + { + text: `v${version}`, + children: [ + { + text: '更新日志', + link: 'https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md', + }, + { + text: 'v1.x', + link: 'https://v1.vuepress.vuejs.org/zh/', + }, + { + text: 'v0.x', + link: 'https://v0.vuepress.vuejs.org/zh/', + }, + ], + }, +] diff --git a/docs/.vuepress/configs/sidebar/en.ts b/docs/.vuepress/configs/sidebar/en.ts new file mode 100644 index 00000000..b358ab59 --- /dev/null +++ b/docs/.vuepress/configs/sidebar/en.ts @@ -0,0 +1,126 @@ +import type { SidebarConfig } from '@vuepress/theme-default' + +export const sidebarEn: SidebarConfig = { + '/guide/': [ + { + text: 'Guide', + children: [ + '/guide/README.md', + '/guide/getting-started.md', + '/guide/configuration.md', + '/guide/page.md', + '/guide/markdown.md', + '/guide/assets.md', + '/guide/i18n.md', + '/guide/deployment.md', + '/guide/theme.md', + '/guide/plugin.md', + '/guide/bundler.md', + '/guide/migration.md', + ], + }, + ], + '/advanced/': [ + { + text: 'Advanced', + children: [ + '/advanced/architecture.md', + '/advanced/plugin.md', + '/advanced/theme.md', + ], + }, + { + text: 'Cookbook', + children: [ + '/advanced/cookbook/README.md', + '/advanced/cookbook/usage-of-client-config.md', + '/advanced/cookbook/adding-extra-pages.md', + '/advanced/cookbook/making-a-theme-extendable.md', + '/advanced/cookbook/passing-data-to-client-code.md', + '/advanced/cookbook/markdown-and-vue-sfc.md', + ], + }, + ], + '/reference/': [ + { + text: 'VuePress Reference', + collapsible: true, + children: [ + '/reference/cli.md', + '/reference/config.md', + '/reference/frontmatter.md', + '/reference/components.md', + '/reference/plugin-api.md', + '/reference/theme-api.md', + '/reference/client-api.md', + '/reference/node-api.md', + ], + }, + { + text: 'Bundlers Reference', + collapsible: true, + children: ['/reference/bundler/vite.md', '/reference/bundler/webpack.md'], + }, + { + text: 'Default Theme Reference', + collapsible: true, + children: [ + '/reference/default-theme/config.md', + '/reference/default-theme/frontmatter.md', + '/reference/default-theme/components.md', + '/reference/default-theme/markdown.md', + '/reference/default-theme/styles.md', + '/reference/default-theme/extending.md', + ], + }, + { + text: 'Official Plugins Reference', + collapsible: true, + children: [ + { + text: 'Common Features', + children: [ + '/reference/plugin/back-to-top.md', + '/reference/plugin/container.md', + '/reference/plugin/external-link-icon.md', + '/reference/plugin/google-analytics.md', + '/reference/plugin/medium-zoom.md', + '/reference/plugin/nprogress.md', + '/reference/plugin/register-components.md', + ], + }, + { + text: 'Content Search', + children: [ + '/reference/plugin/docsearch.md', + '/reference/plugin/search.md', + ], + }, + { + text: 'PWA', + children: [ + '/reference/plugin/pwa.md', + '/reference/plugin/pwa-popup.md', + ], + }, + { + text: 'Syntax Highlighting', + children: [ + '/reference/plugin/prismjs.md', + '/reference/plugin/shiki.md', + ], + }, + { + text: 'Theme Development', + children: [ + '/reference/plugin/active-header-links.md', + '/reference/plugin/git.md', + '/reference/plugin/palette.md', + '/reference/plugin/theme-data.md', + '/reference/plugin/toc.md', + ], + }, + ], + }, + ], +} diff --git a/docs/.vuepress/configs/sidebar/index.ts b/docs/.vuepress/configs/sidebar/index.ts new file mode 100644 index 00000000..7183393c --- /dev/null +++ b/docs/.vuepress/configs/sidebar/index.ts @@ -0,0 +1,2 @@ +export * from './en.js' +export * from './zh.js' diff --git a/docs/.vuepress/configs/sidebar/zh.ts b/docs/.vuepress/configs/sidebar/zh.ts new file mode 100644 index 00000000..fc75e512 --- /dev/null +++ b/docs/.vuepress/configs/sidebar/zh.ts @@ -0,0 +1,129 @@ +import type { SidebarConfig } from '@vuepress/theme-default' + +export const sidebarZh: SidebarConfig = { + '/zh/guide/': [ + { + text: '指南', + children: [ + '/zh/guide/README.md', + '/zh/guide/getting-started.md', + '/zh/guide/configuration.md', + '/zh/guide/page.md', + '/zh/guide/markdown.md', + '/zh/guide/assets.md', + '/zh/guide/i18n.md', + '/zh/guide/deployment.md', + '/zh/guide/theme.md', + '/zh/guide/plugin.md', + '/zh/guide/bundler.md', + '/zh/guide/migration.md', + ], + }, + ], + '/zh/advanced/': [ + { + text: '深入', + children: [ + '/zh/advanced/architecture.md', + '/zh/advanced/plugin.md', + '/zh/advanced/theme.md', + ], + }, + { + text: 'Cookbook', + children: [ + '/zh/advanced/cookbook/README.md', + '/zh/advanced/cookbook/usage-of-client-config.md', + '/zh/advanced/cookbook/adding-extra-pages.md', + '/zh/advanced/cookbook/making-a-theme-extendable.md', + '/zh/advanced/cookbook/passing-data-to-client-code.md', + '/zh/advanced/cookbook/markdown-and-vue-sfc.md', + ], + }, + ], + '/zh/reference/': [ + { + text: 'VuePress 参考', + collapsible: true, + children: [ + '/zh/reference/cli.md', + '/zh/reference/config.md', + '/zh/reference/frontmatter.md', + '/zh/reference/components.md', + '/zh/reference/plugin-api.md', + '/zh/reference/theme-api.md', + '/zh/reference/client-api.md', + '/zh/reference/node-api.md', + ], + }, + { + text: '打包工具参考', + collapsible: true, + children: [ + '/zh/reference/bundler/vite.md', + '/zh/reference/bundler/webpack.md', + ], + }, + { + text: '默认主题参考', + collapsible: true, + children: [ + '/zh/reference/default-theme/config.md', + '/zh/reference/default-theme/frontmatter.md', + '/zh/reference/default-theme/components.md', + '/zh/reference/default-theme/markdown.md', + '/zh/reference/default-theme/styles.md', + '/zh/reference/default-theme/extending.md', + ], + }, + { + text: '官方插件参考', + collapsible: true, + children: [ + { + text: '常用功能', + children: [ + '/zh/reference/plugin/back-to-top.md', + '/zh/reference/plugin/container.md', + '/zh/reference/plugin/external-link-icon.md', + '/zh/reference/plugin/google-analytics.md', + '/zh/reference/plugin/medium-zoom.md', + '/zh/reference/plugin/nprogress.md', + '/zh/reference/plugin/register-components.md', + ], + }, + { + text: '内容搜索', + children: [ + '/zh/reference/plugin/docsearch.md', + '/zh/reference/plugin/search.md', + ], + }, + { + text: 'PWA', + children: [ + '/zh/reference/plugin/pwa.md', + '/zh/reference/plugin/pwa-popup.md', + ], + }, + { + text: '语法高亮', + children: [ + '/zh/reference/plugin/prismjs.md', + '/zh/reference/plugin/shiki.md', + ], + }, + { + text: '主题开发', + children: [ + '/zh/reference/plugin/active-header-links.md', + '/zh/reference/plugin/git.md', + '/zh/reference/plugin/palette.md', + '/zh/reference/plugin/theme-data.md', + '/zh/reference/plugin/toc.md', + ], + }, + ], + }, + ], +} diff --git a/docs/.vuepress/public/browserconfig.xml b/docs/.vuepress/public/browserconfig.xml new file mode 100644 index 00000000..5bdd109f --- /dev/null +++ b/docs/.vuepress/public/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #ffffff + + + diff --git a/docs/.vuepress/public/favicon.ico b/docs/.vuepress/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e481e5dda71327b885d4797cac93939d8030d0d6 GIT binary patch literal 15086 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 T8@2H(qeWd=>ve^qb@=}Sfyh#R literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/guide/vuepress-architecture-overview.png b/docs/.vuepress/public/images/guide/vuepress-architecture-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..4e64bee976b5dcf7e37aa88f2ad63357ec69bd02 GIT binary patch literal 50904 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�?k|m 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 literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/guide/vuepress-core-process.png b/docs/.vuepress/public/images/guide/vuepress-core-process.png new file mode 100644 index 0000000000000000000000000000000000000000..acf17029cde4a3cb10810115c1da03028c44d49a GIT binary patch literal 56796 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 literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/hero.png b/docs/.vuepress/public/images/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6beaff060d4e383169f86b007e13ef7313d393 GIT binary patch literal 153793 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%0Aq;h1Y(#@xNill5DXwfr+?5g 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 N20Es&IxXkN{{t)V3w8hi literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/icons/android-chrome-384x384.png b/docs/.vuepress/public/images/icons/android-chrome-384x384.png new file mode 100644 index 0000000000000000000000000000000000000000..86e1fd58b3f6add80bcbd795214aa540b8023ba4 GIT binary patch literal 15528 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 literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/icons/apple-touch-icon.png b/docs/.vuepress/public/images/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..208915f1dea6694cf2b6cd9824f5036a4508a715 GIT binary patch literal 5373 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 L9hC|ttMLB;KPvf_ literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/icons/favicon-16x16.png b/docs/.vuepress/public/images/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5047e7b8f2d6abe0063329af60eec70a1ca4fa GIT binary patch literal 806 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 literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/icons/safari-pinned-tab.svg b/docs/.vuepress/public/images/icons/safari-pinned-tab.svg new file mode 100644 index 00000000..dc0b992c --- /dev/null +++ b/docs/.vuepress/public/images/icons/safari-pinned-tab.svg @@ -0,0 +1,23 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/docs/.vuepress/public/images/logo.png b/docs/.vuepress/public/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..60e17006ad07cd313788585e2f5e528fbb7cf821 GIT binary patch literal 3451 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 literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/manifest.webmanifest b/docs/.vuepress/public/manifest.webmanifest new file mode 100644 index 00000000..d2e935f1 --- /dev/null +++ b/docs/.vuepress/public/manifest.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "VuePress", + "short_name": "VuePress", + "description": "Vue-powered Static Site Generator", + "start_url": "/index.html", + "display": "standalone", + "background_color": "#fff", + "theme_color": "#3eaf7c", + "icons": [ + { + "src": "/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/icons/android-chrome-384x384.png", + "sizes": "384x384", + "type": "image/png" + } + ] +} diff --git a/docs/.vuepress/public/new.html b/docs/.vuepress/public/new.html new file mode 100644 index 00000000..911989fe --- /dev/null +++ b/docs/.vuepress/public/new.html @@ -0,0 +1 @@ + diff --git a/docs/.vuepress/styles/index.scss b/docs/.vuepress/styles/index.scss new file mode 100644 index 00000000..90dc235e --- /dev/null +++ b/docs/.vuepress/styles/index.scss @@ -0,0 +1,9 @@ +:root { + scroll-behavior: smooth; +} + +@media (min-width: 751px) { + #docsearch-container:lang(zh-CN) { + min-width: 184.66px; + } +} diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..b0378e61 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,26 @@ +--- +home: true +title: Home +heroImage: /images/hero.png +actions: + - text: Get Started + link: /guide/getting-started.html + type: primary + - text: Introduction + link: /guide/ + type: secondary +features: + - title: Simplicity First + details: Minimal setup with markdown-centered project structure helps you focus on writing. + - title: Vue-Powered + details: Enjoy the dev experience of Vue, use Vue components in markdown, and develop custom themes with Vue. + - title: Performant + details: VuePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded. + - title: Themes + details: Providing a default theme out of the box. You can also choose a community theme or create your own one. + - title: Plugins + details: Flexible plugin API, allowing plugins to provide lots of plug-and-play features for your site. + - title: Bundlers + details: Default bundler is Vite, while Webpack is also supported. Choose the one you like! +footer: MIT Licensed | Copyright © 2018-present VuePress Community +--- diff --git a/docs/advanced/architecture.md b/docs/advanced/architecture.md new file mode 100644 index 00000000..b80f495a --- /dev/null +++ b/docs/advanced/architecture.md @@ -0,0 +1,36 @@ +# Architecture + +## Overview + +![vuepress-architecture-overview](/images/guide/vuepress-architecture-overview.png) + +The above figure shows a brief overview of the VuePress architecture: + +- Node App will generate temp files, including the pages, routes, etc. +- Bundler will handle Client App together with the temp files, just like a common Vue SPA. + +As a developer, you must be aware of that VuePress has two main parts: **Node App** and **Client App**, which is important when developing plugins and themes: + +- The entry file of a plugin or a theme will be loaded in Node App. +- Client files will be loaded in Client App, which will be handled by bundler. For example, components, client config files, etc. + +## Core Process and Hooks + +![vuepress-core-process](/images/guide/vuepress-core-process.png) + +The above figure shows the core process of VuePress Node App and the hooks of [Plugin API](../reference/plugin-api.md): + +- In the **init** stage: + - Theme and plugins will be loaded. That means all the plugins should be used before initialization. + - As we are using markdown-it to parse the markdown file, so we need to create markdown-it instance before loading pages: + - [extendsMarkdownOptions](../reference/plugin-api.md#extendsmarkdownoptions) hook will be processed to create markdown-it instance. + - [extendsMarkdown](../reference/plugin-api.md#extendsmarkdown) hook will be processed extends markdown-it instance. + - Page files will be loaded: + - [extendsPageOptions](../reference/plugin-api.md#extendspageoptions) hook will be processed to create pages. + - [extendsPage](../reference/plugin-api.md#extendspage) hook will be processed to extends page object. +- In the **prepare** stage: + - Temp files will be generated, so all hooks related to client files will be processed here. +- In the **dev / build** stage: + - Bundler will be resolved: + - [extendsBundlerOptions](../reference/plugin-api.md#extendsbundleroptions) hook will be processed to create bundler configuration. + - [alias](../reference/plugin-api.md#alias) hook and [define](../reference/plugin-api.md#define) hook would be used in bundler configuration, so they will be processed here. \ No newline at end of file diff --git a/docs/advanced/cookbook/README.md b/docs/advanced/cookbook/README.md new file mode 100644 index 00000000..da53257d --- /dev/null +++ b/docs/advanced/cookbook/README.md @@ -0,0 +1,10 @@ +# Introduction + +## What's the Cookbook for? + +- We are introducing essential concepts in the **Guide**, but you may not know how to dig deeper. +- We are listing APIs in the **Reference**, but you may not know how to take full advantage of them. + +So here comes the Cookbook. + +Each recipe will focus on one specific aspect, providing more detailed examples to show you the usages and possibilities of VuePress. diff --git a/docs/advanced/cookbook/adding-extra-pages.md b/docs/advanced/cookbook/adding-extra-pages.md new file mode 100644 index 00000000..4725368d --- /dev/null +++ b/docs/advanced/cookbook/adding-extra-pages.md @@ -0,0 +1,38 @@ +# Adding Extra Pages + +Sometimes you might want to add some extra pages without creating a markdown file in the source directory. + +With the help of [Plugin API](../../reference/plugin-api.md) and [Node API](../../reference/node-api.md), we can do that with ease. + +## Add a Default Homepage + +As a theme author, you may not require users to create a `/README.md` file as the homepage, but you want to provide a default one: + +```ts +import { createPage } from '@vuepress/core' + +export default { + // all pages have been loaded after initialization + async onInitialized(app) { + // if the homepage does not exist + if (app.pages.every((page) => page.path !== '/')) { + // create a homepage + const homepage = await createPage(app, { + path: '/', + // set frontmatter + frontmatter: { + layout: 'Layout', + }, + // set markdown content + content: `\ +# Welcome to ${app.options.title} + +This is the default homepage +`, + }) + // add it to `app.pages` + app.pages.push(homepage) + } + }, +} +``` diff --git a/docs/advanced/cookbook/making-a-theme-extendable.md b/docs/advanced/cookbook/making-a-theme-extendable.md new file mode 100644 index 00000000..8214310f --- /dev/null +++ b/docs/advanced/cookbook/making-a-theme-extendable.md @@ -0,0 +1,66 @@ +# Making a Theme Extendable + +Sometimes users might want make some minor changes to a theme, but they don't want to fork and modify the entire project. + +With the help of [Theme API](../../reference/theme-api.md), you can make your theme extendable, allowing users to make their own modifications easily. + +You must have known that how to [extend default theme](../../reference/default-theme/extending.md). Here we'll introduce how to make your own theme extendable like default theme. + +## Layout Slots + +This approach requires you to determine which parts of your theme could be extended. It is more suitable for those common customizations like page footer or header. + +You just need to provide slots in your layouts, and tell users how to make use of them: + +```vue + +``` + +## Component Aliases + +This approach requires you to consider which components of your theme should be replaceable, and you also need to split components into a suitable granularity. + +First, set `alias` for replaceable components of you theme: + +```ts +import type { Theme } from '@vuepress/core' +import { getDirname } from '@vuepress/utils' + +const __dirname = getDirname(import.meta.url) + +export const fooTheme = (options): Theme => { + return { + name: 'vuepress-theme-foo', + alias: { + // set alias for replaceable components + '@theme/Navbar.vue': path.resolve(__dirname, 'components/Navbar.vue'), + '@theme/Sidebar.vue': path.resolve(__dirname, 'components/Sidebar.vue'), + }, + } +} +``` + +Next, use those components via aliases in your theme: + +```vue + + + +``` + +Then, users can replace specific components by overriding the `alias` when extending or using your theme. diff --git a/docs/advanced/cookbook/markdown-and-vue-sfc.md b/docs/advanced/cookbook/markdown-and-vue-sfc.md new file mode 100644 index 00000000..cdbc1771 --- /dev/null +++ b/docs/advanced/cookbook/markdown-and-vue-sfc.md @@ -0,0 +1,78 @@ +# Markdown and Vue SFC + +Each Markdown file is first compiled into HTML, and then converted to a Vue SFC. In other words, you can write a Markdown file like a Vue SFC: + +- Blocks ` + + +``` + +**Output** + +_Hello, {{ msg }}_ + + + +_Current count is: {{ count }}_ + + + + + + + + diff --git a/docs/advanced/cookbook/passing-data-to-client-code.md b/docs/advanced/cookbook/passing-data-to-client-code.md new file mode 100644 index 00000000..28407066 --- /dev/null +++ b/docs/advanced/cookbook/passing-data-to-client-code.md @@ -0,0 +1,63 @@ +# Passing Data to Client Code + +As we know, VuePress plugin entries and theme entries are processed in Node side, but sometimes you might need to pass data to client side. For example, you want to generate different data when users use different options. + +## Use `define` Hook + +Plugin API provides a [define](../../reference/plugin-api.md#define) hook to define global constants for client code. You can make use of it to pass data to client. + +First, define some constants in `define` hook: + +```ts +export default (options) => ({ + define: { + __FOO__: options.foo || 'str', + __OBJ__: { + bar: options.bar || 123, + }, + }, +}) +``` + +Then use them in client code directly: + +```ts +const foo = __FOO__ +const obj = __OBJ__ +``` + +If you are using TypeScript in client code, you may need to declare the types of the global constants manually: + +```ts +declare const __FOO__: string +declare const __OBJ__: { bar: number } +``` + +## Write and Load Temp Files + +If you need to achieve some more complex features, you can write temp files and load them dynamically in client code. + +First, write a temp file `foo.js`, which will be generated in the [temp](../../reference/config.md#temp) directory: + +```ts +export default (options) => ({ + async onPrepared(app) { + // write temp file + await app.writeTemp('foo.js', `export const foo = ${JSON.stringify(options.foo)}`) + }, +}) +``` + +Then, load the temp file via `@temp` alias in client code: + +```ts +import { foo } from '@temp/foo' +``` + +If you are using TypeScript in client code, you may need to declare the type of the temp module manually: + +```ts +declare module '@temp/foo' { + export const foo: string +} +``` diff --git a/docs/advanced/cookbook/usage-of-client-config.md b/docs/advanced/cookbook/usage-of-client-config.md new file mode 100644 index 00000000..8dd27dce --- /dev/null +++ b/docs/advanced/cookbook/usage-of-client-config.md @@ -0,0 +1,174 @@ +# Usage of Client Config + +You can make use of the [client config file](../../guide/configuration.md#client-config-file) directly in your project, or specify the file path in your plugin or theme via [clientConfigFile](../../reference/plugin-api.md#clientconfigfile) hook: + +```ts +import { getDirname, path } from '@vuepress/utils' + +const __dirname = getDirname(import.meta.url) + +const pluginOrTheme = { + clientConfigFile: path.resolve(__dirname, './path/to/clientConfig.ts'), +} +``` + +Inside the client config file, `@vuepress/client` package provides a helper function [defineClientConfig](../../reference/client-api.md#defineclientconfig) to help you define the client config: + +```ts +import { defineClientConfig } from '@vuepress/client' + +export default defineClientConfig({ + enhance({ app, router, siteData }) {}, + setup() {}, + layouts: {}, + rootComponents: [], +}) +``` + +## enhance + +The `enhance` function could be either synchronous or asynchronous. It accepts a context param with following properties: + +- `app` is the Vue application instance that created by [createApp](https://vuejs.org/api/application.html#createapp). +- `router` is the Vue Router instance that created by [createRouter](https://router.vuejs.org/api/#createrouter). +- `siteData` is a ref of an object that generated from user config, including [base](../../reference/config.md#base), [lang](../../reference/config.md#lang), [title](../../reference/config.md#title), [description](../../reference/config.md#description), [head](../../reference/config.md#head) and [locales](../../reference/config.md#locales). + +The `enhance` function will be invoked after the client app is created. It's possible to implement any enhancements to the Vue application. + +### Register Vue Components + +You can register global Vue components via the [app.component](https://vuejs.org/api/application.html#app-component) method: + +```ts +import { defineClientConfig } from '@vuepress/client' +import MyComponent from './MyComponent.vue' + +export default defineClientConfig({ + enhance({ app }) { + app.component('MyComponent', MyComponent) + }, +}) +``` + +### Use Non-SSR-Friendly Features + +VuePress will generate a SSR application to pre-render pages during build. Generally speaking, if a code snippet is using Browser / DOM APIs before client app is mounted, we call it non-SSR-friendly. + +We already provides a [ClientOnly](../../reference/components.md#clientonly) component to wrap non-SSR-friendly content. + +In the `enhance` function, you can make use of the [`__VUEPRESS_SSR__`](../../reference/client-api.md#ssr) flag for that purpose. + +```ts +import { defineClientConfig } from '@vuepress/client' + +export default defineClientConfig({ + async enhance() { + if (!__VUEPRESS_SSR__) { + const nonSsrFriendlyModule = await import('non-ssr-friendly-module') + // ... + } + }, +}) +``` + +### Use Router Methods + +You can make use of the [Router Methods](https://router.vuejs.org/api/#router-methods) that provided by vue-router. For example, add navigation guard: + +```ts +import { defineClientConfig } from '@vuepress/client' + +export default defineClientConfig({ + enhance({ router }) { + router.beforeEach((to) => { + console.log('before navigation') + }) + + router.afterEach((to) => { + console.log('after navigation') + }) + }, +}) +``` + +::: warning +It's not recommended to use `addRoute` method to add dynamic routes here, because those routes will **NOT** be pre-rendered in build mode. + +But you can still do that if you understand the drawback. +::: + +## setup + +The `setup` function would be invoked inside the [setup](https://vuejs.org/api/composition-api-setup.html) hook of the client vue app. + +### Use Composition API + +You can take the `setup` function as part of the [setup](https://vuejs.org/api/composition-api-setup.html) hook of the root component. Thus, all composition APIs are available here. + +```ts +import { defineClientConfig } from '@vuepress/client' +import { provide, ref } from 'vue' +import { useRoute, useRouter } from 'vue-router' + +export default defineClientConfig({ + setup() { + // get the current route location + const route = useRoute() + // get the vue-router instance + const router = useRouter() + // provide a value that can be injected by layouts, pages and other components + const count = ref(0) + provide('count', count) + } +}) +``` + +### Use Non-SSR-Friendly Features + +In the `setup` function, the [`__VUEPRESS_SSR__`](../../reference/client-api.md#ssr) flag is also available. + +Another way to use non-ssr-friendly features is to put them inside the [onMounted](https://vuejs.org/api/composition-api-lifecycle.html#onmounted) hook: + +```ts +import { defineClientConfig } from '@vuepress/client' +import { onMounted } from 'vue' + +export default defineClientConfig({ + setup() { + onMounted(() => { + // use DOM API after mounted + document.querySelector('#app') + }) + } +}) +``` + +## layouts + +The `layouts` options is to set layout components. After layout components are registered here, users can use it via [layout](../../reference/frontmatter.md#layout) frontmatter. + +```ts +import { defineClientConfig } from '@vuepress/client' +import MyLayout from './layouts/MyLayout.vue' + +export default defineClientConfig({ + layouts: { + MyLayout, + }, +}) +``` + +## rootComponents + +The `rootComponents` is a components array to be placed directly into the root node of the client vue app. + +Typical usage of this option is to put some global UI components, like global popup or so: + +```ts +import { defineClientConfig } from '@vuepress/client' +import GlobalPopup from './components/GlobalPopup.vue' + +export default defineClientConfig({ + rootComponents: [GlobalPopup], +}) +``` diff --git a/docs/advanced/plugin.md b/docs/advanced/plugin.md new file mode 100644 index 00000000..e0be81ba --- /dev/null +++ b/docs/advanced/plugin.md @@ -0,0 +1,63 @@ +# Writing a Plugin + +::: tip +Before reading this guide, you'd better learn the VuePress [architecture](./architecture.md) first. +::: + +## Create a Plugin + +A plugin should be a plain JavaScript object that satisfies the [Plugin API](../reference/plugin-api.md), which is called a *Plugin Object*: + +```ts +const fooPlugin = { + name: 'vuepress-plugin-foo', + // ... +} +``` + +A plugin could also be a function that receives the [app instance](../reference/node-api.md#app) as the param and returns a *Plugin Object*, which is called a *Plugin Function*: + +```ts +const barPlugin = (app) => { + return { + name: 'vuepress-plugin-bar', + // ... + } +} +``` + +A plugin usually needs to allow user options, so we typically provide users with a function to receive options, and returns a *Plugin Object* or a *Plugin Function*. Then your plugin should be converted like this: + +```ts +const fooPlugin = (options) => { + return { + name: 'vuepress-plugin-foo', + // ... + } +} + +const barPlugin = (options) => { + return (app) => { + return { + name: 'vuepress-plugin-bar', + // ... + } + } +} +``` + +## Publish to NPM + +After creating a plugin, you should follow some conventions in the [package.json](https://docs.npmjs.com/cli/v8/configuring-npm/package-json) file before publishing it to NPM: + +```json +{ + "name": "vuepress-plugin-foo", + "keywords": [ + "vuepress-plugin" + ] +} +``` + +- Set `name` to follow the naming convention, i.e. `vuepress-plugin-xxx` or `@org/vuepress-plugin-xxx`, which should be consistent with the [name](../reference/plugin-api.md#name) field of the *Plugin Object*. +- Set `keywords` to include `vuepress-plugin`, so that users can search your plugin on NPM. diff --git a/docs/advanced/theme.md b/docs/advanced/theme.md new file mode 100644 index 00000000..bb83bf16 --- /dev/null +++ b/docs/advanced/theme.md @@ -0,0 +1,100 @@ +# Writing a Theme + +::: tip +Before reading this guide, you'd better learn the guide of [Writing a Plugin](./plugin.md) first. +::: + +## Create a Theme + +A VuePress theme is a special plugin, which should satisfy the [Theme API](../reference/theme-api.md). Like plugins, a theme should also be a *Theme Object* or a *Theme Function*, and could be wrapped with a function to receive options: + +```ts +import { getDirname, path } from '@vuepress/utils' + +const __dirname = getDirname(import.meta.url) + +const fooTheme = (options) => { + // returns a theme object + return { + name: 'vuepress-theme-foo', + + // path to the client config of your theme + clientConfigFile: path.resolve(__dirname, 'client.js'), + + // set custom dev / build template + // if the template is not specified, the default template from `@vuepress/client` will be used + templateBuild: path.resolve(__dirname, 'templates/build.html'), + templateDev: path.resolve(__dirname, 'templates/dev.html'), + + // use plugins + plugins: [ + // ... + ], + + // other plugin APIs are also available + } +} + +const barTheme = (options) => { + // returns a theme function + return (app) => { + return { + name: 'vuepress-theme-bar', + // ... + } + } +} +``` + +Then, create theme's client config file `client.js` : + +```ts +import { defineClientConfig } from '@vuepress/client' +import Layout from './layouts/Layout.vue' +import NotFound from './layouts/NotFound.vue' + +export default defineClientConfig({ + layouts: { + Layout, + NotFound, + }, +}) +``` + +The `layouts` field declares the layouts provided by your theme. A theme must provide at least two layouts: `Layout` and `NotFound`. The former is to provide default layout for common pages, while the latter is to provide layout for 404-not-found page. + +The `Layout` layout should contain the [Content](../reference/components.md#content) component to display the markdown content: + +```vue + +``` + +The `NotFound` layout will be used for the `404.html` page: + +```vue + +``` + +You can provide more layouts, and users can change layout via [layout](../reference/frontmatter.md#layout) frontmatter. + +## Publish to NPM + +Also, there are some conventions for theme in [package.json](https://docs.npmjs.com/cli/v8/configuring-npm/package-json): + +```json +{ + "name": "vuepress-theme-foo", + "keywords": [ + "vuepress-theme" + ] +} +``` + +- Set `name` to follow the naming convention: `vuepress-theme-xxx` or `@org/vuepress-theme-xxx`, which should be consistent with the [name](../reference/theme-api.md#name) field of the *Theme Object*. +- Set `keywords` to include `vuepress-theme`, so that users can search your theme on NPM. diff --git a/docs/guide/README.md b/docs/guide/README.md new file mode 100644 index 00000000..d04f0854 --- /dev/null +++ b/docs/guide/README.md @@ -0,0 +1,39 @@ +# Introduction + +VuePress is a markdown-centered static site generator. You can write your content (documentations, blogs, etc.) in [Markdown](https://en.wikipedia.org/wiki/Markdown), then VuePress will help you to generate a static site to host them. + +The purpose of creating VuePress was to support the documentation of Vue.js and its sub-projects, but now it has been helping a large amount of users to build their documentation, blogs, and other static sites. + +## How It Works + +A VuePress site is in fact a single-page application (SPA) powered by [Vue](https://vuejs.org/) and [Vue Router](https://router.vuejs.org). + +Routes are generated according to the relative path of your markdown files. Each Markdown file is compiled into HTML with [markdown-it](https://github.com/markdown-it/markdown-it) and then processed as the template of a Vue component. This allows you to directly use Vue inside your Markdown files and is great when you need to embed dynamic content. + +During development, we start a normal dev-server, and serve the VuePress site as a normal SPA. If you’ve used Vue before, you will notice the familiar development experience when you are writing and developing with VuePress. + +During build, we create a server-rendered version of the VuePress site and render the corresponding HTML by virtually visiting each route. This approach is inspired by [Nuxt](https://nuxtjs.org/)'s `nuxt generate` command and other projects like [Gatsby](https://www.gatsbyjs.org/). + +## Why Not ...? + +### Nuxt + +Nuxt is an outstanding Vue SSR framework, and it is capable of doing what VuePress does. But Nuxt is designed for building applications, while VuePress is more lightweight and focused on content-centric static sites. + +### VitePress + +VitePress is the little brother of VuePress. It's also created and maintained by our Vue.js team. It's even more lightweight and faster than VuePress. However, as a tradeoff, it's more opinionated and less configurable. For example, it does not support plugins. But VitePress is powerful enough to make your content online if you don't need advanced customizations. + +It might not be an appropriate comparison, but you can take VuePress and VitePress as Laravel and Lumen. + +### Docsify / Docute + +Both are great projects and also Vue-powered. Except they are both fully runtime-driven and therefore not SEO-friendly. If you don’t care for SEO and don’t want to mess with installing dependencies, these are still great choices. + +### Hexo + +Hexo has been serving the Vue 2.x docs well. The biggest problem is that its theming system is static and string-based - we want to take advantage of Vue for both the layout and the interactivity. Also, Hexo’s Markdown rendering isn’t the most flexible to configure. + +### GitBook + +We’ve been using GitBook for most of our sub project docs. The primary problem with GitBook is that its development reload performance is intolerable with a large amount of files. The default theme also has a pretty limiting navigation structure, and the theming system is, again, not Vue based. The team behind GitBook is also more focused on turning it into a commercial product rather than an open-source tool. diff --git a/docs/guide/assets.md b/docs/guide/assets.md new file mode 100644 index 00000000..7d3abb7f --- /dev/null +++ b/docs/guide/assets.md @@ -0,0 +1,121 @@ +# Assets + +## Relative URLs + +You can reference any assets using relative URLs in your Markdown content: + +```md +![An image](./image.png) +``` + +or + +```md +![An image](image.png) +``` + +This is generally the suggested way to import images, as users usually place images near the Markdown file that references them. + +## Public Files + +You can put some static assets inside public directory, and they will be copied to the root of the generated directory. + +The default public directory is `.vuepress/public`, which can be changed by [public](../reference/config.md#public) option. + +It would be useful in some cases: + +- You may need to provide static assets that are not directly referenced in any of your Markdown files, for example, favicon and PWA icons. +- You may need to serve some shared static assets, which may even be referenced outside your site, for example, logo images. +- You may want to reference images using absolute URLs in your Markdown content. + +Take our documentation source files as an example, we are putting the logo of VuePress inside the public directory: + +```bash +└─ docs + ├─ .vuepress + | └─ public + | └─ images + | └─ hero.png # <- Logo file + └─ guide + └─ assets.md # <- Here we are +``` + +We can reference our logo in current page like this: + +**Input** + +```md +![VuePress Logo](/images/hero.png) +``` + +**Output** + +![VuePress Logo](/images/hero.png) + +### Base Helper + +If your site is deployed to a non-root URL, for example, `https://foo.github.io/bar/`, then the [base](../reference/config.md#base) should be set to `'/bar/'`. Obviously, your public files would be served like `https://foo.github.io/bar/images/hero.png` after deployment. + +In most cases, you don't need to worry about the reference path of those public files, as VuePress will automatically handle `base` for you: + +```md + +![VuePress Logo](/images/hero.png) +``` + +However, sometimes you may have some dynamical links referencing public files, especially when you are authoring a custom theme. In such case, the `base` could not be handled automatically. To help with that, VuePress provides a [withBase](../reference/client-api.md#withbase) helper to prepend `base` for you: + +```vue + + + +``` + +You can also access the helper by `$withBase` directly: + +```md +VuePress Logo +``` + +## Packages and Path Aliases + +Although it is not a common usage, you can reference images from dependent packages: + +```bash +npm install -D package-name +``` + +Since markdown image syntax regards image links as relative paths by default, you need to use `` tag: + +```md +Image from dependency +``` + +The path aliases that set in config file are also supported: + +```ts +import { getDirname, path } from '@vuepress/utils' + +const __dirname = getDirname(import.meta.url) + +export default { + alias: { + '@alias': path.resolve(__dirname, './path/to/some/dir'), + }, +} +``` + +```md +Image from path alias +``` + +::: tip +Config reference: [alias](../reference/plugin-api.md#alias) +::: diff --git a/docs/guide/bundler.md b/docs/guide/bundler.md new file mode 100644 index 00000000..1a8640dc --- /dev/null +++ b/docs/guide/bundler.md @@ -0,0 +1,67 @@ +# Bundler + +VuePress has been using [Webpack](https://webpack.js.org/) as the bundler to dev and build sites. Since VuePress v2, other bundlers are also supported, and now we are using [Vite](https://vitejs.dev/) as the default bundler. Of course, you can still choose to use Webpack. + +## Choose a Bundler + +When using the [vuepress](https://www.npmjs.com/package/vuepress) package, Vite bundler is installed and used automatically. + +If you want to use Webpack bundler instead, you can remove it and install the [vuepress-webpack](https://www.npmjs.com/package/vuepress-webpack) package instead: + + + + +```bash +pnpm remove vuepress +pnpm add -D vuepress-webpack@next +``` + + + + + +```bash +yarn remove vuepress +yarn add -D vuepress-webpack@next +``` + + + + + +```bash +npm uninstall vuepress +npm install -D vuepress-webpack@next +``` + + + + +::: tip +In fact, the [vuepress](https://www.npmjs.com/package/vuepress) package is just a wrapper of the [vuepress-vite](https://www.npmjs.com/package/vuepress-vite) package. +::: + +## Configure Bundler + +Generally, you could use a bundler without extra configuration, because we have already configured them properly to work with VuePress. + +You can configure bundler for advanced usage via the [bundler](../reference/config.md#bundler) option: + +```ts +import { viteBundler } from 'vuepress' +// import { webpackBundler } from 'vuepress-webpack' + +export default { + bundler: viteBundler({ + vuePluginOptions: { + template: { + compilerOptions: { + isCustomElement: (tag) => tag === 'center', + }, + }, + }, + }), +} +``` + +You can refer to [Bundlers > Vite](../reference/bundler/vite.md) and [Bundlers > Webpack](../reference/bundler/webpack.md) to check out all options of the corresponding bundler. diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md new file mode 100644 index 00000000..f07eed61 --- /dev/null +++ b/docs/guide/configuration.md @@ -0,0 +1,92 @@ +# Configuration + +## Config File + +Without any configuration, the VuePress site is pretty minimal. To customize your site, let’s first create a `.vuepress` directory inside your docs directory. This is where all VuePress-specific files will be placed. Your project structure is probably like this: + +``` +├─ docs +│ ├─ .vuepress +│ │ └─ config.js +│ └─ README.md +├─ .gitignore +└─ package.json +``` + +The essential file for configuring a VuePress site is `.vuepress/config.js`, while TypeScript config file is also supported. You can use `.vuepress/config.ts` instead to get better types hint for VuePress config. + +To be more specific, we have a convention for config file paths (in order of precedence): + +- In current working directory `cwd`: + - `vuepress.config.ts` + - `vuepress.config.js` + - `vuepress.config.mjs` +- In source directory `sourceDir`: + - `.vuepress/config.ts` + - `.vuepress/config.js` + - `.vuepress/config.mjs` + +You can also specify the config file via `--config` option of [CLI](../reference/cli.md): + +```sh +vuepress dev docs --config my-config.js +``` + +A basic config file looks like this: + +```ts +import { defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + lang: 'en-US', + title: 'Hello VuePress', + description: 'Just playing around', +}) +``` + +::: tip +Check out the [Config Reference](../reference/config.md) for a full list of VuePress config. +::: + +## Client Config File + +In most cases, the config file is sufficient to configure your VuePress site. However, sometimes users may want to add some client-side code directly. To help with this, VuePress also supports a client config file: + +``` +├─ docs +│ ├─ .vuepress +│ │ ├─ client.js <--- client config file +│ │ └─ config.js <--- config file +│ └─ README.md +├─ .gitignore +└─ package.json +``` + +Similarly, we also have a convention for client config file paths (in order of precedence): + +- In current working directory `cwd`: + - `vuepress.client.ts` + - `vuepress.client.js` + - `vuepress.client.mjs` +- In source directory `sourceDir`: + - `.vuepress/client.ts` + - `.vuepress/client.js` + - `.vuepress/client.mjs` + +A basic client config file looks like this: + +```ts +import { defineClientConfig } from '@vuepress/client' + +export default defineClientConfig({ + enhance({ app, router, siteData }) {}, + setup() {}, + rootComponents: [], +}) +``` + +::: tip +Unlike config file, client config file could not be specified via CLI options. + +To learn more about client config file, see [Advanced > Cookbook > Usage of Client Config](../advanced/cookbook/usage-of-client-config.md) +::: diff --git a/docs/guide/deployment.md b/docs/guide/deployment.md new file mode 100644 index 00000000..7f132b68 --- /dev/null +++ b/docs/guide/deployment.md @@ -0,0 +1,224 @@ +# Deployment + +The following guides are based on some shared assumptions: + +- You are placing your Markdown source files inside the `docs` directory of your project; +- You are using the default build output location (`.vuepress/dist`); +- You are using [pnpm](https://pnpm.io) as package manager, while npm and yarn are also supported; +- VuePress is installed as a local dependency in your project, and you have setup the following script in `package.json`: + +```json +{ + "scripts": { + "docs:build": "vuepress build docs" + } +} +``` + +## GitHub Pages + +1. Set the correct [base](../reference/config.md#base) config. + + If you are deploying to `https://.github.io/`, you can omit this step as `base` defaults to `"/"`. + + If you are deploying to `https://.github.io//`, for example your repository is at `https://github.com//`, then set `base` to `"//"`. + +2. Choose your preferred CI tools. Here we take [GitHub Actions](https://github.com/features/actions) as an example. + + Create `.github/workflows/docs.yml` to set up the workflow. + +::: details Click to expand sample config +```yaml +name: docs + +on: + # trigger deployment on every push to main branch + push: + branches: [main] + # trigger deployment manually + workflow_dispatch: + +jobs: + docs: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + # fetch all commits to get last updated time or other git log info + fetch-depth: 0 + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + # choose pnpm version to use + version: 8 + # install deps with pnpm + run_install: true + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + # choose node.js version to use + node-version: 18 + # cache deps for pnpm + cache: pnpm + + # run build script + - name: Build VuePress site + run: pnpm docs:build + + # please check out the docs of the workflow for more details + # @see https://github.com/crazy-max/ghaction-github-pages + - name: Deploy to GitHub Pages + uses: crazy-max/ghaction-github-pages@v4 + with: + # deploy to gh-pages branch + target_branch: gh-pages + # deploy the default output dir of VuePress + build_dir: docs/.vuepress/dist + env: + # @see https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +``` +::: + +::: tip +Please refer to [GitHub Pages official guide](https://pages.github.com/) for more details. +::: + +## GitLab Pages + +1. Set the correct [base](../reference/config.md#base) config. + + If you are deploying to `https://.gitlab.io/`, you can omit `base` as it defaults to `"/"`. + + If you are deploying to `https://.gitlab.io//`, for example your repository is at `https://gitlab.com//`, then set `base` to `"//"`. + +2. Create `.gitlab-ci.yml` to set up [GitLab CI](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/) workflow. + +::: details Click to expand sample config +```yaml +# choose a docker image to use +image: node:18-buster + +pages: + # trigger deployment on every push to main branch + only: + - main + + # cache node_modules + cache: + key: + files: + - pnpm-lock.yaml + paths: + - .pnpm-store + + # Install pnpm + before_script: + - curl -fsSL https://get.pnpm.io/install.sh | sh - + - pnpm config set store-dir .pnpm-store + + # install dependencies and run build script + script: + - pnpm i --frozen-lockfile + - pnpm docs:build --dest public + + artifacts: + paths: + - public +``` +::: + +::: tip +Please refer to [GitLab Pages official guide](https://docs.gitlab.com/ce/user/project/pages/#getting-started) for more details. +::: + +## Google Firebase + +1. Make sure you have [firebase-tools](https://www.npmjs.com/package/firebase-tools) installed. + +2. Create `firebase.json` and `.firebaserc` at the root of your project with the following content: + +`firebase.json`: + +```json +{ + "hosting": { + "public": "./docs/.vuepress/dist", + "ignore": [] + } +} +``` + +`.firebaserc`: + +```json +{ + "projects": { + "default": "" + } +} +``` + +3. After running `pnpm docs:build`, deploy using the command `firebase deploy`. + +::: tip +Please refer to [Firebase CLI official guide](https://firebase.google.com/docs/cli) for more details. +::: + +## Heroku + +1. Install [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli). + +2. Create a Heroku account by [signing up](https://signup.heroku.com). + +3. Run `heroku login` and fill in your Heroku credentials: + +```bash +heroku login +``` + +4. Create a file called `static.json` in the root of your project with the below content: + +`static.json`: + +```json +{ + "root": "./docs/.vuepress/dist" +} +``` + +This is the configuration of your site; read more at [heroku-buildpack-static](https://github.com/heroku/heroku-buildpack-static). + +## Kinsta + +See [Set Up VuePress on Kinsta](https://kinsta.com/docs/vuepress-application/). + +## Edgio + +See [Edgio Documentation > Framework Guides > VuePress](https://docs.edg.io/guides/vuepress). + +## Netlify + +1. On [Netlify](https://netlify.com), set up a new project from GitHub with the following settings: + + - **Build Command:** `pnpm docs:build` + - **Publish directory:** `docs/.vuepress/dist` + +2. Set [Environment variables](https://docs.netlify.com/configure-builds/environment-variables) to choose node version: + + - `NODE_VERSION`: 18 + +3. Hit the deploy button. + +## Vercel + +1. Go to [Vercel](https://vercel.com), set up a new project from GitHub with the following settings: + + - **FRAMEWORK PRESET:** `Other` + - **BUILD COMMAND:** `pnpm docs:build` + - **OUTPUT DIRECTORY:** `docs/.vuepress/dist` + +2. Hit the deploy button. diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md new file mode 100644 index 00000000..944de1e5 --- /dev/null +++ b/docs/guide/getting-started.md @@ -0,0 +1,145 @@ +# Getting Started + +::: warning +VuePress v2 is currently in RC (Release Candidate) stage. It's ready to be used for building your site, but the config and API are not stable enough, which is possibly to have minor breaking changes. So make sure to read the [changelog](https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md) carefully each time you upgrade a RC version. +::: + +## Prerequisites + +- [Node.js v18.16.0+](https://nodejs.org/) +- Package manager like [pnpm](https://pnpm.io), [yarn](https://classic.yarnpkg.com/en/), [npm](https://www.npmjs.com), etc. + +::: tip + +- When using [pnpm](https://pnpm.io/), you need to install `vue` and `@vuepress/client` as peer-dependencies. +- When using [yarn 2+](https://yarnpkg.com/), you need to set `nodeLinker: 'node-modules'` in your [`.yarnrc.yml`](https://yarnpkg.com/configuration/yarnrc#nodeLinker) file. + +::: + +## Manual Installation + +This section will help you build a basic VuePress documentation site from ground up. If you already have an existing project and would like to keep documentation inside the project, start from Step 3. + +- **Step 1**: Create and change into a new directory + +```bash +mkdir vuepress-starter +cd vuepress-starter +``` + +- **Step 2**: Initialize your project + + + + +```bash +git init +pnpm init +``` + + + + + +```bash +git init +yarn init +``` + + + + + +```bash +git init +npm init +``` + + + + +- **Step 3**: Install VuePress locally + + + + +```bash +pnpm add -D vuepress@next @vuepress/client@next vue +``` + + + + + +```bash +yarn add -D vuepress@next +``` + + + + + +```bash +npm install -D vuepress@next +``` + + + + +- **Step 4**: Add some [scripts](https://classic.yarnpkg.com/en/docs/package-json#toc-scripts) to `package.json` + +```json +{ + "scripts": { + "docs:dev": "vuepress dev docs", + "docs:build": "vuepress build docs" + } +} +``` + +- **Step 5**: Add the default temp and cache directory to `.gitignore` file + +```bash +echo 'node_modules' >> .gitignore +echo '.temp' >> .gitignore +echo '.cache' >> .gitignore +``` + +- **Step 6**: Create your first document + +```bash +mkdir docs +echo '# Hello VuePress' > docs/README.md +``` + +- **Step 7**: Serve the documentation site in the local server + + + + +```bash +pnpm docs:dev +``` + + + + + +```bash +yarn docs:dev +``` + + + + + +```bash +npm run docs:dev +``` + + + + +VuePress will start a hot-reloading development server at [http://localhost:8080](http://localhost:8080). When you modify your markdown files, the content in the browser will be auto updated. + +By now, you should have a basic but functional VuePress documentation site. Next, learn about the basics of [configuration](./configuration.md) in VuePress. diff --git a/docs/guide/i18n.md b/docs/guide/i18n.md new file mode 100644 index 00000000..0ec8175b --- /dev/null +++ b/docs/guide/i18n.md @@ -0,0 +1,72 @@ +# I18n + +## Site I18n Config + +To take advantage of multi-language support in VuePress, you first need to use the following file and directory structure: + +``` +docs +├─ README.md +├─ foo.md +├─ nested +│  └─ README.md +└─ zh + ├─ README.md + ├─ foo.md + └─ nested +    └─ README.md +``` + +Then, specify the `locales` option in your [config file](./configuration.md#config-file): + +```ts +export default { + locales: { + // The key is the path for the locale to be nested under. + // As a special case, the default locale can use '/' as its path. + '/': { + lang: 'en-US', + title: 'VuePress', + description: 'Vue-powered Static Site Generator', + }, + '/zh/': { + lang: 'zh-CN', + title: 'VuePress', + description: 'Vue 驱动的静态网站生成器', + }, + }, +} +``` + +If a locale does not have a `lang`, `title`, `description` or `head`, VuePress will fallback to the root-level values. You can omit the root level config as long as they are provided in each locale. + +::: tip +Config reference: [locales](../reference/config.md#locales) +::: + +## Theme I18n Config + +VuePress does not restrict how themes provide multi-language support, so each theme may have different way to handle i18n, and some themes may not provide multi-language support at all. You'd better refer to the theme documentation for detailed guide. + +If you are using default theme, the multi-language support is the same as above: + +```ts +import { defaultTheme } from 'vuepress' + +export default { + theme: defaultTheme({ + locales: { + '/': { + selectLanguageName: 'English', + }, + '/zh/': { + selectLanguageName: '简体中文', + }, + }, + }), +} +``` + +::: tip +Config reference: [Default Theme > locales](../reference/default-theme/config.md#locales) +::: diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md new file mode 100644 index 00000000..bb594785 --- /dev/null +++ b/docs/guide/markdown.md @@ -0,0 +1,435 @@ +# Markdown + +Make sure you already know Markdown well before reading this section. If not, please learn some [Markdown tutorials](https://commonmark.org/help/) first. + +The Markdown content in VuePress will be parsed by [markdown-it](https://github.com/markdown-it/markdown-it), which supports [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) via markdown-it plugins. + +You can also configure those built-in extensions, load more markdown-it plugins and implement your own extensions via [markdown](../reference/config.md#markdown) option and [extendsMarkdown](../reference/plugin-api.md#extendsmarkdown) option. + +## Syntax Extensions + +This section will introduce built-in Markdown syntax extensions of VuePress. + +### Embedded + +Embedded by markdown-it: + +- [Tables](https://help.github.com/articles/organizing-information-with-tables/) (GFM) +- [Strikethrough](https://help.github.com/articles/basic-writing-and-formatting-syntax/#styling-text) (GFM) + +### Header Anchors + +You might have noticed that, a `#` anchor is displayed when you hover the mouse on the headers of each section. By clicking the `#` anchor, you can jump to the section directly. + +::: tip +This header anchors extension is supported by [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor). + +Config reference: [markdown.anchor](../reference/config.md#markdown-anchor) +::: + +### Links + +When using Markdown [link syntax](https://spec.commonmark.org/0.29/#link-reference-definitions), VuePress will implement some conversions for you. + +Take our documentation source files as an example: + +```bash +└─ docs + ├─ guide + │ ├─ getting-started.md + │ ├─ markdown.md # <- Here we are + │ └─ README.md + ├─ reference + │ └─ config.md + └─ README.md +``` + +**Raw Markdown** + +```md + +[Home](../README.md) +[Config Reference](../reference/config.md) +[Getting Started](./getting-started.md) + +[Guide](/guide/README.md) +[Config Reference > markdown.links](/reference/config.md#links) + +[GitHub](https://github.com) +``` + +**Converted to** + +```vue + +``` + +**Rendered as** + +[Home](../README.md) +[Config Reference](../reference/config.md) +[Getting Started](./getting-started.md) +[Guide](/guide/README.md) +[Config Reference > markdown.links](/reference/config.md#links) +[GitHub](https://github.com) + +**Explanation** + +- Internal links will be converted to `` for SPA navigation. +- Internal links to `.md` files will be converted to the [page route path](./page.md#routing), and both absolute path and relative path are supported. +- External links will get `target="_blank" rel="noopener noreferrer"` attrs. + +**Suggestion** + +Try to use relative paths instead of absolute paths for internal links to markdown files. + +- Relative paths are a valid links to the target files, and they can navigate correctly when browsing the source files in your editor or repository. +- Relative paths are consistent in different locales, so you don't need to change the locale path when translating your content. + +::: tip +This links extension is supported by our built-in plugin. + +Config reference: [markdown.links](../reference/config.md#markdown-links) +::: + +### Emoji :tada: + +You can add emoji to your Markdown content by typing `:EMOJICODE:`. + +For a full list of available emoji and codes, check out [emoji-cheat-sheet](https://github.com/ikatyang/emoji-cheat-sheet). + +**Input** + +```md +VuePress 2 is out :tada: ! +``` + +**Output** + +VuePress 2 is out :tada: ! + +::: tip +This emoji extension is supported by [markdown-it-emoji](https://github.com/markdown-it/markdown-it-emoji). + +Config reference: [markdown.emoji](../reference/config.md#markdown-emoji) +::: + +### Table of Contents + +If you want to put the table of contents (TOC) of your current page inside your Markdown content, you can use the `[[toc]]` syntax. + +**Input** + +```md +[[toc]] +``` + +**Output** + +[[toc]] + +The headers in TOC will link to the corresponding [header anchors](#header-anchors), so TOC won't work well if you disable header anchors. + +::: tip +This toc extension is supported by [@mdit-vue/plugin-toc](https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-toc). + +Config reference: [markdown.toc](../reference/config.md#markdown-toc) +::: + +### Code Blocks + +Following code blocks extensions are implemented during markdown parsing in Node side. That means, the code blocks won't be processed in client side. + +#### Line Highlighting + +You can highlight specified lines of your code blocks by adding line ranges mark in your fenced code blocks: + +**Input** + +````md +```ts{1,6-8} +import { defaultTheme, defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + title: 'Hello, VuePress', + + theme: defaultTheme({ + logo: 'https://vuejs.org/images/logo.png', + }), +}) +``` +```` + +**Output** + +```ts{1,6-8} +import { defaultTheme, defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + title: 'Hello, VuePress', + + theme: defaultTheme({ + logo: 'https://vuejs.org/images/logo.png', + }), +}) +``` + +Examples for line ranges mark: + +- Line ranges: `{5-8}` +- Multiple single lines: `{4,7,9}` +- Combined: `{4,7-13,16,23-27,40}` + +::: tip +This line highlighting extension is supported by our built-in plugin, which is forked and modified from [markdown-it-highlight-lines](https://github.com/egoist/markdown-it-highlight-lines). + +Config reference: [markdown.code.highlightLines](../reference/config.md#markdown-code-highlightlines) +::: + +#### Line Numbers + +You must have noticed that the number of lines is displayed on the left side of code blocks. This is enabled by default and you can disable it in config. + +You can add `:line-numbers` / `:no-line-numbers` mark in your fenced code blocks to override the value set in config. + +**Input** + +````md +```ts +// line-numbers is enabled by default +const line2 = 'This is line 2' +const line3 = 'This is line 3' +``` + +```ts:no-line-numbers +// line-numbers is disabled +const line2 = 'This is line 2' +const line3 = 'This is line 3' +``` +```` + +**Output** + +```ts +// line-numbers is enabled by default +const line2 = 'This is line 2' +const line3 = 'This is line 3' +``` + +```ts:no-line-numbers +// line-numbers is disabled +const line2 = 'This is line 2' +const line3 = 'This is line 3' +``` + +::: tip +This line numbers extension is supported by our built-in plugin. + +Config reference: [markdown.code.lineNumbers](../reference/config.md#markdown-code-linenumbers) +::: + +#### Wrap with v-pre + +As [template syntax is allowed in Markdown](#template-syntax), it would also work in code blocks, too. + +To avoid your code blocks being compiled by Vue, VuePress will add [v-pre](https://vuejs.org/api/built-in-directives.html#v-pre) directive to your code blocks by default, which can be disabled in config. + +You can add `:v-pre` / `:no-v-pre` mark in your fenced code blocks to override the value set in config. + +::: warning +The template syntax characters, for example, the "Mustache" syntax (double curly braces) might be parsed by the syntax highlighter. Thus, as the following example, `:no-v-pre` might not work well in some languages. + +If you want to make Vue syntax work in those languages anyway, try to disable the default syntax highlighting and implement your own syntax highlighting in client side. +::: + +**Input** + +````md +```md + +1 + 2 + 3 = {{ 1 + 2 + 3 }} +``` + +```md:no-v-pre + +1 + 2 + 3 = {{ 1 + 2 + 3 }} +``` + +```js:no-v-pre +// This won't be compiled correctly because of js syntax highlighting +const onePlusTwoPlusThree = {{ 1 + 2 + 3 }} +``` +```` + +**Output** + +```md + +1 + 2 + 3 = {{ 1 + 2 + 3 }} +``` + +```md:no-v-pre + +1 + 2 + 3 = {{ 1 + 2 + 3 }} +``` + + + +```js +// This won't be compiled correctly because of js syntax highlighting +const onePlusTwoPlusThree = {{ 1 + 2 + 3 }} +``` + +::: tip +This v-pre extension is supported by our built-in plugin. + +Config reference: [markdown.code.vPre.block](../reference/config.md#markdown-code-vpre-block) +::: + +### Import Code Blocks + +You can import code blocks from files with following syntax: + +```md + +@[code](../foo.js) +``` + +If you want to partially import the file: + +```md + +@[code{1-10}](../foo.js) +``` + +The code language is inferred from the file extension, while it is recommended to specify it explicitly: + +```md + +@[code js](../foo.js) +``` + +In fact, the second part inside the `[]` will be treated as the mark of the code fence, so it supports all the syntax mentioned in the above [Code Blocks](#code-blocks) section: + +```md + +@[code js{2,4-5}](../foo.js) +``` + +Here is a complex example: + +- import line 3 to line 10 of the `'../foo.js'` file +- specify the language as `'js'` +- highlight line 3 of the imported code, i.e. line 5 of the `'../foo.js'` file +- disable line numbers + +```md +@[code{3-10} js{3}:no-line-numbers](../foo.js) +``` + +Notice that path aliases are not available in import code syntax. You can use following config to handle path alias yourself: + +```ts +import { getDirname, path } from '@vuepress/utils' + +const __dirname = getDirname(import.meta.url) + +export default { + markdown: { + importCode: { + handleImportPath: (str) => + str.replace(/^@src/, path.resolve(__dirname, 'path/to/src')), + }, + }, +} +``` + +```md + +@[code](@src/foo.js) +``` + +::: tip +This import code extension is supported by our built-in plugin. + +Config reference: [markdown.importCode](../reference/config.md#markdown-importcode) +::: + +## Using Vue in Markdown + +This section will introduce some basic usage of Vue in Markdown. + +Check out [Cookbook > Markdown and Vue SFC](../advanced/cookbook/markdown-and-vue-sfc.md) for more details. + +### Template Syntax + +As we know: + +- HTML is allowed in Markdown. +- Vue template syntax is compatible with HTML. + +That means, [Vue template syntax](https://vuejs.org/guide/essentials/template-syntax.html) is allowed in Markdown. + +**Input** + +```md +One plus one equals: {{ 1 + 1 }} + + span: {{ i }} +``` + +**Output** + +One plus one equals: {{ 1 + 1 }} + + span: {{ i }} + +### Components + +You can use Vue components directly in Markdown. + +**Input** + +```md +This is default theme built-in `` component +``` + +**Output** + +This is default theme built-in `` component + +::: tip +Check out the [Built-in Components](../reference/components.md) for a full list of built-in components. + +Check out the [Default Theme > Built-in Components](../reference/default-theme/components.md) for a full list of default theme built-in components. +::: + +## Custom Markdown Plugins + +Sometimes #940 + +## Cautions + +### Non-Standard HTML Tags + +Non-standard HTML tags would not be recognized as native HTML tags by Vue template compiler. Instead, Vue will try to resolve those tags as Vue components, and obviously these components usually don't exist. For example: + +- Deprecated HTML tags such as [\

](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/center) and [\](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/font). +- [MathML tags](https://developer.mozilla.org/en-US/docs/Web/MathML), which might be used by some markdown-it LaTeX plugin. + +If you want to use those tags anyway, try either of the following workarounds: + +- Adding a [v-pre](https://vuejs.org/api/built-in-directives.html#v-pre) directive to skip the compilation of the element and its children. Notice that the template syntax would also be invalid. +- Using [compilerOptions.isCustomElement](https://vuejs.org/api/application.html#app-config-compileroptions) to tell Vue template compiler not try to resolve them as components. + - For `@bundler-webpack`, set [vue.compilerOptions](../reference/bundler/webpack.md#vue) + - For `@bundler-vite`, set [vuePluginOptions.template.compilerOptions](../reference/bundler/vite.md#vuepluginoptions) diff --git a/docs/guide/migration.md b/docs/guide/migration.md new file mode 100644 index 00000000..f0c15860 --- /dev/null +++ b/docs/guide/migration.md @@ -0,0 +1,393 @@ +# Migrating from v1 + +::: warning +Plugins and themes of VuePress v1 are not compatible with VuePress v2. You need to update them to corresponding v2 version. +::: + +Some major changes and enhancements of VuePress v2: + +- VuePress v2 is now using Vue 3, so make sure your components and other client files are compatible with Vue 3. +- VuePress v2 is developed with TypeScript, so it provides better TS support now. It's highly recommended to use TypeScript to develop plugins and themes. VuePress config file also supports TypeScript, and you can use `.vuepress/config.ts` directly. +- VuePress v2 supports both Webpack and Vite as bundler. Now Vite is the default bundler, while you can still choose to use Webpack. You can even use Vite in dev mode to get better development experience, and use Webpack in build mode to get better browser compatibility. +- VuePress v2 is now released as pure ESM packages, and CommonJS config files are no longer supported. + +Core ideas and processes of VuePress v2 are the same with v1, while v2 API has been re-designed and becomes more normalized. So you might encounter breaking changes when migrating an existing v1 project to v2. This guide is here to help you migrating v1 sites / plugins / themes to v2. + +- If you are a common user, you need to read the guide [for users](#for-users). +- If you are a plugin author, you need to read the guide [for plugin authors](#for-plugin-authors). +- If you are a theme author, you need to read the guide [for theme authors](#for-theme-authors). + +## For Users + +### User Config Change + +Config file should be in ESM format, and CommonJS format config file is no longer supported. + +```diff +// .vuepress/config.js + +- module.exports = { +- // user config +- } + ++ export default { ++ // user config ++ } +``` + +#### theme + +Using a theme via string is not supported. Import the theme directly. + +```diff +- module.exports = { +- theme: '@vuepress/theme-default', +- themeConfig: { +- // default theme config +- }, +- } + ++ import { defaultTheme } from 'vuepress' ++ export default { ++ theme: defaultTheme({ ++ // default theme config ++ }) ++ } +``` + +#### themeConfig + +Removed. Set config to the theme directly. + +#### plugins + +Using a plugin via string is not supported. Import the plugin directly. + +```diff +- module.exports = { +- plugins: [ +- [ +- '@vuepress/plugin-google-analytics', +- { +- id: 'G-XXXXXXXXXX', +- }, +- ], +- ], +- } + ++ import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics' ++ export default { ++ plugins: [ ++ googleAnalyticsPlugin({ ++ id: 'G-XXXXXXXXXX', ++ }), ++ ], ++ } +``` + +#### shouldPrefetch + +Default value is changed from `() => true` to `true`. + +#### extraWatchFiles + +Removed. + +You can watch files manually in [onWatched](../reference/plugin-api.md#onwatched) hook. + +#### patterns + +Renamed to `pagePatterns` + +#### markdown.lineNumbers + +Moved to [markdown.code.lineNumbers](../reference/config.md#markdown-code-linenumbers). + +Default value is changed from `false` to `true`. + +#### markdown.pageSuffix + +Removed. + +#### markdown.externalLinks + +Moved to [markdown.links.externalAttrs](../reference/config.md#markdown-links). + +#### markdown.toc + +Changed. + +See [Config > markdown.toc](../reference/config.md#markdown-toc) + +#### markdown.plugins + +Removed. + +Use markdown-it plugins in [extendsMarkdown](../reference/plugin-api.md#extendsmarkdown) hook. + +#### markdown.extendMarkdown + +Removed. + +Use [extendsMarkdown](../reference/plugin-api.md#extendsmarkdown) hook. + +#### markdown.extractHeaders + +Moved to [markdown.headers](../reference/config.md#markdown-headers). + +#### Webpack Related Configs + +All webpack related configs are moved to options of `@vuepress/bundler-webpack`, including: + +- `postcss` +- `stylus` +- `scss` +- `sass` +- `less` +- `chainWebpack` +- `configureWebpack` +- `evergreen`: default value is changed from `false` to `true` + +```diff +- module.exports = { +- sass: { /* ... */ }, +- } + ++ import { webpackBundler } from '@vuepress/bundler-webpack' ++ export default { ++ bundler: webpackBundler({ ++ sass: { /* ... */ }, ++ }), ++ } +``` + +Please refer to [Guide > Bundler](./bundler.md). + +### Frontmatter Change + +#### meta + +Removed. + +Use [head](../reference/frontmatter.md#head) instead. For example: + +```yaml +head: + - - meta + - name: foo + content: bar + - - link + - rel: canonical + href: foobar + - - script + - {} + - console.log('hello from frontmatter'); +``` + +Has the same structure with: + +```ts +// .vuepress/config.ts +export default { + // ... + head: [ + ['meta', { name: 'foo', content: 'bar' }], + ['link', { rel: 'canonical', href: 'foobar' }], + ['script', {}, `console.log('hello from frontmatter');`], + ], + // ... +} +``` + +### Permalink Patterns Change + +- `:i_month`: removed +- `:i_day`: removed +- `:minutes`: removed (undocumented in v1) +- `:seconds`: removed (undocumented in v1) +- `:regular`: renamed to `:raw` + +See [Frontmatter > permalinkPattern](../reference/frontmatter.md#permalinkpattern). + +### Palette System Change + +The stylus palette system of VuePress v1 (i.e. `styles/palette.styl` and `styles/index.styl`) is no longer provided by VuePress Core. + +The palette system is extracted to [@vuepress/plugin-palette](../reference/plugin/palette.md). + +Theme authors can use their own way to allow users to customize styles, and not be limited with stylus. + +If you are using default theme, the palette system is still available but migrated to SASS, while most variables have been migrated to CSS variables. See [Default Theme > Styles](../reference/default-theme/styles.md). + +### Conventional Files Change + +#### .vuepress/enhanceApp.js + +Renamed to `.vuepress/client.{js,ts}`, and the usage has been changed, too. + +See [Advanced > Cookbook > Usage of Client Config](../advanced/cookbook/usage-of-client-config.md). + +#### .vuepress/components/ + +Files in this directory will not be registered as Vue components automatically. + +You need to use [@vuepress/plugin-register-components](../reference/plugin/register-components.md), or register your components manually in `.vuepress/client.{js,ts}`. + +#### .vuepress/theme/ + +This directory will not be used as local theme implicitly if it is existed. + +You need to import and set your local theme via [theme](../reference/config.md#theme) option. + +### Markdown Change + +- Markdown slot is no longer supported. +- Markdown image syntax does not support webpack aliases anymore. Links without `./` prefix are also treated as relative links, which is aligned with the behavior of the native markdown image syntax. If you want to use aliases in image paths, or use images from external packages, you should use `` tag instead. + +```diff +- ![](@alias/foo.png) +- ![](package-name/bar.png) + ++ ++ +``` + +### CLI Change + +#### eject command + +Removed. + +#### cache options + +- `-c, --cache [cache]`: changed to `--cache `, which means that the shorthand `-c` is not for `cache` option, and the value of `cache` option is not optional. +- `--no-cache`: renamed to `--clean-cache` . + +### Default Theme Change + +#### Built-in Components + +- `` and `` renamed to `` and `` +- `` + - `$badgeErrorColor` palette variable renamed to `$badgeDangerColor` + - `type` prop only accepts `tip`, `warning` and `danger` now + +#### Palette System + +The palette system of default theme has migrated to SASS and CSS variables. + +See [Default Theme > Styles](../reference/default-theme/styles.md). + +#### Theme Config + +Default theme config has been changed a lot. You'd better check the config reference of v2 default theme to migrate it properly. + +See [Default Theme > Config](../reference/default-theme/config.md). + +Here we list some notable changes: + +##### Sidebar Config + +```diff +- sidebar: { +- title: 'Foo Bar', +- path: '/foo/bar.html', +- collapsable: true, +- children: [ +- ['/baz', 'Baz'], +- ], +- } + ++ sidebar: { ++ text: 'Foo Bar', ++ link: '/foo/bar.html', ++ collapsible: true, ++ children: [ ++ { ++ text: 'Baz', ++ link: '/baz', ++ } ++ ], ++ } +``` + +### Official Plugins Change + +Check the v2 docs of official plugins. + +### Community Themes and Plugins + +Themes and plugins of v1 are not compatible with v2. + +Please make sure that those themes and plugins you are using have supported v2, and refer to their own documentation for migration guide. + +## For Plugin Authors + +Some major breaking changes: + +- You cannot use other plugins in your plugin anymore, which avoids lots of potential issues caused by plugin nesting. If your plugin depends on other plugins, you could list them in the docs to ask users import them manually. Alternatively, you can provide users with an array of plugins for convenience. +- Most of the v1 hooks have equivalents in v2. The only exception is `extendsCli`, which has been removed. +- Webpack related hooks are removed, because VuePress Core has decoupled with webpack. You can try to use [extendsBundlerOptions](../reference/plugin-api.md#extendsbundleroptions) hook for similar purpose, and make sure to work with all bundlers. + +For more detailed guide about how to write a plugin in v2, see [Advanced > Writing a Plugin](../advanced/plugin.md). + +### Plugin API Change + +- `plugins`: removed +- `ready`: renamed to `onPrepared` +- `updated`: renamed to `onWatched` +- `generated`: renamed to `onGenerated` +- `additionalPages`: removed, use `app.pages.push(createPage())` in `onInitialized` hook +- `clientDynamicModules`: removed, use `app.writeTemp()` in `onPrepared` hook +- `enhanceAppFiles`: removed, use `clientConfigFile` hook +- `globalUIComponents`: removed, use `clientConfigFile` hook +- `clientRootMixin`: removed, use `clientConfigFile` hook +- `extendMarkdown`: renamed to `extendsMarkdown` +- `chainMarkdown`: removed +- `extendPageData`: renamed to `extendsPage` +- `extendsCli`: removed +- `configureWebpack`: removed +- `chainWebpack`: removed +- `beforeDevServer`: removed +- `afterDevServer`: removed + +See [Plugin API](../reference/plugin-api.md). + +## For Theme Authors + +Although we do not allow using other plugins in a plugin anymore, you can still use plugins in your theme. + +Some major breaking changes: + +- There is no **conventional theme directory structure** anymore. + - The file `theme/enhanceApp.js` will not be used as client app enhance file implicitly. You need to specify it explicitly in `clientConfigFile` hook. + - Files in `theme/global-components/` directory will not be registered as Vue components automatically. You need to use [@vuepress/plugin-register-components](../reference/plugin/register-components.md), or register components manually in `clientConfigFile`. + - Files in `theme/layouts/` directory will not be registered as layout components automatically. You need to specify it explicitly in `layouts` option in `clientConfigFile`. + - Files in `theme/templates/` directory will not be used as dev / ssr template automatically. You need to specify theme explicitly in `templateBuild` and `templateDev` option. + - Always provide a valid js entry file, and do not use `"main": "layouts/Layout.vue"` as the theme entry anymore. +- `themeConfig` is removed from user config and site data. To access the `themeConfig` as you would via `this.$site.themeConfig` in v1, we now recommend using the [@vuepress/plugin-theme-data](../reference/plugin/theme-data.md) plugin and its `useThemeData` composition API. +- Stylus is no longer the default CSS pre-processor, and the stylus palette system is not embedded. If you still want to use similar palette system as v1, [@vuepress/plugin-palette](../reference/plugin/palette.md) may help. +- Markdown code blocks syntax highlighting by Prism.js is not embedded by default. You can use either [@vuepress/plugin-prismjs](../reference/plugin/prismjs.md) or [@vuepress/plugin-shiki](../reference/plugin/shiki.md), or implement syntax highlighting in your own way. +- For scalability concerns, `this.$site.pages` is not available any more. + +For more detailed guide about how to write a theme in v2, see [Advanced > Writing a Theme](../advanced/theme.md). + +### Theme API Change + +#### layouts + +Removed. + +Now you need to specify layout component in the client config file of your theme. + +See [Advanced > Writing a theme](../advanced/theme.md). + +#### extend + +Renamed to `extends`. + +You can still inherit a parent theme with `extends: parentTheme()`, which will extends the plugins, layouts, etc. + +You can refer to [Default Theme > Extending](../reference/default-theme/extending.md) for how to extend default theme. + +The `@theme` and `@parent-theme` aliases are removed by default, but you can still make a extendable theme with similar approach, see [Advanced > Cookbook > Making a Theme Extendable](../advanced/cookbook/making-a-theme-extendable.md). diff --git a/docs/guide/page.md b/docs/guide/page.md new file mode 100644 index 00000000..2c627c8a --- /dev/null +++ b/docs/guide/page.md @@ -0,0 +1,64 @@ +# Page + +VuePress is markdown-centered. Each markdown file inside your project is a standalone page. + +## Routing + +By default, the route path of a page is determined by the relative path of your markdown file. + +Assuming this is the directory structure of your markdown files: + +``` +└─ docs + ├─ guide + │ ├─ getting-started.md + │ └─ README.md + ├─ contributing.md + └─ README.md +``` + +Take the `docs` directory as your [sourceDir](../reference/cli.md), e.g. you are running `vuepress dev docs` command. Then the route paths of your markdown files would be: + +| Relative Path | Route Path | +|-----------------------------|-------------------------------| +| `/README.md` | `/` | +| `/index.md` | `/` | +| `/contributing.md` | `/contributing.html` | +| `/guide/README.md` | `/guide/` | +| `/guide/getting-started.md` | `/guide/getting-started.html` | + +::: tip +By default, both `README.md` and `index.md` would be converted to `index.html` and generate a slash-ending route path. However, it might cause conflicts if you want to keep both of the two files. + +In such case, you can set the [pagePatterns](../reference/config.md#pagepatterns) to avoid one of them being processed by VuePress, e.g. use `['**/*.md', '!**/README.md', '!.vuepress', '!node_modules']` to exclude all `README.md` files. + +Also, some symbols like `:` and `+` may have special meanings for vue-router, so you should avoid using them, see [vue-router docs](https://router.vuejs.org/guide/essentials/route-matching-syntax.html) for more details. +::: + +## Frontmatter + +A markdown file could contain a [YAML](https://yaml.org/) frontmatter. The frontmatter must be at the top of the Markdown file and must be wrapped with a couple of triple-dashed lines. Here is a basic example: + +```md +--- +lang: en-US +title: Title of this page +description: Description of this page +--- +``` + +You must have noticed that those fields are similar with the [Site Config](./configuration.md#site-config) in the [Config File](./configuration.md#config-file). You can override `lang`, `title`, `description`, etc., of current page via frontmatter. So you can take frontmatter as page scope config. + +Also, VuePress has built-in support for some frontmatter fields, and your theme may have its own special frontmatter, too. + +::: tip +Check out the [Frontmatter Reference](../reference/frontmatter.md) for a full list of VuePress built-in frontmatter. + +Check out the [Default Theme > Frontmatter Reference](../reference/default-theme/frontmatter.md) for the frontmatter of default theme. +::: + +## Content + +The main content of your page is written in Markdown. VuePress will firstly transform your Markdown to HTML code, then treat the HTML code as `