diff --git a/packages/frontend/core/src/blocksuite/extensions/doc-url.ts b/packages/frontend/core/src/blocksuite/extensions/doc-url.ts index 5fd780866b..994a7fc673 100644 --- a/packages/frontend/core/src/blocksuite/extensions/doc-url.ts +++ b/packages/frontend/core/src/blocksuite/extensions/doc-url.ts @@ -11,9 +11,11 @@ import type { FrameworkProvider } from '@toeverything/infra'; function patchParseDocUrlExtension(framework: FrameworkProvider) { const workspaceService = framework.get(WorkspaceService); + const workspaceServerService = framework.get(WorkspaceServerService); + const baseUrl = workspaceServerService.server?.baseUrl ?? location.origin; const ParseDocUrl = ParseDocUrlExtension({ parseDocUrl(url) { - const info = resolveLinkToDoc(url); + const info = resolveLinkToDoc(url, baseUrl); if (!info || info.workspaceId !== workspaceService.workspace.id) return; delete info.refreshKey; @@ -28,13 +30,14 @@ function patchParseDocUrlExtension(framework: FrameworkProvider) { function patchGenerateDocUrlExtension(framework: FrameworkProvider) { const workspaceService = framework.get(WorkspaceService); const workspaceServerService = framework.get(WorkspaceServerService); + const baseUrl = workspaceServerService.server?.baseUrl ?? location.origin; const GenerateDocUrl = GenerateDocUrlExtension({ generateDocUrl(pageId: string, params?: ReferenceParams) { return generateUrl({ ...params, pageId, workspaceId: workspaceService.workspace.id, - baseUrl: workspaceServerService.server?.baseUrl ?? location.origin, + baseUrl, }); }, }); diff --git a/packages/frontend/core/src/modules/navigation/utils.ts b/packages/frontend/core/src/modules/navigation/utils.ts index 99c5d300f9..6190276935 100644 --- a/packages/frontend/core/src/modules/navigation/utils.ts +++ b/packages/frontend/core/src/modules/navigation/utils.ts @@ -102,8 +102,8 @@ const isRouteModulePath = ( ): path is (typeof routeModulePaths)[number] => routeModulePaths.includes(path as any); -export const resolveLinkToDoc = (href: string) => { - const meta = resolveRouteLinkMeta(href); +export const resolveLinkToDoc = (href: string, baseUrl?: string) => { + const meta = resolveRouteLinkMeta(href, baseUrl); if (!meta || meta.moduleName !== 'doc') return null; const params = preprocessParams(