From 0a826c999c8ee30d5ee2ae61ac4165fb9797da70 Mon Sep 17 00:00:00 2001 From: Drew Powers <1369770+drwpow@users.noreply.github.com> Date: Thu, 2 Dec 2021 10:45:54 -0700 Subject: [PATCH] Allow special characters in filenames (#2091) #2089 --- .changeset/proud-yaks-smile.md | 5 +++++ packages/astro/src/core/util.ts | 2 +- packages/astro/test/astro-basic.test.js | 5 +++++ .../astro-basic/src/pages/special-“characters” -in-file.md | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .changeset/proud-yaks-smile.md create mode 100644 packages/astro/test/fixtures/astro-basic/src/pages/special-“characters” -in-file.md diff --git a/.changeset/proud-yaks-smile.md b/.changeset/proud-yaks-smile.md new file mode 100644 index 000000000..bb8ee93a9 --- /dev/null +++ b/.changeset/proud-yaks-smile.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Bugfix: allow special characters in filenames diff --git a/packages/astro/src/core/util.ts b/packages/astro/src/core/util.ts index e05a76801..df93938bc 100644 --- a/packages/astro/src/core/util.ts +++ b/packages/astro/src/core/util.ts @@ -81,5 +81,5 @@ export function resolveDependency(dep: string, astroConfig: AstroConfig) { * Windows: /@fs/C:/Users/astro/code/my-project/src/pages/index.astro */ export function viteifyURL(filePath: URL): string { - return `/@fs${filePath.pathname}`; + return `/@fs${slash(fileURLToPath(filePath)).replace(/^\/?/, '/')}`; } diff --git a/packages/astro/test/astro-basic.test.js b/packages/astro/test/astro-basic.test.js index 72668820b..fc8c43cca 100644 --- a/packages/astro/test/astro-basic.test.js +++ b/packages/astro/test/astro-basic.test.js @@ -81,6 +81,11 @@ describe('Astro basics', () => { // will be 1 if element rendered correctly expect($('#one')).to.have.lengthOf(1); }); + + it('supports special chars in filename', async () => { + // will have already erred by now, but add test anyway + expect(await fixture.readFile('/special-“characters” -in-file/index.html')).to.be.ok; + }); }); it('Supports void elements whose name is a string (#2062)', async () => { diff --git a/packages/astro/test/fixtures/astro-basic/src/pages/special-“characters” -in-file.md b/packages/astro/test/fixtures/astro-basic/src/pages/special-“characters” -in-file.md new file mode 100644 index 000000000..6a0ec636a --- /dev/null +++ b/packages/astro/test/fixtures/astro-basic/src/pages/special-“characters” -in-file.md @@ -0,0 +1,5 @@ +--- +title: Special chars +--- + +# I have special characters