summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Swithinbank2023-07-14 14:27:56 +0200
committerGitHub2023-07-14 14:27:56 +0200
commit757c65ffc468fd2c782312b476fa7659d0cfd198 (patch)
tree4c49163457b48649fb79547dfc56f2c99e724b3e
parent48242db9cf8713d8f85e2002457a19dfbf3f295c (diff)
downloadIT.starlight-757c65ffc468fd2c782312b476fa7659d0cfd198.tar.gz
IT.starlight-757c65ffc468fd2c782312b476fa7659d0cfd198.tar.bz2
IT.starlight-757c65ffc468fd2c782312b476fa7659d0cfd198.zip
Fix relative path resolution on Windows (#335)
* Use Vite hack to resolve user config paths * Add changeset * Switch to `JSON.stringify` strategy * Remove old changeset
-rw-r--r--.changeset/fluffy-lions-yell.md (renamed from .changeset/friendly-lobsters-share.md)0
-rw-r--r--packages/starlight/index.ts10
2 files changed, 5 insertions, 5 deletions
diff --git a/.changeset/friendly-lobsters-share.md b/.changeset/fluffy-lions-yell.md
index 6b02e4f8..6b02e4f8 100644
--- a/.changeset/friendly-lobsters-share.md
+++ b/.changeset/fluffy-lions-yell.md
diff --git a/packages/starlight/index.ts b/packages/starlight/index.ts
index a1e68e20..8a46b29f 100644
--- a/packages/starlight/index.ts
+++ b/packages/starlight/index.ts
@@ -6,7 +6,7 @@ import type {
ViteUserConfig,
} from 'astro';
import { spawn } from 'node:child_process';
-import { dirname, relative } from 'node:path';
+import { dirname, relative, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { starlightAsides } from './integrations/asides';
import { starlightSitemap } from './integrations/sitemap';
@@ -89,19 +89,19 @@ function vitePluginStarlightUserConfig(
{ root }: AstroConfig
): NonNullable<ViteUserConfig['plugins']>[number] {
const resolveRelativeId = (id: string) =>
- id.startsWith('.') ? fileURLToPath(new URL(id, root)) : id;
+ id.startsWith('.') ? JSON.stringify(resolve(fileURLToPath(root), id)) : id;
const modules = {
'virtual:starlight/user-config': `export default ${JSON.stringify(opts)}`,
'virtual:starlight/project-context': `export default ${JSON.stringify({
root,
})}`,
'virtual:starlight/user-css': opts.customCss
- .map((id) => `import "${resolveRelativeId(id)}";`)
+ .map((id) => `import ${resolveRelativeId(id)};`)
.join(''),
'virtual:starlight/user-images': opts.logo
? 'src' in opts.logo
- ? `import src from "${resolveRelativeId(opts.logo.src)}"; export const logos = { dark: src, light: src };`
- : `import dark from "${resolveRelativeId(opts.logo.dark)}"; import light from "${resolveRelativeId(opts.logo.light)}"; export const logos = { dark, light };`
+ ? `import src from ${resolveRelativeId(opts.logo.src)}; export const logos = { dark: src, light: src };`
+ : `import dark from ${resolveRelativeId(opts.logo.dark)}; import light from ${resolveRelativeId(opts.logo.light)}; export const logos = { dark, light };`
: 'export const logos = {};',
};
const resolutionMap = Object.fromEntries(