/** * Préfixe URL du site, aligné sur VitePress `base`. * Racine : SITE_BASE=/ ou absent * Sous-chemin (ex. GitHub Pages) : SITE_BASE=/mon-repo/ * * En dev local (`TALKS_PORTAL_DEV=1`, ex. make run), SITE_BASE est ignoré pour * éviter les modules .md servis en text/html (mismatch base / URLs). * Pour tester un sous-chemin en dev : SKIP_PORTAL_DEV=1 SITE_BASE=/repo/ npm run dev:portal */ export function getSiteBase() { if (process.env.TALKS_PORTAL_DEV === '1') return '' const raw = process.env.SITE_BASE?.trim() || '/' if (raw === '/') return '' return raw.replace(/\/+$/, '') } /** Valeur `base` VitePress : `/` ou `/mon-projet/` */ export function vitepressAppBase() { if (process.env.TALKS_PORTAL_DEV === '1') return '/' const raw = process.env.SITE_BASE?.trim() if (!raw || raw === '/') return '/' return raw.endsWith('/') ? raw : `${raw}/` } /** Chemin absolu du site : /slides/foo/ */ export function sitePath(absolutePath) { const p = absolutePath.startsWith('/') ? absolutePath : `/${absolutePath}` const b = getSiteBase() return b ? `${b}${p}` : p }