Files
DAO_DE_JING/scripts/prepare-public.mjs
T
dekun df619a5d8e Add site icons for favicon and home screen shortcuts
Include favicon, apple-touch-icon, web manifest, and navbar logo for bookmarks and PWA-style shortcuts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-05 17:11:36 +08:00

42 lines
1.2 KiB
JavaScript

import fs from 'node:fs'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
const publicDir = path.join(root, '.vitepress', 'public')
function copyDir(source, target) {
if (!fs.existsSync(source)) return
fs.mkdirSync(target, { recursive: true })
for (const entry of fs.readdirSync(source, { withFileTypes: true })) {
const from = path.join(source, entry.name)
const to = path.join(target, entry.name)
if (entry.isDirectory()) {
copyDir(from, to)
} else {
fs.copyFileSync(from, to)
}
}
}
function resetPublicDir() {
if (fs.existsSync(publicDir)) {
fs.rmSync(publicDir, { recursive: true, force: true })
}
fs.mkdirSync(publicDir, { recursive: true })
}
resetPublicDir()
copyDir(path.join(root, 'assets'), path.join(publicDir, 'assets'))
copyDir(path.join(root, 'images'), path.join(publicDir, 'images'))
const siteDir = path.join(root, 'assets', 'site')
if (fs.existsSync(siteDir)) {
for (const file of fs.readdirSync(siteDir)) {
fs.copyFileSync(path.join(siteDir, file), path.join(publicDir, file))
}
}
console.log('[prepare-public] assets、images 与站点图标已同步到 .vitepress/public')