0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-16 21:46:22 -05:00

Updated according to new configuration (#5478)

* Updated according to new configuration

Astro imports the `defineConfig` function from `astro/config`. The `integrations` key needs to be passed into the `defineConfig` function, but it is not shown in the README. Updated the README according to the CLI example.

* update alpine

* update image

* update lit

* update mdx

* update preact

* update prefetch

* update react

* update sitemap

* update solid

* update svelte

* update tailwind

* update turbolinks

* update vue

* chore: add changeset

* update image

* update svelte readme

Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
This commit is contained in:
Subha Chanda 2023-01-27 00:33:00 +05:30 committed by GitHub
parent 607f0ac31a
commit 1c7eef308e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 399 additions and 103 deletions

View file

@ -0,0 +1,17 @@
---
'@astrojs/alpinejs': patch
'@astrojs/image': patch
'@astrojs/lit': patch
'@astrojs/mdx': patch
'@astrojs/preact': patch
'@astrojs/prefetch': patch
'@astrojs/react': patch
'@astrojs/sitemap': patch
'@astrojs/solid-js': patch
'@astrojs/svelte': patch
'@astrojs/tailwind': patch
'@astrojs/turbolinks': patch
'@astrojs/vue': patch
---
Update READMEs for consistency

View file

@ -43,9 +43,9 @@ npm install alpinejs @types/alpinejs
Then, apply this integration to your `astro.config.*` file using the `integrations` property:
__`astro.config.mjs`__
```js ins={3} "alpine()"
// astro.config.mjs
```js ins={2} "alpine()"
import { defineConfig } from 'astro/config';
import alpine from '@astrojs/alpinejs';

View file

@ -63,13 +63,14 @@ Then, apply this integration to your `astro.config.*` file using the `integratio
__`astro.config.mjs`__
```js
```js ins={2} "image()"
import { defineConfig } from 'astro/config';
import image from '@astrojs/image';
export default {
export default defineConfig({
// ...
integrations: [image()],
}
});
```
### Installing `sharp` (optional)
@ -82,16 +83,18 @@ npm install sharp
Then, update the integration in your `astro.config.*` file to use the built-in `sharp` image transformer.
```js ins={2,7}
// astro.config.mjs
__`astro.config.mjs`__
```js ins={3,8}
import { defineConfig } from 'astro/config';
import image from '@astrojs/image';
export default {
export default defineConfig({
// ...
integrations: [image({
serviceEntryPoint: '@astrojs/image/sharp'
})],
}
})
```
### Update `env.d.ts`
@ -446,33 +449,37 @@ The integration can be configured to run with a different image service, either
The `serviceEntryPoint` should resolve to the image service installed from NPM. The default entry point is `@astrojs/image/squoosh`, which resolves to the entry point exported from this integration's `package.json`.
__`astro.config.mjs`__
```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
import image from '@astrojs/image';
export default {
export default defineConfig({
integrations: [image({
// Example: The entrypoint for a third-party image service installed from NPM
serviceEntryPoint: 'my-image-service/astro.js'
})],
}
});
```
### config.logLevel
The `logLevel` controls can be used to control how much detail is logged by the integration during builds. This may be useful to track down a specific image or transformation that is taking a long time to build.
__`astro.config.mjs`__
```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
import image from '@astrojs/image';
export default {
export default defineConfig({
integrations: [image({
// supported levels: 'debug' | 'info' | 'warn' | 'error' | 'silent'
// default: 'info'
logLevel: 'debug'
})],
}
});
```
### config.cacheDir
@ -483,7 +490,12 @@ Local images will be cached for 1 year and invalidated when the original image f
By default, transformed images will be cached to `./node_modules/.astro/image`. This can be configured in the integration's config options.
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import image from '@astrojs/image';
export default defineConfig({
integrations: [image({
// may be useful if your hosting provider allows caching between CI builds

View file

@ -43,13 +43,14 @@ Now, apply this integration to your `astro.config.*` file using the `integration
__`astro.config.mjs`__
```js
```js ins={2} "lit()"
import { defineConfig } from 'astro/config';
import lit from '@astrojs/lit';
export default {
export default defineConfig({
// ...
integrations: [lit()],
}
});
```
## Getting started

View file

@ -42,9 +42,9 @@ npm install @astrojs/mdx
Then, apply this integration to your `astro.config.*` file using the `integrations` property:
**`astro.config.mjs`**
__`astro.config.mjs`__
```js
```js ins={2} "mdx()"
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
@ -92,8 +92,9 @@ All [`markdown` configuration options](https://docs.astro.build/en/reference/con
There is no separate MDX configuration for [including pages marked as draft in the build](https://docs.astro.build/en/reference/configuration-reference/#markdowndrafts). This Markdown setting will be respected by both Markdown and MDX files and cannot be overridden for MDX files specifically.
:::
```ts
// astro.config.mjs
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import remarkToc from 'remark-toc';
@ -102,19 +103,47 @@ import rehypeMinifyHtml from 'rehype-minify-html';
export default defineConfig({
integrations: [
mdx({
syntaxHighlight: 'shiki',
shikiConfig: { theme: 'dracula' },
remarkPlugins: [remarkToc],
rehypePlugins: [rehypeMinifyHtml],
remarkRehype: { footnoteLabel: 'Footnotes' },
gfm: false,
})
]
})
remarkPlugins: [exampleRemarkPlugin],
}),
],
});
```
:::caution
MDX does not support passing remark and rehype plugins as a string. You should install, import, and apply the plugin function instead.
…every MDX file will have `customProperty` in its frontmatter! See [our Markdown documentation](https://docs.astro.build/en/guides/markdown-content/#example-injecting-frontmatter) for more usage instructions and a [reading time plugin example](https://docs.astro.build/en/guides/markdown-content/#example-calculate-reading-time).
### Layouts
Layouts can be applied [in the same way as standard Astro Markdown](https://docs.astro.build/en/guides/markdown-content/#frontmatter-layout). You can add a `layout` to [your frontmatter](#frontmatter) like so:
```yaml
---
layout: '../layouts/BaseLayout.astro'
title: 'My Blog Post'
---
```
Then, you can retrieve all other frontmatter properties from your layout via the `frontmatter` property, and render your MDX using the default [`<slot />`](https://docs.astro.build/en/core-concepts/astro-components/#slots). See [layout props](#layout-props) for a complete list of props available.
```astro title="src/layouts/BaseLayout.astro"
---
const { frontmatter, url } = Astro.props;
---
<html>
<head>
<meta rel="canonical" href={new URL(url, Astro.site).pathname}>
<title>{frontmatter.title}</title>
</head>
<body>
<h1>{frontmatter.title}</h1>
<!-- Rendered MDX will be passed into the default slot. -->
<slot />
</body>
</html>
```
You can set a layouts [`Props` type](/en/guides/typescript/#component-props) with the `MDXLayoutProps` helper.
:::note
`MDXLayoutProps` is the same as the `MarkdownLayoutProps` utility type with `rawContent()` and `compiledContent()` removed (since these are not available for `.mdx` files). Feel free to **use `MarkdownLayoutProps` instead** when sharing a layout across `.md` and `.mdx` files.
:::
📚 See the [Markdown Options reference](https://docs.astro.build/en/reference/configuration-reference/#markdown-options) for a complete list of options.
@ -128,8 +157,80 @@ MDX will extend [your project's existing Markdown configuration](https://docs.as
For example, say you need to disable GitHub-Flavored Markdown and apply a different set of remark plugins for MDX files. You can apply these options like so, with `extendMarkdownConfig` enabled by default:
```ts
// astro.config.mjs
```html
<blockquote>
<p>A blockquote with <em>some</em> emphasis.</p>
</blockquote>
```
But what if you want to specify your own markup for these blockquotes? In the above example, you could create a custom `<Blockquote />` component (in any language) that either has a `<slot />` component or accepts a `children` prop.
```astro title="src/components/Blockquote.astro"
---
const props = Astro.props;
---
<blockquote {...props} class="bg-blue-50 p-4">
<span class="text-4xl text-blue-600 mb-2"></span>
<slot />
</blockquote>
```
Then in the MDX file you import the component and export it to the `components` export.
```mdx title="src/pages/posts/post-1.mdx" {2}
import Blockquote from '../components/Blockquote.astro';
export const components = { blockquote: Blockquote };
```
Now, writing the standard Markdown blockquote syntax (`>`) will use your custom `<Blockquote />` component instead. No need to use a component in Markdown, or write a remark/rehype plugin! Visit the [MDX website](https://mdxjs.com/table-of-components/) for a full list of HTML elements that can be overwritten as custom components.
#### Custom components with imported `mdx`
When rendering imported MDX content, custom components can be passed via the `components` prop.
Note: An MDX file's exported components will _not_ be used unless you manually import and pass them via the `components` property. See the example below:
```astro title="src/pages/page.astro" "components={{...components, h1: Heading }}"
---
import { Content, components } from '../content.mdx';
import Heading from '../Heading.astro';
---
<Content components={{...components, h1: Heading }} />
```
### Syntax highlighting
The MDX integration respects [your project's `markdown.syntaxHighlight` configuration](https://docs.astro.build/en/guides/markdown-content/#syntax-highlighting).
We will highlight your code blocks with [Shiki](https://github.com/shikijs/shiki) by default. You can customize this highlighter using the `markdown.shikiConfig` option in your `astro.config`. For example, you can apply a different built-in theme like so:
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
export default defineConfig({
markdown: {
shikiConfig: {
theme: 'dracula',
},
},
integrations: [mdx()],
});
```
Visit [our Shiki configuration docs](https://docs.astro.build/en/guides/markdown-content/#shiki-configuration) for more on using Shiki with Astro.
#### Switch to Prism
You can also use the [Prism](https://prismjs.com/) syntax highlighter by setting `markdown.syntaxHighlight` to `'prism'` in your `astro.config` like so:
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
@ -139,38 +240,149 @@ export default defineConfig({
remarkPlugins: [remarkPlugin1],
gfm: true,
},
integrations: [mdx()],
});
```
This applies a minimal Prism renderer with added support for `astro` code blocks. Visit [our "Prism configuration" docs](https://docs.astro.build/en/guides/markdown-content/#prism-configuration) for more on using Prism with Astro.
#### Switch to a custom syntax highlighter
You may want to apply your own syntax highlighter too. If your highlighter offers a remark or rehype plugin, you can flip off our syntax highlighting by setting `markdown.syntaxHighlight: false` and wiring up your plugin. For example, say you want to apply [Shiki Twoslash's remark plugin](https://www.npmjs.com/package/remark-shiki-twoslash):
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import shikiTwoslash from 'remark-shiki-twoslash';
export default defineConfig({
markdown: {
syntaxHighlight: false,
},
integrations: [
mdx({
// `syntaxHighlight` inherited from Markdown
// Markdown `remarkPlugins` ignored,
// only `remarkPlugin2` applied.
remarkPlugins: [remarkPlugin2],
// `gfm` overridden to `false`
gfm: false,
remarkPlugins: [shikiTwoslash, { /* Shiki Twoslash config */ }],
})
]
],
});
```
## Configuration
### remarkPlugins
[Remark plugins](https://github.com/remarkjs/remark/blob/main/doc/plugins.md) allow you to extend your Markdown with new capabilities. This includes [auto-generating a table of contents](https://github.com/remarkjs/remark-toc), [applying accessible emoji labels](https://github.com/florianeckerstorfer/remark-a11y-emoji), and more. We encourage you to browse [awesome-remark](https://github.com/remarkjs/awesome-remark) for a full curated list!
This example applies the [`remark-toc`](https://github.com/remarkjs/remark-toc) plugin to `.mdx` files. To customize plugin inheritance from your Markdown config or Astro's defaults, [see the `extendPlugins` option](#extendplugins).
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import remarkToc from 'remark-toc';
export default defineConfig({
integrations: [mdx({
remarkPlugins: [remarkToc],
})],
});
```
### rehypePlugins
[Rehype plugins](https://github.com/rehypejs/rehype/blob/main/doc/plugins.md) allow you to transform the HTML that your Markdown generates. We encourage you to browse [awesome-rehype](https://github.com/rehypejs/awesome-rehype) for a full curated list of plugins!
We apply our own (non-removable) [`collect-headings`](https://github.com/withastro/astro/blob/main/packages/integrations/mdx/src/rehype-collect-headings.ts) plugin. This applies IDs to all headings (i.e. `h1 -> h6`) in your MDX files to [link to headings via anchor tags](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#linking_to_an_element_on_the_same_page).
This example applies the [`rehype-minify`](https://github.com/rehypejs/rehype-minify) plugin to `.mdx` files. To customize plugin inheritance from your Markdown config or Astro's defaults, [see the `extendPlugins` option](#extendplugins).
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import rehypeMinifyHtml from 'rehype-minify';
export default defineConfig({
integrations: [mdx({
rehypePlugins: [rehypeMinifyHtml],
})],
});
```
### extendPlugins
**Type:** `'markdown' | 'astroDefaults' | false`
**Default:** `'markdown'`
#### `markdown` (default)
By default, Astro inherits all [remark](#remarkplugins) and [rehype](#rehypeplugins) plugins from [the `markdown` option in your Astro config](https://docs.astro.build/en/guides/markdown-content/#markdown-plugins). This also respects the [`markdown.extendDefaultPlugins`](https://docs.astro.build/en/reference/configuration-reference/#markdownextenddefaultplugins) option to extend Astro's defaults. Any additional plugins you apply in your MDX config will be applied _after_ your configured Markdown plugins.
This example applies [`remark-toc`](https://github.com/remarkjs/remark-toc) to Markdown _and_ MDX, and [`rehype-minify`](https://github.com/rehypejs/rehype-minify) to MDX alone:
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import remarkToc from 'remark-toc';
import rehypeMinify from 'rehype-minify';
export default defineConfig({
markdown: {
// Applied to .md and .mdx files
remarkPlugins: [remarkToc],
},
integrations: [mdx({
// Applied to .mdx files only
rehypePlugins: [rehypeMinify],
})],
});
```
You may also need to disable `markdown` config extension in MDX. For this, set `extendMarkdownConfig` to `false`:
```ts
// astro.config.mjs
__`astro.config.mjs`__
```js "extendPlugins: 'astroDefaults'"
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import remarkToc from 'remark-toc';
export default defineConfig({
markdown: {
remarkPlugins: [remarkPlugin1],
},
integrations: [
mdx({
// Markdown config now ignored
extendMarkdownConfig: false,
// No `remarkPlugins` applied
})
]
integrations: [mdx({
remarkPlugins: [remarkToc],
// Astro defaults applied
extendPlugins: 'astroDefaults',
})],
});
```
#### `false`
If you don't want to extend any plugins, set `extendPlugins` to `false`:
__`astro.config.mjs`__
```js "extendPlugins: false"
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import remarkToc from 'remark-toc';
export default defineConfig({
integrations: [mdx({
remarkPlugins: [remarkToc],
// Astro defaults not applied
extendPlugins: false,
})],
});
```
@ -180,6 +392,30 @@ These are plugins that modify the output [estree](https://github.com/estree/estr
We suggest [using AST Explorer](https://astexplorer.net/) to play with estree outputs, and trying [`estree-util-visit`](https://unifiedjs.com/explore/package/estree-util-visit/) for searching across JavaScript nodes.
### remarkRehype
Markdown content is transformed into HTML through remark-rehype which has [a number of options](https://github.com/remarkjs/remark-rehype#options).
You can use remark-rehype options in your MDX integration config file like so:
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
export default defineConfig({
integrations: [mdx({
remarkRehype: {
footnoteLabel: 'Catatan kaki',
footnoteBackLabel: 'Kembali ke konten',
},
})],
});
```
This inherits the configuration of `markdown.remarkRehype`. This behavior can be changed by configuring `extendPlugins`.
## Examples
* The [Astro MDX starter template](https://github.com/withastro/astro/tree/latest/examples/with-mdx) shows how to use MDX files in your Astro project.

View file

@ -55,7 +55,7 @@ Then, apply this integration to your `astro.config.*` file using the `integratio
__`astro.config.mjs`__
```js
```js ins={2} "preact()"
import { defineConfig } from 'astro/config';
import preact from '@astrojs/preact';
@ -86,8 +86,9 @@ You can enable `preact/compat`, Preacts compatibility layer for rendering Rea
To do so, pass an object to the Preact integration and set `compat: true`.
```js
// astro.config.mjs
__`astro.config.mjs`__
```js "compat: true"
import { defineConfig } from 'astro/config';
import preact from '@astrojs/preact';

View file

@ -41,13 +41,14 @@ Then, apply this integration to your `astro.config.*` file using the `integratio
__`astro.config.mjs`__
```js
```js ins={2} "prefetch()"
import { defineConfig } from 'astro/config';
import prefetch from '@astrojs/prefetch';
export default {
export default defineConfig({
// ...
integrations: [prefetch()],
}
});
```
@ -63,31 +64,37 @@ The Astro Prefetch integration handles which links on the site are prefetched an
By default the prefetch script searches the page for any links that include a `rel="prefetch"` attribute, ex: `<a rel="prefetch" />` or `<a rel="nofollow prefetch" />`. This behavior can be changed in your `astro.config.*` file to use a custom query selector when finding prefetch links.
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import prefetch from '@astrojs/prefetch';
export default {
export default defineConfig({
// ...
integrations: [prefetch({
// Only prefetch links with an href that begins with `/products`
selector: "a[href^='/products']"
})],
}
});
```
### config.throttle
By default the prefetch script will only prefetch one link at a time. This behavior can be changed in your `astro.config.*` file to increase the limit for concurrent downloads.
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import prefetch from '@astrojs/prefetch';
export default {
export default defineConfig({
// ...
integrations: [prefetch({
// Allow up to three links to be prefetched concurrently
throttle: 3
})],
}
});
```
## Troubleshooting

View file

@ -43,13 +43,14 @@ Now, apply this integration to your `astro.config.*` file using the `integration
__`astro.config.mjs`__
```js
```js ins={2} "react()"
import { defineConfig } from 'astro/config';
import react from '@astrojs/react';
export default {
export default defineConfig({
// ...
integrations: [react()],
}
});
```
## Getting started

View file

@ -47,7 +47,7 @@ Then, apply this integration to your `astro.config.*` file using the `integratio
__`astro.config.mjs`__
```js
```js ins={2} "sitemap()"
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
@ -114,8 +114,11 @@ Now, [build your site for production](https://docs.astro.build/en/reference/cli-
To configure this integration, pass an object to the `sitemap()` function call in `astro.config.mjs`.
__`astro.config.mjs`__
```js
...
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
integrations: [sitemap({
filter: ...
@ -172,16 +175,17 @@ The maximum number entries per sitemap file. The default value is 45000. A sitem
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default {
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
entryLimit: 10000,
}),
],
}
});
```
### changefreq, lastmod, and priority
@ -196,9 +200,10 @@ Note that `changefreq` and `priority` are ignored by Google.
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default {
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
@ -207,7 +212,7 @@ export default {
lastmod: new Date('2022-02-24'),
}),
],
}
});
```
### serialize
@ -232,9 +237,10 @@ The example below shows the ability to add sitemap specific properties individua
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default {
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
@ -251,7 +257,7 @@ export default {
},
}),
],
}
});
```
### i18n
@ -270,9 +276,10 @@ This object has two required properties:
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default {
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
@ -286,7 +293,7 @@ export default {
},
}),
],
};
});
```
The resulting sitemap looks like this:

View file

@ -43,13 +43,14 @@ Now, apply this integration to your `astro.config.*` file using the `integration
__`astro.config.mjs`__
```js
```js ins={2} "solid()"
import { defineConfig } from 'astro/config';
import solid from '@astrojs/solid-js';
export default {
// ...
integrations: [solid()],
}
export default defineConfig({
// ...
integrations: [solid()],
});
```
## Getting started

View file

@ -43,13 +43,14 @@ Now, apply this integration to your `astro.config.*` file using the `integration
__`astro.config.mjs`__
```js
```js ins={2} "svelte()"
import { defineConfig } from 'astro/config';
import svelte from '@astrojs/svelte';
export default {
export default defineConfig({
// ...
integrations: [svelte()],
}
});
```
## Getting started
@ -94,17 +95,20 @@ Providing your own `preprocess` options **will** override the [`vitePreprocess()
You can set options either by passing them to the `svelte` integration in `astro.config.mjs` or in `svelte.config.js`. Either of these would override the default `preprocess` setting:
__`astro.config.mjs`__
```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
import svelte from '@astrojs/svelte';
export default {
export default defineConfig({
integrations: [svelte({ preprocess: [] })],
};
});
```
__`svelte.config.js`__
```js
// svelte.config.js
export default {
preprocess: [],
};
@ -116,8 +120,9 @@ export default {
If you're using a preprocessor like TypeScript or SCSS in your Svelte files, you can create a `svelte.config.js` file so that the Svelte IDE extension can correctly parse the Svelte files.
__`svelte.config.js`__
```js
// svelte.config.js
import { vitePreprocess } from '@astrojs/svelte';
export default {

View file

@ -52,7 +52,7 @@ Then, apply this integration to your `astro.config.*` file using the `integratio
__`astro.config.mjs`__
```js
```js ins={2} "tailwind()"
import { defineConfig } from 'astro/config';
import tailwind from '@astrojs/tailwind';
@ -91,16 +91,18 @@ If you want to use a different Tailwind configuration file instead of the defaul
> **Warning**
> Changing this isn't recommended since it can cause problems with other tools that integrate with Tailwind, like the official Tailwind VSCode extension.
__`astro.config.mjs`__
```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
import tailwind from '@astrojs/tailwind';
export default {
export default defineConfig({
integrations: [tailwind({
// Example: Provide a custom path to a Tailwind config file
config: { path: './custom-config.cjs' },
})],
}
});
```
#### config.applyBaseStyles
@ -116,15 +118,18 @@ export default {
To disable this default behavior, set `config.applyBaseStyles` to `false`. This can be useful if you need to define your own `base.css` file (to include a [`@layer` directive](https://tailwindcss.com/docs/functions-and-directives#layer), for example). This can also be useful if you do not want `base.css` to be imported on every page of your project.
__`astro.config.mjs`__
```js
// astro.config.mjs
export default {
import { defineConfig } from 'astro/config';
export default defineConfig({
integrations: [tailwind({
// Example: Disable injecting a basic `base.css` import on every page.
// Useful if you need to define and/or import your own custom `base.css`.
config: { applyBaseStyles: false },
})],
}
});
```
You can now [import your own `base.css` as a local stylesheet](https://docs.astro.build/en/guides/styling/#import-a-local-stylesheet).

View file

@ -45,15 +45,16 @@ npm install @astrojs/turbolinks
Then, apply this integration to your `astro.config.*` file using the `integrations` property:
__astro.config.mjs__
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import turbolinks from '@astrojs/turbolinks';
export default {
export default defineConfig({
// ...
integrations: [turbolinks()],
}
});
```
## Getting started

View file

@ -43,13 +43,14 @@ Now, apply this integration to your `astro.config.*` file using the `integration
__`astro.config.mjs`__
```js
```js ins={2} "vue()"
import { defineConfig } from 'astro/config';
import vue from '@astrojs/vue';
export default {
export default defineConfig({
// ...
integrations: [vue()],
}
});
```
## Getting started
@ -79,9 +80,10 @@ This integration is powered by `@vitejs/plugin-vue`. To customize the Vue compil
__`astro.config.mjs`__
```js
import { defineConfig } from 'astro/config';
import vue from '@astrojs/vue';
export default {
export default defineConfig({
// ...
integrations: [vue({
template: {
@ -92,7 +94,7 @@ export default {
}
// ...
})],
}
});
```
### appEntrypoint