diff --git a/docusaurus.config.js b/docusaurus.config.js index 312e694166..89c5368b12 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -108,6 +108,12 @@ const config = { ], require.resolve('docusaurus-plugin-image-zoom'), require.resolve('./plugins/llm'), + [ + 'docusaurus-plugin-copy-page-button', + { + injectButton: false, + }, + ], // .... function docusaurusTailwindcssPlugin(context, options) { return { diff --git a/package-lock.json b/package-lock.json index 6c813e445c..9c35479b33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "@mdx-js/react": "^3.0.0", "autoprefixer": "^10.4.17", "clsx": "^2.1.0", + "docusaurus-plugin-copy-page-button": "^0.8.0", "docusaurus-plugin-image-zoom": "^2.0.0", "docusaurus-plugin-sass": "0.2.5", "postcss": "^8.4.34", @@ -9577,6 +9578,19 @@ "node": ">=6" } }, + "node_modules/docusaurus-plugin-copy-page-button": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-copy-page-button/-/docusaurus-plugin-copy-page-button-0.8.0.tgz", + "integrity": "sha512-WsdA9yDlOevHuKiHMq/aZJvLViyYmlyYEPtYaIvL09qScZLu27Lyx7ABycgYz10t389nnz7NcfSKD3ghMs62fg==", + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/core": "^3.0.0", + "react": "^18.0.0 || ^19.0.0" + } + }, "node_modules/docusaurus-plugin-image-zoom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/docusaurus-plugin-image-zoom/-/docusaurus-plugin-image-zoom-2.0.0.tgz", diff --git a/package.json b/package.json index 80504fc37b..65610e456a 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@mdx-js/react": "^3.0.0", "autoprefixer": "^10.4.17", "clsx": "^2.1.0", + "docusaurus-plugin-copy-page-button": "^0.8.0", "docusaurus-plugin-image-zoom": "^2.0.0", "docusaurus-plugin-sass": "0.2.5", "postcss": "^8.4.34", diff --git a/src/theme/TOC/index.tsx b/src/theme/TOC/index.tsx index c77d3ecfe5..2f3f536b96 100644 --- a/src/theme/TOC/index.tsx +++ b/src/theme/TOC/index.tsx @@ -1,10 +1,25 @@ import React from 'react' import clsx from 'clsx' import TOC from '@theme-original/TOC' +import CopyPageButton from 'docusaurus-plugin-copy-page-button/react' +import styles from './styles.module.css' export default function TOCWrapper(props) { return ( <> +