Skip to content

Commit b5dfa18

Browse files
authored
Merge branch 'main' into feat/hierarchical-theme-config
2 parents bd80a64 + 27c4151 commit b5dfa18

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+995
-1229
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
strategy:
1919
matrix:
2020
os: [ubuntu-latest]
21-
node_version: [18, 20, 22]
21+
node_version: [20, 22, latest]
2222
include:
2323
- os: windows-latest
2424
node_version: 22

__tests__/e2e/.vitepress/theme/components/ApiPreference.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function removeSpaces(str: string) {
3030
<input
3131
type="radio"
3232
:id="option.key"
33-
:name="name"
33+
:name
3434
:value="option.value"
3535
v-model="selected"
3636
/>

docs/en/guide/deploy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Set up a new project and change these settings using your dashboard:
111111

112112
- **Build Command:** `npm run docs:build`
113113
- **Output Directory:** `docs/.vitepress/dist`
114-
- **Node Version:** `18` (or above)
114+
- **Node Version:** `20` (or above)
115115

116116
::: warning
117117
Don't enable options like _Auto Minify_ for HTML code. It will remove comments from output which have meaning to Vue. You may see hydration mismatch errors if they get removed.
@@ -163,7 +163,7 @@ Don't enable options like _Auto Minify_ for HTML code. It will remove comments f
163163
- name: Setup Node
164164
uses: actions/setup-node@v4
165165
with:
166-
node-version: 20
166+
node-version: 22
167167
cache: npm # or pnpm / yarn
168168
- name: Setup Pages
169169
uses: actions/configure-pages@v4

docs/en/reference/default-theme-config.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,3 +457,38 @@ Can be used to customize the label of the skip to content link. This link is sho
457457
- Default: `false`
458458

459459
Whether to show an external link icon next to external links in markdown.
460+
461+
## `useLayout` <Badge type="info" text="composable" />
462+
463+
Returns layout-related data. The returned object has the following type:
464+
465+
```ts
466+
interface {
467+
isHome: ComputedRef<boolean>
468+
469+
sidebar: ComputedRef<DefaultTheme.SidebarItem[]>
470+
sidebarGroups: ComputedRef<DefaultTheme.SidebarItem[]>
471+
hasSidebar: ComputedRef<boolean>
472+
isSidebarEnabled: ComputedRef<boolean>
473+
474+
hasAside: ComputedRef<boolean>
475+
leftAside: ComputedRef<boolean>
476+
477+
headers: ShallowRef<DefaultTheme.OutlineItem[]>
478+
hasLocalNav: ComputedRef<boolean>
479+
}
480+
```
481+
482+
**Example:**
483+
484+
```vue
485+
<script setup>
486+
import { useLayout } from 'vitepress/theme'
487+
488+
const { hasSidebar } = useLayout()
489+
</script>
490+
491+
<template>
492+
<div v-if="hasSidebar">Only show when sidebar exists</div>
493+
</template>
494+
```

docs/en/reference/default-theme-sidebar.md

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -180,36 +180,3 @@ export default {
180180
}
181181
}
182182
```
183-
184-
## `useSidebar` <Badge type="info" text="composable" />
185-
186-
Returns sidebar-related data. The returned object has the following type:
187-
188-
```ts
189-
export interface DocSidebar {
190-
isOpen: Ref<boolean>
191-
sidebar: ComputedRef<DefaultTheme.SidebarItem[]>
192-
sidebarGroups: ComputedRef<DefaultTheme.SidebarItem[]>
193-
hasSidebar: ComputedRef<boolean>
194-
hasAside: ComputedRef<boolean>
195-
leftAside: ComputedRef<boolean>
196-
isSidebarEnabled: ComputedRef<boolean>
197-
open: () => void
198-
close: () => void
199-
toggle: () => void
200-
}
201-
```
202-
203-
**Example:**
204-
205-
```vue
206-
<script setup>
207-
import { useSidebar } from 'vitepress/theme'
208-
209-
const { hasSidebar } = useSidebar()
210-
</script>
211-
212-
<template>
213-
<div v-if="hasSidebar">Only show when sidebar exists</div>
214-
</template>
215-
```

docs/en/reference/default-theme-team-page.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ const members = [
5353

5454
Say hello to our awesome team.
5555

56-
<VPTeamMembers size="small" :members="members" />
56+
<VPTeamMembers size="small" :members />
5757
```
5858

