diff --git a/src/theme/CopyPageButton/index.tsx b/src/theme/CopyPageButton/index.tsx index 2d19c92ff..ca350bfc6 100644 --- a/src/theme/CopyPageButton/index.tsx +++ b/src/theme/CopyPageButton/index.tsx @@ -6,6 +6,7 @@ import IconCopy from "@theme/Icon/Copy" import IconSuccess from "@theme/Icon/Success" import Chevron from "@theme/Chevron" import { ArrowTopRightOnSquareIcon } from "@heroicons/react/16/solid" +import { getMarkdownUrl } from "../../utils/markdown-url" import styles from "./styles.module.css" @@ -46,13 +47,10 @@ export default function CopyPageButton(): JSX.Element { const { siteConfig } = useDocusaurusContext() - const basePath = siteConfig.baseUrl.replace(/\/$/, "") const pathname = typeof window !== "undefined" - ? window.location.pathname.replace(/\/$/, "") + ? window.location.pathname : "" - const markdownUrl = pathname === basePath - ? basePath + "/index.md" - : pathname + ".md" + const markdownUrl = getMarkdownUrl(pathname, siteConfig.baseUrl) const pageUrl = siteConfig.url + markdownUrl const chatPrompt = `I'd like to ask some questions about ${pageUrl}.\n\n` diff --git a/src/theme/DocItem/Content/index.tsx b/src/theme/DocItem/Content/index.tsx index 022dbbf66..1000c3bd1 100644 --- a/src/theme/DocItem/Content/index.tsx +++ b/src/theme/DocItem/Content/index.tsx @@ -1,11 +1,14 @@ import React, { type ReactNode } from "react" import clsx from "clsx" +import Head from "@docusaurus/Head" +import useDocusaurusContext from "@docusaurus/useDocusaurusContext" import { ThemeClassNames } from "@docusaurus/theme-common" import { useDoc } from "@docusaurus/plugin-content-docs/client" import Heading from "@theme/Heading" import MDXContent from "@theme/MDXContent" import type { Props } from "@theme/DocItem/Content" import CopyPageButton from "@theme/CopyPageButton" +import { getMarkdownUrl } from "../../../utils/markdown-url" import styles from "./styles.module.css" @@ -21,8 +24,14 @@ function useSyntheticTitle(): string | null { export default function DocItemContent({ children }: Props): ReactNode { const syntheticTitle = useSyntheticTitle() + const { metadata } = useDoc() + const { siteConfig } = useDocusaurusContext() + const markdownUrl = getMarkdownUrl(metadata.permalink, siteConfig.baseUrl) return (