From 183261753b04c2c96ddb8c10e520c748c6d3e613 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:33:01 +0530 Subject: [PATCH 1/3] fix(theme): ignore footnote-ref for outline closes #4402 --- src/client/theme-default/composables/outline.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/client/theme-default/composables/outline.ts b/src/client/theme-default/composables/outline.ts index a3f561d0..857fb141 100644 --- a/src/client/theme-default/composables/outline.ts +++ b/src/client/theme-default/composables/outline.ts @@ -48,6 +48,7 @@ function serializeHeader(h: Element): string { if ( (node as Element).classList.contains('VPBadge') || (node as Element).classList.contains('header-anchor') || + (node as Element).classList.contains('footnote-ref') || (node as Element).classList.contains('ignore-header') ) { continue From 18858f7dece44a0f0e554361de8cff34dfeb2816 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Thu, 5 Dec 2024 15:23:30 +0530 Subject: [PATCH 2/3] chore: simplify code --- src/client/theme-default/composables/outline.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/client/theme-default/composables/outline.ts b/src/client/theme-default/composables/outline.ts index 857fb141..74e72a0f 100644 --- a/src/client/theme-default/composables/outline.ts +++ b/src/client/theme-default/composables/outline.ts @@ -5,6 +5,8 @@ import type { Header } from '../../shared' import { throttleAndDebounce } from '../support/utils' import { useAside } from './aside' +const ignoreRE = /\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/ + // cached list of anchor elements from resolveHeaders const resolvedHeaders: { element: HTMLHeadElement; link: string }[] = [] @@ -45,14 +47,7 @@ function serializeHeader(h: Element): string { let ret = '' for (const node of h.childNodes) { if (node.nodeType === 1) { - if ( - (node as Element).classList.contains('VPBadge') || - (node as Element).classList.contains('header-anchor') || - (node as Element).classList.contains('footnote-ref') || - (node as Element).classList.contains('ignore-header') - ) { - continue - } + if (ignoreRE.test((node as Element).className)) continue ret += node.textContent } else if (node.nodeType === 3) { ret += node.textContent From ff254dcbe6f2bcc89c34d2d2f4050229dc094400 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Fri, 6 Dec 2024 23:22:33 +0530 Subject: [PATCH 3/3] feat(theme): allow customizing skip to content label closes #4288 --- docs/.vitepress/config/es.ts | 3 ++- docs/.vitepress/config/ko.ts | 3 ++- docs/.vitepress/config/pt.ts | 3 ++- docs/.vitepress/config/ru.ts | 3 ++- docs/.vitepress/config/zh.ts | 3 ++- docs/en/reference/default-theme-config.md | 7 +++++++ src/client/theme-default/components/VPSkipLink.vue | 4 +++- types/default-theme.d.ts | 5 +++++ 8 files changed, 25 insertions(+), 6 deletions(-) diff --git a/docs/.vitepress/config/es.ts b/docs/.vitepress/config/es.ts index d924c5b8..d30fc89f 100644 --- a/docs/.vitepress/config/es.ts +++ b/docs/.vitepress/config/es.ts @@ -48,7 +48,8 @@ export const es = defineConfig({ sidebarMenuLabel: 'Menu Lateral', darkModeSwitchLabel: 'Tema Oscuro', lightModeSwitchTitle: 'Cambiar a modo claro', - darkModeSwitchTitle: 'Cambiar a modo oscuro' + darkModeSwitchTitle: 'Cambiar a modo oscuro', + skipToContentLabel: 'Saltar al contenido' } }) diff --git a/docs/.vitepress/config/ko.ts b/docs/.vitepress/config/ko.ts index 906669d3..faebabf4 100644 --- a/docs/.vitepress/config/ko.ts +++ b/docs/.vitepress/config/ko.ts @@ -44,7 +44,8 @@ export const ko = defineConfig({ sidebarMenuLabel: '사이드바 메뉴', darkModeSwitchLabel: '다크 모드', lightModeSwitchTitle: '라이트 모드로 변경', - darkModeSwitchTitle: '다크 모드로 변경' + darkModeSwitchTitle: '다크 모드로 변경', + skipToContentLabel: '본문으로 건너뛰기' } }) diff --git a/docs/.vitepress/config/pt.ts b/docs/.vitepress/config/pt.ts index f8ce02a1..12cb52fa 100644 --- a/docs/.vitepress/config/pt.ts +++ b/docs/.vitepress/config/pt.ts @@ -48,7 +48,8 @@ export const pt = defineConfig({ sidebarMenuLabel: 'Menu Lateral', darkModeSwitchLabel: 'Tema Escuro', lightModeSwitchTitle: 'Mudar para Modo Claro', - darkModeSwitchTitle: 'Mudar para Modo Escuro' + darkModeSwitchTitle: 'Mudar para Modo Escuro', + skipToContentLabel: 'Pular para o Conteúdo' } }) diff --git a/docs/.vitepress/config/ru.ts b/docs/.vitepress/config/ru.ts index 739261a3..b75b1b77 100644 --- a/docs/.vitepress/config/ru.ts +++ b/docs/.vitepress/config/ru.ts @@ -42,7 +42,8 @@ export const ru = defineConfig({ darkModeSwitchTitle: 'Переключить на тёмную тему', sidebarMenuLabel: 'Меню', returnToTopLabel: 'Вернуться к началу', - langMenuLabel: 'Изменить язык' + langMenuLabel: 'Изменить язык', + skipToContentLabel: 'Перейти к содержимому' } }) diff --git a/docs/.vitepress/config/zh.ts b/docs/.vitepress/config/zh.ts index b7463980..e9d5fbcd 100644 --- a/docs/.vitepress/config/zh.ts +++ b/docs/.vitepress/config/zh.ts @@ -48,7 +48,8 @@ export const zh = defineConfig({ sidebarMenuLabel: '菜单', darkModeSwitchLabel: '主题', lightModeSwitchTitle: '切换到浅色模式', - darkModeSwitchTitle: '切换到深色模式' + darkModeSwitchTitle: '切换到深色模式', + skipToContentLabel: '跳转到内容' } }) diff --git a/docs/en/reference/default-theme-config.md b/docs/en/reference/default-theme-config.md index 90232aea..c8afc554 100644 --- a/docs/en/reference/default-theme-config.md +++ b/docs/en/reference/default-theme-config.md @@ -444,6 +444,13 @@ Can be used to customize the label of the return to top button. This label is on Can be used to customize the aria-label of the language toggle button in navbar. This is only used if you're using [i18n](../guide/i18n). +## skipToContentLabel + +- Type: `string` +- Default: `Skip to content` + +Can be used to customize the label of the skip to content link. This link is shown when the user is navigating the site using a keyboard. + ## externalLinkIcon - Type: `boolean` diff --git a/src/client/theme-default/components/VPSkipLink.vue b/src/client/theme-default/components/VPSkipLink.vue index 4159e64e..ad56622d 100644 --- a/src/client/theme-default/components/VPSkipLink.vue +++ b/src/client/theme-default/components/VPSkipLink.vue @@ -1,7 +1,9 @@