5959
The above will display a team member in card looking element. It should display something similar to below.
6060

61-
<VPTeamMembers size="small" :members="members" />
61+
<VPTeamMembers size="small" :members />
6262

6363
`<VPTeamMembers>` component comes in 2 different sizes, `small` and `medium`. While it boils down to your preference, usually `small` size should fit better when used in doc page. Also, you may add more properties to each member such as adding "description" or "sponsor" button. Learn more about it in [`<VPTeamMembers>`](#vpteammembers).
6464

@@ -107,9 +107,7 @@ const members = [
107107
team, some of whom have chosen to be featured below.
108108
</template>
109109
</VPTeamPageTitle>
110-
<VPTeamMembers
111-
:members="members"
112-
/>
110+
<VPTeamMembers :members />
113111
</VPTeamPage>
114112
```
115113

docs/en/reference/frontmatter-config.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,16 @@ Then you can customize styles of this specific page in `.vitepress/theme/custom.
225225
/* page-specific styles */
226226
}
227227
```
228+
229+
### isHome
230+
231+
- Type: `boolean`
232+
233+
The default theme relies on checks like `frontmatter.layout === 'home'` to determine if the current page is the home page.\
234+
This is useful when you want to force show the home page elements in a custom layout.
235+
236+
```yaml
237+
---
238+
isHome: true
239+
---
240+
```

docs/es/guide/deploy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ No active opciones como _Auto Minify_ para código HTML. Eso removera comentario
163163
- name: Setup Node
164164
uses: actions/setup-node@v4
165165
with:
166-
node-version: 20
166+
node-version: 22
167167
cache: npm # o pnpm / yarn
168168
- name: Setup Pages
169169
uses: actions/configure-pages@v4

docs/es/reference/default-theme-sidebar.md

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -181,36 +181,3 @@ export default {
181181
}
182182
}
183183
```
184-
185-
## `useSidebar` <Badge type="info" text="composable" />
186-
187-
Devuelve datos relacionados con la barra lateral. El objeto devuelto tiene el siguiente tipo:
188-
189-
```ts
190-
export interface DocSidebar {
191-
isOpen: Ref<boolean>
192-
sidebar: ComputedRef<DefaultTheme.SidebarItem[]>
193-
sidebarGroups: ComputedRef<DefaultTheme.SidebarItem[]>
194-
hasSidebar: ComputedRef<boolean>
195-
hasAside: ComputedRef<boolean>
196-
leftAside: ComputedRef<boolean>
197-
isSidebarEnabled: ComputedRef<boolean>
198-
open: () => void
199-
close: () => void
200-
toggle: () => void
201-
}
202-
```
203-
204-
**Exemplo:**
205-
206-
```vue
207-
<script setup>
208-
import { useSidebar } from 'vitepress/theme'
209-
210-
const { hasSidebar } = useSidebar()
211-
</script>
212-
213-
<template>
214-
<div v-if="hasSidebar">Sólo visible cuando existe la barra lateral</div>
215-
</template>
216-
```

docs/es/reference/default-theme-team-page.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ const members = [
5353

5454
Saluda a nuestro increible equipo.
5555

56-
<VPTeamMembers size="small" :members="members" />
56+
<VPTeamMembers size="small" :members />
5757
```
5858

5959
El código anterior mostrará a un miembro del equipo en un elemento similar a una tarjeta. Debería mostrar algo similar a lo siguiente.
6060

61-
<VPTeamMembers size="small" :members="members" />
61+
<VPTeamMembers size="small" :members />
6262

6363
El componente `<VPTeamMembers>` viene en dos tamaños diferentes, pequeño `small` y médio `medium`. Si bien es una cuestión de preferencia, generalmente el tamaño `small` debería encajar mejor cuando se use en la página del documento. Además, puede agregar más propiedades a cada miembro, como agregar el botón "descripción" o "patrocinador". Obtenga más información sobre en [`<VPTeamMembers>`](#vpteammembers).
6464

@@ -107,9 +107,7 @@ const members = [
107107
Algunos de los miembros han elegido aparecer a continuación.
108108
</template>
109109
</VPTeamPageTitle>
110-
<VPTeamMembers
111-
:members="members"
112-
/>
110+
<VPTeamMembers :members />
113111
</VPTeamPage>
114112
```
115113

0 commit comments

Comments
 (0)