Skip to content

Commit

Permalink
Ensure base configuration appended to content collection styles (#6182)
Browse files Browse the repository at this point in the history
* Fix, base appended to propagated scripts

* Test scripts
  • Loading branch information
matthewp authored Feb 8, 2023
1 parent e4b2a2e commit 938ad51
Show file tree
Hide file tree
Showing 10 changed files with 108 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .changeset/late-poets-own.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

Ensure base configuration appended to content collection styles
5 changes: 3 additions & 2 deletions packages/astro/src/content/vite-plugin-content-assets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ export function astroConfigBuildPlugin(
},
'build:post': ({ ssrOutputs, clientOutputs, mutate }) => {
const outputs = ssrOutputs.flatMap((o) => o.output);
const prependBase = (src: string) => prependForwardSlash(npath.posix.join(options.settings.config.base, src));
for (const chunk of outputs) {
if (
chunk.type === 'chunk' &&
Expand Down Expand Up @@ -133,7 +134,7 @@ export function astroConfigBuildPlugin(
if (entryCSS.size) {
newCode = newCode.replace(
JSON.stringify(LINKS_PLACEHOLDER),
JSON.stringify([...entryCSS])
JSON.stringify(Array.from(entryCSS).map(prependBase))
);
}
if (entryScripts.size) {
Expand All @@ -153,7 +154,7 @@ export function astroConfigBuildPlugin(
JSON.stringify(
[...entryFileNames].map((src) => ({
props: {
src: prependForwardSlash(npath.posix.join(options.settings.config.base, src)),
src: prependBase(src),
type: 'module',
},
children: '',
Expand Down
23 changes: 23 additions & 0 deletions packages/astro/test/content-collections.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -243,4 +243,27 @@ describe('Content Collections', () => {
}
});
});

describe('Base configuration', () => {
let fixture;

before(async () => {
fixture = await loadFixture({
root: './fixtures/content-collections-base/',
});
await fixture.build();
});

it('Includes base in links', async () => {
const html = await fixture.readFile('/docs/index.html');
const $ = cheerio.load(html);
expect($('link').attr('href')).to.satisfies(a => a.startsWith('/docs'))
});

it('Includes base in hoisted scripts', async () => {
const html = await fixture.readFile('/docs/index.html');
const $ = cheerio.load(html);
expect($('script').attr('src')).to.satisfies(a => a.startsWith('/docs'))
});
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';

// https://astro.build/config
export default defineConfig({
base: '/docs',
integrations: [mdx()],
vite: {
build: {
assetsInlineLimit: 0
}
}
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "@test/content-collections-base",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*",
"@astrojs/mdx": "workspace:*"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<style>
div { color: blue; }
</style>
<script>
console.log('hi');
</script>
<div>Testing</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { z, defineCollection } from 'astro:content';


const docs = defineCollection({
schema: z.object({
title: z.string(),
}),
});

export const collections = {
docs,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: One
---

import One from '../../components/One.astro';

# Title

stuff

<One />
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
import { getEntryBySlug } from 'astro:content';
const entry = await getEntryBySlug('docs', 'one');
const { Content } = await entry.render();
---
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>It's content time!</title>
</head>
<body>
<main>
<Content />
</main>
</body>
</html>
8 changes: 8 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 938ad51

Please sign in to comment.