summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/proud-yaks-smile.md5
-rw-r--r--packages/astro/src/core/util.ts2
-rw-r--r--packages/astro/test/astro-basic.test.js5
-rw-r--r--packages/astro/test/fixtures/astro-basic/src/pages/special-“characters” -in-file.md5
4 files changed, 16 insertions, 1 deletions
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