From e1e5d22eeafb58abcf278955f2a204f2bc65ebc2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 1 Aug 2024 16:19:50 +0800 Subject: [PATCH 01/45] chore: bump vue-tsc (for ecosystem-ci) --- package.json | 2 +- pnpm-lock.yaml | 62 +++++++++++++++++++++++++------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 616b9a79..6ca5665f 100644 --- a/package.json +++ b/package.json @@ -187,7 +187,7 @@ "supports-color": "^9.4.0", "typescript": "^5.5.3", "vitest": "^2.0.2", - "vue-tsc": "^2.0.26", + "vue-tsc": "^2.0.29", "wait-on": "^7.2.0" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8089d9f..2deae6d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -279,8 +279,8 @@ importers: specifier: ^2.0.2 version: 2.0.2(@types/node@20.14.10)(supports-color@9.4.0) vue-tsc: - specifier: ^2.0.26 - version: 2.0.26(typescript@5.5.3) + specifier: ^2.0.29 + version: 2.0.29(typescript@5.5.3) wait-on: specifier: ^7.2.0 version: 7.2.0(debug@4.3.5(supports-color@9.4.0)) @@ -1100,14 +1100,14 @@ packages: '@vitest/utils@2.0.2': resolution: {integrity: sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==} - '@volar/language-core@2.4.0-alpha.15': - resolution: {integrity: sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==} + '@volar/language-core@2.4.0-alpha.18': + resolution: {integrity: sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==} - '@volar/source-map@2.4.0-alpha.15': - resolution: {integrity: sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==} + '@volar/source-map@2.4.0-alpha.18': + resolution: {integrity: sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==} - '@volar/typescript@2.4.0-alpha.15': - resolution: {integrity: sha512-U3StRBbDuxV6Woa4hvGS4kz3XcOzrWUKgFdEFN+ba1x3eaYg7+ytau8ul05xgA+UNGLXXsKur7fTUhDFyISk0w==} + '@volar/typescript@2.4.0-alpha.18': + resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} '@vue/compiler-core@3.4.31': resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} @@ -1121,6 +1121,9 @@ packages: '@vue/compiler-ssr@3.4.31': resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + '@vue/devtools-api@7.3.5': resolution: {integrity: sha512-BSdBBu5hOIv+gBJC9jzYMh5bC27FQwjWLSb8fVAniqlL9gvsqvK27xTgczMf+hgctlszMYQnRm3bpY/j8vhPqw==} @@ -1130,8 +1133,8 @@ packages: '@vue/devtools-shared@7.3.5': resolution: {integrity: sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A==} - '@vue/language-core@2.0.26': - resolution: {integrity: sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==} + '@vue/language-core@2.0.29': + resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2661,11 +2664,8 @@ packages: '@vue/composition-api': optional: true - vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - - vue-tsc@2.0.26: - resolution: {integrity: sha512-tOhuwy2bIXbMhz82ef37qeiaQHMXKQkD6mOF6CCPl3/uYtST3l6fdNyfMxipudrQTxTfXVPlgJdMENBFfC1CfQ==} + vue-tsc@2.0.29: + resolution: {integrity: sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -3434,15 +3434,15 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@volar/language-core@2.4.0-alpha.15': + '@volar/language-core@2.4.0-alpha.18': dependencies: - '@volar/source-map': 2.4.0-alpha.15 + '@volar/source-map': 2.4.0-alpha.18 - '@volar/source-map@2.4.0-alpha.15': {} + '@volar/source-map@2.4.0-alpha.18': {} - '@volar/typescript@2.4.0-alpha.15': + '@volar/typescript@2.4.0-alpha.18': dependencies: - '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-core': 2.4.0-alpha.18 path-browserify: 1.0.1 vscode-uri: 3.0.8 @@ -3476,6 +3476,11 @@ snapshots: '@vue/compiler-dom': 3.4.31 '@vue/shared': 3.4.31 + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + '@vue/devtools-api@7.3.5': dependencies: '@vue/devtools-kit': 7.3.5 @@ -3494,16 +3499,16 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@2.0.26(typescript@5.5.3)': + '@vue/language-core@2.0.29(typescript@5.5.3)': dependencies: - '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-core': 2.4.0-alpha.18 '@vue/compiler-dom': 3.4.31 + '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.4.31 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 optionalDependencies: typescript: 5.5.3 @@ -5017,15 +5022,10 @@ snapshots: dependencies: vue: 3.4.31(typescript@5.5.3) - vue-template-compiler@2.7.16: - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - vue-tsc@2.0.26(typescript@5.5.3): + vue-tsc@2.0.29(typescript@5.5.3): dependencies: - '@volar/typescript': 2.4.0-alpha.15 - '@vue/language-core': 2.0.26(typescript@5.5.3) + '@volar/typescript': 2.4.0-alpha.18 + '@vue/language-core': 2.0.29(typescript@5.5.3) semver: 7.6.2 typescript: 5.5.3 From b6a36bc1e2b6907424c9be69d4b5d8d2298586f4 Mon Sep 17 00:00:00 2001 From: betteroneday <103012231+betteroneday@users.noreply.github.com> Date: Sat, 3 Aug 2024 16:41:42 +0800 Subject: [PATCH 02/45] docs(zh): fix typo (#4101) [lunaria-ignore] --- docs/zh/reference/site-config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/reference/site-config.md b/docs/zh/reference/site-config.md index 5ab2cd67..72426c61 100644 --- a/docs/zh/reference/site-config.md +++ b/docs/zh/reference/site-config.md @@ -333,7 +333,7 @@ export default { - 类型:`string` - 默认值: `/` -站点将部署到的 base URL。如果计划在子路径例如 GitHub 页面)下部署站点,则需要设置此项。如果计划将站点部署到 `https://foo.github.io/bar/`,那么应该将 `base` 设置为 `'/bar/'`。它应该始终以 `/` 开头和结尾。 +站点将部署到的 base URL。如果计划在子路径例如 GitHub 页面下部署站点,则需要设置此项。如果计划将站点部署到 `https://foo.github.io/bar/`,那么应该将 `base` 设置为 `'/bar/'`。它应该始终以 `/` 开头和结尾。 base 会自动添加到其他选项中以 `/` 开头的所有 URL 前面,因此只需指定一次。 From 2b3e486ab913ff77707410b9cee3ba6d256ccc95 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Mon, 5 Aug 2024 22:59:54 +0530 Subject: [PATCH 03/45] fix: multiple cache busting imports causing useData to fail closes #3820 reverts #3398 reopens #3363 --- src/client/app/index.ts | 2 -- src/node/build/build.ts | 4 +--- src/node/build/render.ts | 6 +----- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/client/app/index.ts b/src/client/app/index.ts index 72cc5063..2c7c66f0 100644 --- a/src/client/app/index.ts +++ b/src/client/app/index.ts @@ -150,8 +150,6 @@ function newRouter(): Router { url.hash return import(/*@vite-ignore*/ path) }) - } else if (import.meta.env.SSR) { - pageModule = import(/*@vite-ignore*/ `${pageFilePath}?t=${Date.now()}`) } else { pageModule = import(/*@vite-ignore*/ pageFilePath) } diff --git a/src/node/build/build.ts b/src/node/build/build.ts index d6177864..08289b86 100644 --- a/src/node/build/build.ts +++ b/src/node/build/build.ts @@ -52,9 +52,7 @@ export async function build( } const entryPath = path.join(siteConfig.tempDir, 'app.js') - const { render } = await import( - pathToFileURL(entryPath).toString() + '?t=' + Date.now() - ) + const { render } = await import(pathToFileURL(entryPath).href) await task('rendering pages', async () => { const appChunk = diff --git a/src/node/build/render.ts b/src/node/build/render.ts index c9b71c81..844498e5 100644 --- a/src/node/build/render.ts +++ b/src/node/build/render.ts @@ -52,11 +52,7 @@ export async function renderPage( try { // resolve page data so we can render head tags const { __pageData } = await import( - pathToFileURL( - path.join(config.tempDir, pageServerJsFileName) - ).toString() + - '?t=' + - Date.now() + pathToFileURL(path.join(config.tempDir, pageServerJsFileName)).href ) pageData = __pageData } catch (e) { From 32862123b85583209b3d48650c0cfc65d0ed425a Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Mon, 5 Aug 2024 23:05:59 +0530 Subject: [PATCH 04/45] release: v1.3.2 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0affb2e8..2deb83c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.3.2](https://github.com/vuejs/vitepress/compare/v1.3.1...v1.3.2) (2024-08-05) + +### Bug Fixes + +- multiple cache busting imports causing useData to fail ([2b3e486](https://github.com/vuejs/vitepress/commit/2b3e486ab913ff77707410b9cee3ba6d256ccc95)), closes [#3820](https://github.com/vuejs/vitepress/issues/3820) [#3398](https://github.com/vuejs/vitepress/issues/3398) [#3363](https://github.com/vuejs/vitepress/issues/3363) +- **theme:** excerpt style in LocalSearchBox ([#4050](https://github.com/vuejs/vitepress/issues/4050)) ([2bc0d39](https://github.com/vuejs/vitepress/commit/2bc0d39d5089841986f0988fc9cfe15533d3a0c6)) + ## [1.3.1](https://github.com/vuejs/vitepress/compare/v1.3.0...v1.3.1) (2024-07-14) ### Bug Fixes diff --git a/package.json b/package.json index 6ca5665f..284fccf3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vitepress", - "version": "1.3.1", + "version": "1.3.2", "description": "Vite & Vue powered static site generator", "keywords": [ "vite", From 3543b02347edea9828a4f76ac5a0c3dca5fe35bc Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Mon, 5 Aug 2024 23:07:12 +0530 Subject: [PATCH 05/45] chore: update changelog wording --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2deb83c2..cdf453e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ### Bug Fixes -- multiple cache busting imports causing useData to fail ([2b3e486](https://github.com/vuejs/vitepress/commit/2b3e486ab913ff77707410b9cee3ba6d256ccc95)), closes [#3820](https://github.com/vuejs/vitepress/issues/3820) [#3398](https://github.com/vuejs/vitepress/issues/3398) [#3363](https://github.com/vuejs/vitepress/issues/3363) +- multiple cache busting imports causing useData to fail ([2b3e486](https://github.com/vuejs/vitepress/commit/2b3e486ab913ff77707410b9cee3ba6d256ccc95)), closes [#3820](https://github.com/vuejs/vitepress/issues/3820), reverts [#3398](https://github.com/vuejs/vitepress/issues/3398), reopens [#3363](https://github.com/vuejs/vitepress/issues/3363) - **theme:** excerpt style in LocalSearchBox ([#4050](https://github.com/vuejs/vitepress/issues/4050)) ([2bc0d39](https://github.com/vuejs/vitepress/commit/2bc0d39d5089841986f0988fc9cfe15533d3a0c6)) ## [1.3.1](https://github.com/vuejs/vitepress/compare/v1.3.0...v1.3.1) (2024-07-14) From 1b679d45288f7ae4abe04b7a35b615b46550f989 Mon Sep 17 00:00:00 2001 From: Bugo Date: Tue, 6 Aug 2024 09:03:05 +0500 Subject: [PATCH 06/45] docs(ru): update translations (#4104) --- docs/ru/guide/deploy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/guide/deploy.md b/docs/ru/guide/deploy.md index 26ca6ee5..11ee0c74 100644 --- a/docs/ru/guide/deploy.md +++ b/docs/ru/guide/deploy.md @@ -198,7 +198,7 @@ Cache-Control: max-age=31536000,immutable ### GitLab Pages {#gitlab-pages} -1. Установите `outDir` в конфигурации VitePress на `../public`. Настройте опцию `base` на `'/<репозиторий>/'`, если вы хотите развернуть ваш проект по адресу на `https://<имя пользователя>.gitlab.io/<репозиторий>/`. +1. Установите значение `../public` для параметра `outDir` в конфигурации VitePress. Настройте опцию `base` на `'/<репозиторий>/'`, если вы хотите развернуть ваш проект по адресу `https://<имя пользователя>.gitlab.io/<репозиторий>/`. Вам не нужна опция `base`, если вы выполняете развёртывание на личном домене, страницах пользователя или группы или если в GitLab включен параметр «Использовать уникальный домен». 2. Создайте файл с именем `.gitlab-ci.yml` в корне вашего проекта с приведённым ниже содержимым. Это позволит создавать и развёртывать ваш сайт каждый раз, когда вы вносите изменения в его содержимое: From 049fd8d0e5c648e89baadbe264dbe977d50f27dc Mon Sep 17 00:00:00 2001 From: Niceplugin Date: Wed, 7 Aug 2024 21:30:45 +0900 Subject: [PATCH 07/45] docs(ko): re-translation of korean documents (#4111) --- docs/.vitepress/config/ko.ts | 24 +-- docs/ko/guide/asset-handling.md | 40 ++-- docs/ko/guide/cms.md | 20 +- docs/ko/guide/custom-theme.md | 88 ++++---- docs/ko/guide/data-loading.md | 93 ++++---- docs/ko/guide/deploy.md | 103 +++++---- docs/ko/guide/extending-default-theme.md | 68 +++--- docs/ko/guide/frontmatter.md | 16 +- docs/ko/guide/getting-started.md | 62 +++--- docs/ko/guide/i18n.md | 29 ++- docs/ko/guide/markdown.md | 210 +++++++++---------- docs/ko/guide/mpa-mode.md | 20 +- docs/ko/guide/routing.md | 152 +++++++------- docs/ko/guide/sitemap-generation.md | 12 +- docs/ko/guide/ssr-compat.md | 22 +- docs/ko/guide/using-vue.md | 72 +++---- docs/ko/guide/what-is-vitepress.md | 38 ++-- docs/ko/index.md | 22 +- docs/ko/reference/default-theme-edit-link.md | 2 +- 19 files changed, 546 insertions(+), 547 deletions(-) diff --git a/docs/.vitepress/config/ko.ts b/docs/.vitepress/config/ko.ts index 44f7b446..004cb9ee 100644 --- a/docs/.vitepress/config/ko.ts +++ b/docs/.vitepress/config/ko.ts @@ -18,7 +18,7 @@ export const ko = defineConfig({ editLink: { pattern: 'https://github.com/vuejs/vitepress/edit/main/docs/:path', - text: 'GitHub에서 이 페이지를 편집하세요' + text: '이 페이지 편집 제안하기' }, footer: { @@ -32,7 +32,7 @@ export const ko = defineConfig({ }, outline: { - label: '이 페이지에서' + label: '이 페이지 목차' }, lastUpdated: { @@ -105,7 +105,7 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] { collapsed: false, items: [ { - text: '마크다운 확장', + text: '마크다운 확장 기능', link: 'markdown' }, { @@ -113,33 +113,33 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] { link: 'asset-handling' }, { - text: '프론트마터', + text: '전문(Front-matter)', link: 'frontmatter' }, { - text: '마크다운에서 Vue 사용', + text: '마크다운에서 Vue 사용하기', link: 'using-vue' }, { - text: '국제화', + text: 'i18n', link: 'i18n' } ] }, { - text: '사용자 정의', + text: '커스텀', collapsed: false, items: [ { - text: '맞춤 테마 사용', + text: '커스텀 테마 사용하기', link: 'custom-theme' }, { - text: '기본 테마 확장', + text: '기본 테마 확장하기', link: 'extending-default-theme' }, { - text: '빌드할 때 데이터 로딩', + text: '빌드할 때 데이터 로딩하기', link: 'data-loading' }, { @@ -147,7 +147,7 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] { link: 'ssr-compat' }, { - text: 'CMS 연결', + text: 'CMS 연결하기', link: 'cms' } ] @@ -167,7 +167,7 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] { ] }, { - text: '설정 & API 참조', + text: '구성 & API 레퍼런스', base: '/ko/reference/', link: 'site-config' } diff --git a/docs/ko/guide/asset-handling.md b/docs/ko/guide/asset-handling.md index 0054397c..5f6a35d1 100644 --- a/docs/ko/guide/asset-handling.md +++ b/docs/ko/guide/asset-handling.md @@ -1,54 +1,54 @@ -# 자산 처리 {#asset-handling} +# 에셋 핸들링 {#asset-handling} -## 정적 자산 참조하기 {#referencing-static-assets} +## 정적 에셋 참조하기 {#referencing-static-assets} -모든 Markdown 파일은 Vue 컴포넌트로 컴파일되며 [Vite](https://vitejs.dev/ko/guide/assets.html)에 의해 처리됩니다. 상대 URL을 사용하여 어떠한 자산도 참조할 수 **있으며 해야 합니다**: +모든 마크다운 파일은 Vue 컴포넌트로 컴파일되어 [Vite](https://vitejs.dev/guide/assets.html)에 의해 처리됩니다. 모든 에셋은 상대 URL을 사용하여 참조할 수 있으며, **참조해야 합니다**: ```md ![이미지](./image.png) ``` -Markdown 파일, 테마의 `*.vue` 컴포넌트, 스타일 및 일반 `.css` 파일에서 정적 자산을 참조할 수 있으며, 절대 공개 경로(프로젝트 루트를 기준으로 함) 또는 상대 경로(파일 시스템을 기준으로 함)를 사용할 수 있습니다. 후자는 Vite, Vue CLI 또는 webpack의 `file-loader`를 사용해 본 적이 있다면 익숙한 동작 방식과 유사합니다. +마크다운 파일에서 정적 에셋을 참조할 수 있으며, 테마 내의 `*.vue` 컴포넌트, 스타일 및 일반 `.css` 파일을 절대 경로(프로젝트 루트를 기준으로) 또는 상대 경로(파일 시스템을 기준으로)를 사용하여 참조할 수 있습니다. 후자는 Vite, Vue CLI 또는 webpack의 `file-loader` 동작과 유사합니다. -일반적인 이미지, 미디어, 폰트 파일 유형은 자동으로 자산으로 감지되어 포함됩니다. +일반적인 이미지, 미디어 및 글꼴 파일 형식은 자동으로 에셋으로 감지되어 포함됩니다. -::: tip 링크된 파일은 자산으로 취급되지 않음 -Markdown 파일 내의 링크로 참조된 PDF 또는 기타 문서는 자동으로 자산으로 취급되지 않습니다. 링크된 파일을 접근 가능하게 만들기 위해서는 수동으로 해당 파일을 프로젝트의 [`public`](#the-public-directory) 디렉토리에 배치해야 합니다. +::: tip 링크를 통해 참조된 파일은 에셋으로 처리되지 않습니다 +마크다운 파일 내에서 링크로 참조된 PDF 또는 기타 문서는 자동으로 에셋으로 처리되지 않습니다. 링크된 파일을 접근 가능하게 하려면 프로젝트의 [`public`](#the-public-directory) 디렉토리에 수동으로 배치해야 합니다. ::: -절대 경로를 포함한 모든 참조된 자산은 생산 빌드에서 해시된 파일 이름으로 출력 디렉토리에 복사됩니다. 참조되지 않은 자산은 복사되지 않습니다. 4kb보다 작은 이미지 자산은 base64 인라인으로 처리됩니다 - 이는 [`vite`](../reference/site-config#vite) 구성 옵션을 통해 설정할 수 있습니다. +절대 경로를 사용하는 에셋을 포함하여 모든 참조된 에셋은 프로덕션 빌드에서 해시된 파일 이름으로 출력 디렉토리에 복사됩니다. 참조되지 않은 에셋은 복사되지 않습니다. 4kb보다 작은 이미지 에셋은 base64로 인라인됩니다. 이는 [`vite`](../reference/site-config#vite) 구성 옵션을 통해 구성할 수 있습니다. -모든 **정적** 경로 참조, 절대 경로를 포함하여, 작업 디렉토리 구조를 기반으로 해야 합니다. +모든 **정적** 경로 참조는 절대 경로를 포함하여 작업 디렉토리 구조를 기반으로 해야 합니다. -## Public 디렉토리 {#the-public-directory} +## Public 디렉터리 {#the-public-directory} -Markdown이나 테마 컴포넌트에서 직접 참조되지 않은 정적 자산을 제공할 필요가 있거나, 특정 파일을 원본 파일명으로 제공하고 싶은 경우가 있을 수 있습니다. 이러한 파일의 예로는 `robots.txt`, 파비콘, PWA 아이콘이 있습니다. +때때로 마크다운이나 테마 컴포넌트에서 직접 참조되지 않는 정적 에셋을 제공해야 하거나 특정 파일을 원래 파일 이름으로 제공하고 싶을 때가 있습니다. 이러한 파일의 예로는 `robots.txt`, 파비콘, PWA 아이콘 등이 있습니다. -이 파일들은 [소스 디렉토리](./routing#source-directory) 아래의 `public` 디렉토리에 배치할 수 있습니다. 예를 들어, 프로젝트 루트가 `./docs`이고 기본 소스 디렉토리 위치를 사용한다면, public 디렉토리는 `./docs/public`이 됩니다. +이 파일들은 [소스 디렉토리](./routing#source-directory) 아래의 `public` 디렉토리에 놓을 수 있습니다. 예를 들어 프로젝트 루트가 `./docs`이고 기본 소스 디렉토리 위치를 사용 중인 경우, `public` 디렉토리는 `./docs/public`이 됩니다. -`public`에 배치된 자산은 그대로 출력 디렉토리의 루트로 복사됩니다. +`public`에 배치된 에셋은 출력 디렉토리의 루트로 그대로 복사됩니다. -`public`에 배치된 파일을 참조할 때는 루트 절대 경로를 사용해야 한다는 점에 유의하세요 - 예를 들어, `public/icon.png`는 소스 코드에서 항상 `/icon.png`로 참조되어야 합니다. +`public`에 배치된 파일은 루트 절대 경로를 사용하여 참조해야 한다는 점에 유의하세요. 예를 들어, `public/icon.png`는 소스 코드에서 항상 `/icon.png`로 참조되어야 합니다. -## 기본 URL {#base-url} +## Base URL {#base-url} -사이트가 루트 URL이 아닌 곳에 배포되는 경우, `.vitepress/config.js`에서 `base` 옵션을 설정해야 합니다. 예를 들어, 사이트를 `https://foo.github.io/bar/`에 배포할 계획이라면, `base`는 `'/bar/'`(항상 슬래시로 시작하고 끝나야 함)로 설정해야 합니다. +사이트가 루트 URL이 아닌 곳에 배포된 경우, `.vitepress/config.js`에서 `base` 옵션을 설정해야 합니다. 예를 들어, 사이트를 `https://foo.github.io/bar/`에 배포하려는 경우 `base`는 `'/bar/'`로 설정해야 합니다(항상 슬래시로 시작하고 끝나야 합니다). -모든 정적 자산 경로는 다양한 `base` 구성 값에 맞게 자동으로 처리됩니다. 예를 들어, 마크다운에서 `public` 아래에 있는 자산에 대한 절대 참조가 있는 경우: +모든 정적 에셋 경로는 다른 `base` 구성 값에 맞게 자동으로 처리됩니다. 예를 들어, 마크다운에서 `public` 하위의 에셋에 대한 절대 참조가 있는 경우: ```md ![이미지](/image-inside-public.png) ``` -이 경우 `base` 구성 값을 변경하더라도 업데이트할 필요가 **없습니다**. +이 경우 `base` 구성 값을 변경할 때 **업데이트할 필요가 없습니다**. -그러나 자산을 동적으로 연결하는 테마 컴포넌트를 작성하는 경우, 예를 들어 테마 구성 값에 기반한 이미지의 `src`가 있는 경우: +그러나 테마 구성 값을 기반으로 `src`가 설정된 이미지와 같이 동적으로 에셋에 링크하는 테마 컴포넌트를 작성하는 경우: ```vue ``` -이 경우 VitePress에 제공되는 [`withBase` 헬퍼](../reference/runtime-api#withbase)로 경로를 래핑하는 것이 권장됩니다: +이 경우 VitePress에서 제공하는 [`withBase` 헬퍼](../reference/runtime-api#withbase)로 경로를 감싸는 것이 좋습니다: ```vue ``` -[`useData()`](../reference/runtime-api#usedata) 헬퍼는 우리가 필요로 하는 모든 런타임 데이터를 제공하여, 다른 레이아웃을 조건부로 렌더링할 수 있습니다. 우리가 접근할 수 있는 또 다른 데이터는 현재 페이지의 프론트매터입니다. 이를 활용하여 사용자가 각 페이지의 레이아웃을 제어할 수 있도록 합니다. 예를 들어, 사용자는 특별한 홈페이지 레이아웃을 사용해야 한다고 지정할 수 있습니다: +[`useData()`](../reference/runtime-api#usedata) 헬퍼는 다양한 레이아웃을 조건부로 렌더링하는 데 필요한 모든 런타임 데이터를 제공합니다. 접근할 수 있는 다른 데이터 중 하나는 현재 페이지의 전문(front-matter)입니다. 이를 활용하여 각 페이지에 맞게 레이아웃을 제어할 수 있습니다. 예를 들어 특정 페이지에서 홈 페이지 레이아웃을 사용하도록 지정할 수 있습니다: ```md --- @@ -108,7 +108,7 @@ layout: home --- ``` -그리고 우리는 이를 처리하기 위해 테마를 조정할 수 있습니다: +그리고 이를 처리하도록 테마를 조정할 수 있습니다: ```vue{3,12-14} ``` -물론, 레이아웃을 더 많은 컴포넌트로 나눌 수 있습니다: +물론 레이아웃을 더 많은 컴포넌트로 나눌 수 있습니다: ```vue{3-5,12-15} ``` -테마 컴포넌트에서 사용할 수 있는 모든 것에 대한 [런타임 API 참조](../reference/runtime-api)를 참조하세요. 또한, [빌드할 때 데이터 로딩](./data-loading)을 활용하여 데이터 기반 레이아웃을 생성할 수 있습니다 - 예를 들어, 현재 프로젝트 내 모든 블로그 포스트를 나열하는 페이지 등. +테마 컴포넌트에서 사용할 수 있는 모든 항목에 대해서는 [런타임 API 레퍼런스](../reference/runtime-api)를 참고하세요. 또한 [빌드할 때 데이터 로딩하기](./data-loading)를 활용하여 데이터 기반의 레이아웃을 생성할 수 있습니다. 예를 들어 현재 프로젝트의 모든 블로그 게시물을 나열하는 페이지를 만들 수 있습니다. ## 사용자 정의 테마 배포하기 {#distributing-a-custom-theme} -사용자 정의 테마를 배포하는 가장 쉬운 방법은 [GitHub에서 템플릿 저장소로 제공하는 것입니다](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). +커스텀 테마를 배포하는 가장 쉬운 방법은 [GitHub 템플릿 리포지토리](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository)로 제공하는 것입니다. -npm 패키지로 테마를 배포하려면 다음 단계를 따르세요: +테마를 npm 패키지로 배포하려면 다음 단계를 따라야 합니다: -1. 패키지 엔트리에서 테마 객체를 기본 내보내기로 내보냅니다. +1. 패키지 엔트리에서 테마 객체를 "export default" 합니다. -2. 적용된다면, 테마 설정 타입 정의를 `ThemeConfig`로 내보냅니다. +2. 해당되는 경우, 테마 구성 타입 정의를 `ThemeConfig`로 "export" 합니다. -3. 테마가 VitePress 설정을 조정해야 하는 경우, 사용자가 확장할 수 있도록 패키지 하위 경로(예: `my-theme/config`)에 해당 설정을 내보냅니다. +3. 테마에서 VitePress 구성을 조정해야 하는 경우, 사용자가 확장할 수 있도록 패키지 하위 경로(예: `my-theme/config`)에 해당 구성을 "export" 합니다. -4. 설정 파일 및 프론트매터를 통한 테마 설정 옵션을 문서화합니다. +4. 테마 구성 옵션을 문서화합니다 (구성 파일과 전문 둘 다). -5. 테마를 소비하는 방법에 대한 명확한 지침을 제공합니다(아래 참조). +5. 테마를 사용하는 방법에 대한 명확한 지침을 제공합니다 (아래 참조). -## 사용자 정의 테마 소비하기 {#consuming-a-custom-theme} +## 커스텀 테마 사용하기 {#consuming-a-custom-theme} -외부 테마를 소비하려면 사용자 정의 테마 엔트리에서 가져와서 다시 내보냅니다: +외부 테마를 사용하려면, 커스텀 테마 엔트리에서 테마를 "import" 후 다시 "export"합니다: ```js // .vitepress/theme/index.js @@ -193,19 +193,19 @@ export default { } ``` -테마가 특별한 VitePress 설정을 요구하는 경우, 자신의 설정에서도 그 설정을 확장해야 합니다: +테마가 특별한 VitePress 구성을 요구하는 경우, 해당 구성을 (외부 커스텀 테마를 사용하는 자신의) 구성 파일에서도 확장해야 합니다: ```ts // .vitepress/config.ts import baseConfig from 'awesome-vitepress-theme/config' export default { - // 필요한 경우 테마 기본 설정 확장 + // 필요한 경우 테마 기본 구성 확장 extends: baseConfig } ``` -마지막으로, 테마가 테마 설정에 대한 타입을 제공하는 경우: +마지막으로 테마가 테마 구성에 대한 타입을 제공하는 경우: ```ts // .vitepress/config.ts diff --git a/docs/ko/guide/data-loading.md b/docs/ko/guide/data-loading.md index fb61c48f..c95b57be 100644 --- a/docs/ko/guide/data-loading.md +++ b/docs/ko/guide/data-loading.md @@ -1,12 +1,12 @@ -# 빌드할 때 데이터 로딩 {#build-time-data-loading} +# 빌드할 때 데이터 로딩하기 {#build-time-data-loading} -VitePress는 **데이터 로더**라고 불리는 기능을 제공하여 임의의 데이터를 로드하고 페이지나 컴포넌트에서 가져올 수 있습니다. 데이터 로딩은 **빌드 시간에만 실행**됩니다: 결과적으로 생성된 데이터는 최종 자바스크립트 번들에 JSON으로 직렬화됩니다. +VitePress는 페이지나 컴포넌트에서 임의의 데이터를 로드하고 이를 가져올 수 있는 **데이터 로더** 기능을 제공합니다. 데이터 로딩은 **빌드할 때에만** 실행되며, 결과적으로 생성된 데이터는 최종 JavaScript 번들에 JSON으로 직렬화됩니다. -데이터 로더는 원격 데이터를 가져오거나 로컬 파일을 기반으로 메타데이터를 생성하는 데 사용할 수 있습니다. 예를 들어, 모든 로컬 API 페이지를 파싱하고 모든 API 항목의 색인을 자동으로 생성하기 위해 데이터 로더를 사용할 수 있습니다. +데이터 로더는 원격 데이터를 가져오거나 로컬 파일을 기반으로 메타데이터를 생성하는 데 사용할 수 있습니다. 예를 들어, 데이터 로더를 사용하여 모든 로컬 API 페이지를 파싱하고 모든 API 항목의 색인을 자동으로 생성할 수 있습니다. ## 기본 사용법 {#basic-usage} -데이터 로더 파일은 `.data.js` 또는 `.data.ts`로 끝나야 합니다. 이 파일은 `load()` 메서드를 가진 객체를 기본 내보내기해야 합니다: +데이터 로더 파일은 반드시 `.data.js` 또는 `.data.ts`로 끝나야 합니다. 이 파일은 `load()` 메서드를 가진 객체를 "export default" 해야 합니다: ```js // example.data.js @@ -19,9 +19,9 @@ export default { } ``` -로더 모듈은 Node.js에서만 평가되므로, 필요에 따라 Node API와 npm 종속성을 가져올 수 있습니다. +로더 모듈은 Node.js에서만 평가되므로, 필요한 경우 Node API와 npm 종속성을 "import" 할 수 있습니다. -이 파일에서 데이터를 `.md` 페이지와 `.vue` 컴포넌트에서 `data`라는 이름으로 내보낼 수 있습니다: +그런 다음 `.md` 페이지와 `.vue` 컴포넌트에서 `data`라는 이름으로 "export" 한 데이터를 이 파일에서 "import" 할 수 있습니다: ```vue