From 675ffae7702375872e71da00f9f07c87def75820 Mon Sep 17 00:00:00 2001 From: Elecmonkey Date: Tue, 21 Oct 2025 00:45:58 +0800 Subject: [PATCH 1/2] fix: prevent all Twoslash poppers from showing by default on load --- packages/client/composables/useNav.ts | 3 ++ packages/slidev/node/options.ts | 1 + .../syntax/markdown-it/markdown-it-shiki.ts | 3 ++ .../syntax/transform/twoslash-conditional.ts | 33 +++++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 packages/slidev/node/syntax/transform/twoslash-conditional.ts diff --git a/packages/client/composables/useNav.ts b/packages/client/composables/useNav.ts index e1500c42a4..f227a97c5a 100644 --- a/packages/client/composables/useNav.ts +++ b/packages/client/composables/useNav.ts @@ -5,6 +5,7 @@ import { slides } from '#slidev/slides' import { clamp } from '@antfu/utils' import { parseRangeString } from '@slidev/parser/utils' import { createSharedComposable } from '@vueuse/core' +import { hideAllPoppers } from 'floating-vue' import { computed, ref, watch } from 'vue' import { useRoute, useRouter } from 'vue-router' import { CLICKS_MAX } from '../constants' @@ -118,6 +119,8 @@ export function useNavBase( watch(currentSlideRoute, (next, prev) => { navDirection.value = next.no - prev.no + if (prev) + hideAllPoppers() }) async function openInEditor(url?: string) { diff --git a/packages/slidev/node/options.ts b/packages/slidev/node/options.ts index 4b352c745b..90569cb1a9 100644 --- a/packages/slidev/node/options.ts +++ b/packages/slidev/node/options.ts @@ -123,6 +123,7 @@ function getDefine(options: Omit): Record Date: Tue, 21 Oct 2025 00:49:06 +0800 Subject: [PATCH 2/2] feat: add __SLIDEV_FEATURE_TWOSLASH_AUTOSHOW__ to `shim.d.ts` --- shim.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shim.d.ts b/shim.d.ts index 2d618a0f27..fa3fede9e9 100644 --- a/shim.d.ts +++ b/shim.d.ts @@ -3,6 +3,7 @@ declare global { const __DEV__: boolean const __SLIDEV_HASH_ROUTE__: boolean const __SLIDEV_CLIENT_ROOT__: string + const __SLIDEV_FEATURE_TWOSLASH_AUTOSHOW__: boolean const __SLIDEV_FEATURE_DRAWINGS__: boolean const __SLIDEV_FEATURE_DRAWINGS_PERSIST__: boolean const __SLIDEV_FEATURE_EDITOR__: boolean @@ -19,6 +20,7 @@ declare module '@vue/runtime-core' { __DEV__: boolean __SLIDEV_HASH_ROUTE__: boolean __SLIDEV_CLIENT_ROOT__: string + __SLIDEV_FEATURE_TWOSLASH_AUTOSHOW__: boolean __SLIDEV_FEATURE_DRAWINGS__: boolean __SLIDEV_FEATURE_DRAWINGS_PERSIST__: boolean __SLIDEV_FEATURE_EDITOR__: boolean