From 679dc7ea904b28464a5697877c91e211f1e64602 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Mon, 23 Mar 2026 21:24:51 +0800 Subject: [PATCH] feat: copy markdown files to output directory for download feature Add build step to copy all .md files to dist directory to support direct markdown file access for download and copy features. Update sitemap generation to reflect recent changes and improve code formatting. The copy operation excludes special directories like .vitepress, public, and node_modules to ensure only documentation content is available for download. --- docs/.vitepress/config.mjs | 28 +++++++++++++++++++ .../CopyOrDownloadAsMarkdownButtons/index.vue | 26 +++++++++++------ docs/public/sitemap.xml | 4 +-- scripts/generate-sitemap.mjs | 24 +++++++++++++--- 4 files changed, 67 insertions(+), 15 deletions(-) diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 551c5b1..22a45fa 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -1239,6 +1239,34 @@ Sitemap: ${siteUrl}/sitemap.xml '✓ Generated robots.txt with sitemap URL:', `${siteUrl}/sitemap.xml` ) + + // Copy all .md files to dist for download/copy features + const srcDir = siteConfig.srcDir || path.resolve(outDir, '../../') + function copyMdFiles(src, dest) { + if (!fs.existsSync(dest)) { + fs.mkdirSync(dest, { recursive: true }) + } + const entries = fs.readdirSync(src, { withFileTypes: true }) + for (const entry of entries) { + const srcPath = path.join(src, entry.name) + const destPath = path.join(dest, entry.name) + if (entry.isDirectory()) { + if ( + entry.name === '.vitepress' || + entry.name === 'public' || + entry.name === 'node_modules' + ) + continue + copyMdFiles(srcPath, destPath) + } else if (entry.isFile() && entry.name.endsWith('.md')) { + fs.copyFileSync(srcPath, destPath) + } + } + } + console.log( + '✓ Copying markdown files to output directory for download feature...' + ) + copyMdFiles(srcDir, outDir) }, // 多语言配置 - 使用 cn/en-us/ja 结构 diff --git a/docs/.vitepress/theme/components/CopyOrDownloadAsMarkdownButtons/index.vue b/docs/.vitepress/theme/components/CopyOrDownloadAsMarkdownButtons/index.vue index 8c3d385..044fe8a 100644 --- a/docs/.vitepress/theme/components/CopyOrDownloadAsMarkdownButtons/index.vue +++ b/docs/.vitepress/theme/components/CopyOrDownloadAsMarkdownButtons/index.vue @@ -50,7 +50,8 @@