diff --git a/.changeset/precompress-markdown-adapter-node.md b/.changeset/precompress-markdown-adapter-node.md new file mode 100644 index 000000000000..4f8d4469f111 --- /dev/null +++ b/.changeset/precompress-markdown-adapter-node.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-node': minor +--- + +feat: precompress prerendered `.md` and `.mdx` files diff --git a/.changeset/precompress-markdown-adapter-static.md b/.changeset/precompress-markdown-adapter-static.md new file mode 100644 index 000000000000..268dff1df6b4 --- /dev/null +++ b/.changeset/precompress-markdown-adapter-static.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-static': minor +--- + +feat: precompress prerendered `.md` and `.mdx` files diff --git a/.changeset/precompress-markdown-files.md b/.changeset/precompress-markdown-files.md new file mode 100644 index 000000000000..efc5df85a6fb --- /dev/null +++ b/.changeset/precompress-markdown-files.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': minor +--- + +feat: precompress `.md` and `.mdx` files when adapters call `builder.compress()` diff --git a/packages/kit/src/core/adapt/builder.js b/packages/kit/src/core/adapt/builder.js index 42ff2145db31..67c50d34b1d6 100644 --- a/packages/kit/src/core/adapt/builder.js +++ b/packages/kit/src/core/adapt/builder.js @@ -19,7 +19,19 @@ import { find_server_assets } from '../generate_manifest/find_server_assets.js'; import { reserved } from '../env.js'; const pipe = promisify(pipeline); -const extensions = ['.html', '.js', '.mjs', '.json', '.css', '.svg', '.xml', '.wasm', '.txt']; +const extensions = [ + '.html', + '.js', + '.mjs', + '.json', + '.css', + '.svg', + '.xml', + '.wasm', + '.txt', + '.md', + '.mdx' +]; /** * Creates the Builder which is passed to adapters for building the application. diff --git a/packages/kit/src/core/adapt/builder.spec.js b/packages/kit/src/core/adapt/builder.spec.js index b69c7b8296bb..1761dc179baa 100644 --- a/packages/kit/src/core/adapt/builder.spec.js +++ b/packages/kit/src/core/adapt/builder.spec.js @@ -65,12 +65,20 @@ test('compress files', async () => { route_data: [] }); - const target = fileURLToPath(new URL('./fixtures/compress/foo.css', import.meta.url)); - rmSync(target + '.br', { force: true }); - rmSync(target + '.gz', { force: true }); - await builder.compress(dirname(target)); - assert.ok(existsSync(target + '.br')); - assert.ok(existsSync(target + '.gz')); + const targets = [ + fileURLToPath(new URL('./fixtures/compress/foo.css', import.meta.url)), + fileURLToPath(new URL('./fixtures/compress/foo.md', import.meta.url)), + fileURLToPath(new URL('./fixtures/compress/foo.mdx', import.meta.url)) + ]; + for (const target of targets) { + rmSync(target + '.br', { force: true }); + rmSync(target + '.gz', { force: true }); + } + await builder.compress(dirname(targets[0])); + for (const target of targets) { + assert.ok(existsSync(target + '.br')); + assert.ok(existsSync(target + '.gz')); + } }); test('instrument generates facade with posix paths', () => { diff --git a/packages/kit/src/core/adapt/fixtures/compress/foo.md b/packages/kit/src/core/adapt/fixtures/compress/foo.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/core/adapt/fixtures/compress/foo.mdx b/packages/kit/src/core/adapt/fixtures/compress/foo.mdx new file mode 100644 index 000000000000..e69de29bb2d1