docs(ru): update translations (#5152)

pull/5144/merge
Bugo 6 months ago committed by GitHub
parent e2430d1331
commit 6dd3632960
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -85,12 +85,10 @@ src/getting-started.md --> /getting-started.html
```md
<!-- Будут работать -->
[Первые шаги](./getting-started)
[Первые шаги](../guide/getting-started)
<!-- Не будут работать -->
[Первые шаги](./getting-started.md)
[Первые шаги](./getting-started.html)
```
@ -201,8 +199,6 @@ export default {
}
```
Пути перезаписи компилируются с помощью пакета `path-to-regexp` — обратитесь к [его документации](https://github.com/pillarjs/path-to-regexp#parameters) за более сложным синтаксисом.
Пути перезаписи компилируются с помощью пакета `path-to-regexp` — обратитесь к [его документации](https://github.com/pillarjs/path-to-regexp/tree/6.x#parameters) за более сложным синтаксисом.
`rewrites` также может быть функцией, которая получает исходный путь и возвращает новый:
@ -222,7 +218,6 @@ export default {
```md
[Ссылка на PKG B](../pkg-b/pkg-b-code)
```
:::
## Динамические маршруты {#dynamic-routes}
@ -248,7 +243,10 @@ export default {
// packages/[pkg].paths.js
export default {
paths() {
return [{ params: { pkg: 'foo' } }, { params: { pkg: 'bar' } }]
return [
{ params: { pkg: 'foo' }},
{ params: { pkg: 'bar' }}
]
}
}
```
@ -262,6 +260,30 @@ export default {
└─ bar.html
```
### Типобезопасный загрузчик с `defineRoutes` {#type-safe-loader-with-defineroutes}
Если вы используете TypeScript, вы можете обернуть загрузчик функцией `defineRoutes` из `vitepress`, чтобы получить подсказки типов для хуков маршрутов, таких как `paths`, `watch` и `transformPageData`:
```ts
// packages/[pkg].paths.ts
import { defineRoutes } from 'vitepress'
export default defineRoutes({
watch: ['../data/**/*.json'],
async paths() {
return [
{ params: { pkg: 'foo' } },
{ params: { pkg: 'bar' } }
]
},
async transformPageData(pageData) {
pageData.title = `${pageData.title} · Packages`
}
})
```
`defineRoutes` является необязательной, но рекомендуется при создании файлов `.paths.ts`.
### Несколько параметров {#multiple-params}
Динамический маршрут может содержать несколько параметров:
@ -310,9 +332,11 @@ import fs from 'fs'
export default {
paths() {
return fs.readdirSync('packages').map((pkg) => {
return { params: { pkg } }
})
return fs
.readdirSync('packages')
.map((pkg) => {
return { params: { pkg }}
})
}
}
```
@ -336,6 +360,46 @@ export default {
}
```
### Отслеживание файлов шаблонов и данных {#watching-template-and-data-files}
При создании содержимого страниц на основе шаблонов или внешних источников данных вы можете использовать опцию `watch` для автоматической пересборки страниц при изменении этих файлов в процессе разработки:
```js
// posts/[slug].paths.js
import fs from 'node:fs'
import { renderTemplate } from './templates/renderer.js'
export default {
// Отслеживание изменений в файлах шаблонов и источниках данных
watch: [
'./templates/**/*.njk', // Файлы шаблонов
'../data/**/*.json' // Файлы данных
],
paths(watchedFiles) {
// watchedFiles будет массивом абсолютных путей найденных файлов
// Чтение файлов данных для генерации маршрутов
const dataFiles = watchedFiles.filter(file => file.endsWith('.json'))
return dataFiles.map(file => {
const data = JSON.parse(fs.readFileSync(file, 'utf-8'))
return {
params: { slug: data.slug },
content: renderTemplate(data) // Использование шаблона для генерации контента
}
})
}
}
```
Опция `watch` работает так же, как и в [загрузчиках данных](./data-loading#data-from-local-files):
- Принимает [glob-шаблоны](https://github.com/mrmlnc/fast-glob#pattern-syntax) для сопоставления файлов
- Шаблоны указываются относительно самого файла `.paths.js`
- Изменения в отслеживаемых файлах вызывают перегенерацию страниц и HMR во время разработки
- В продакшен-сборках все страницы генерируются один раз, независимо от конфигурации `watch`
### Доступ к параметрам на странице {#accessing-params-in-page}
Вы можете использовать параметры для передачи дополнительных данных на каждую страницу. Файл маршрута Markdown может получить доступ к параметрам текущей страницы в выражениях Vue через глобальное свойство `$params`:

@ -17,7 +17,7 @@ interface VitePressData<T = any> {
*/
site: Ref<SiteData<T>>
/**
* themeConfig from .vitepress/config.js
* themeConfig из .vitepress/config.js
*/
theme: Ref<T>
/**
@ -38,6 +38,10 @@ interface VitePressData<T = any> {
isDark: Ref<boolean>
dir: Ref<string>
localeIndex: Ref<string>
/**
* Текущий хеш адреса
*/
hash: Ref<string>
}
interface PageData {
@ -103,6 +107,10 @@ interface Router {
* обновлено). Верните `false`, чтобы отменить навигацию.
*/
onBeforePageLoad?: (to: string) => Awaitable<void | boolean>
/**
* Вызывается после загрузки компонента страницы (перед обновлением компонента страницы).
*/
onAfterPageLoad?: (to: string) => Awaitable<void>
/**
* Вызывается после изменения маршрута.
*/

Loading…
Cancel
Save