Add Migration Guide to docs (#1751)
* Add Migration Guide to docs * edit: replace astro.config.js with astro.config.mjs * edit: use plain object in define:vars example * edit: improve 'components in markdown' documentation * edit: use astro resolve in file reference documentation example * edit: rename 'writing plugins' heading to 'custom renderers' Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> * edit: fix PUBLIC_ environment variable example * edit: fix define:vars variable in example * edit: remove top-level alias documentation * edit: cleanup "passing variables into scripts and styles" description * Update migration-guide.md * Update migration-guide.md * update deployment config * update configuration * fix some errors and write a commit message about it * move the migration guide * update documentation * add migration guide to sidebar Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> Co-authored-by: Fred K. Schott <fkschott@gmail.com>
This commit is contained in:
parent
5f5df8a63a
commit
5470fda3fe
16 changed files with 237 additions and 18 deletions
2
.nvmrc
2
.nvmrc
|
@ -1 +1 @@
|
||||||
14.16.1
|
14.18.1
|
||||||
|
|
1
docs/.nvmrc
Normal file
1
docs/.nvmrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
14.18.1
|
6
docs/.stackblitzrc
Normal file
6
docs/.stackblitzrc
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"startCommand": "npm start",
|
||||||
|
"env": {
|
||||||
|
"ENABLE_CJS_IMPORTS": true
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,13 +8,5 @@ export default /** @type {import('astro').AstroUserConfig} */ ({
|
||||||
'@astrojs/renderer-preact',
|
'@astrojs/renderer-preact',
|
||||||
// Needed for Algolia search component
|
// Needed for Algolia search component
|
||||||
'@astrojs/renderer-react',
|
'@astrojs/renderer-react',
|
||||||
],
|
]
|
||||||
vite: {
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
'~': '/src',
|
|
||||||
components: '/src/components',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
8
docs/jsconfig.json
Normal file
8
docs/jsconfig.json
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"~/*": ["src/*"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,5 +26,8 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docsearch/react": "^1.0.0-alpha.27"
|
"@docsearch/react": "^1.0.0-alpha.27"
|
||||||
|
},
|
||||||
|
"volta": {
|
||||||
|
"node": "14.18.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ export const SIDEBAR = {
|
||||||
{ text: 'Installation', link: 'installation' },
|
{ text: 'Installation', link: 'installation' },
|
||||||
{ text: 'Themes', link: 'themes' },
|
{ text: 'Themes', link: 'themes' },
|
||||||
{ text: 'Astro vs. X', link: 'comparing-astro-vs-other-tools' },
|
{ text: 'Astro vs. X', link: 'comparing-astro-vs-other-tools' },
|
||||||
|
{ text: 'Migrate to v0.21', link: 'migration/0.21.0' },
|
||||||
|
|
||||||
{ text: 'Basics', header: true },
|
{ text: 'Basics', header: true },
|
||||||
{ text: 'Project Structure', link: 'core-concepts/project-structure' },
|
{ text: 'Project Structure', link: 'core-concepts/project-structure' },
|
||||||
|
|
|
@ -37,7 +37,7 @@ Por defecto, la salida de la compilación se colocará en `dist/`. Puedes desple
|
||||||
1. Establece el `buildOptions.site` correcto en `astro.config.mjs`.
|
1. Establece el `buildOptions.site` correcto en `astro.config.mjs`.
|
||||||
2. Dentro de tu proyecto, crea `deploy.sh` con el siguiente contenido (sin comentar las líneas apropiadas) y ejecútalo para implementar:
|
2. Dentro de tu proyecto, crea `deploy.sh` con el siguiente contenido (sin comentar las líneas apropiadas) y ejecútalo para implementar:
|
||||||
|
|
||||||
```bash{13,20,23}
|
```bash
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
# abortar en errores
|
# abortar en errores
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import { Markdown } from 'astro/components';
|
import { Markdown } from 'astro/components';
|
||||||
import MainLayout from '~/layouts/MainLayout.astro';
|
import MainLayout from '~/layouts/MainLayout.astro';
|
||||||
const [content] = Astro.fetchContent('~/pages/guides/markdown-content.md');
|
const [content] = Astro.fetchContent('/src/pages/guides/markdown-content.md');
|
||||||
---
|
---
|
||||||
|
|
||||||
<MainLayout content="{content}">
|
<MainLayout content="{content}">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import { Markdown } from 'astro/components';
|
import { Markdown } from 'astro/components';
|
||||||
import MainLayout from '~/layouts/MainLayout.astro';
|
import MainLayout from '~/layouts/MainLayout.astro';
|
||||||
const [content] = Astro.fetchContent('~/pages/guides/pagination.md');
|
const [content] = Astro.fetchContent('/src/pages/guides/pagination.md');
|
||||||
---
|
---
|
||||||
|
|
||||||
<MainLayout content="{content}">
|
<MainLayout content="{content}">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import { Markdown } from 'astro/components';
|
import { Markdown } from 'astro/components';
|
||||||
import MainLayout from '~/layouts/MainLayout.astro';
|
import MainLayout from '~/layouts/MainLayout.astro';
|
||||||
const [content] = Astro.fetchContent('~/pages/guides/publish-to-npm.md');
|
const [content] = Astro.fetchContent('/src/pages/guides/publish-to-npm.md');
|
||||||
---
|
---
|
||||||
|
|
||||||
<MainLayout content="{content}">
|
<MainLayout content="{content}">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import { Markdown } from 'astro/components';
|
import { Markdown } from 'astro/components';
|
||||||
import MainLayout from '~/layouts/MainLayout.astro';
|
import MainLayout from '~/layouts/MainLayout.astro';
|
||||||
const [content] = Astro.fetchContent('~/pages/guides/styling.md');
|
const [content] = Astro.fetchContent('/src/pages/guides/styling.md');
|
||||||
---
|
---
|
||||||
|
|
||||||
<MainLayout content="{content}">
|
<MainLayout content="{content}">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import { Markdown } from 'astro/components';
|
import { Markdown } from 'astro/components';
|
||||||
import MainLayout from '~/layouts/MainLayout.astro';
|
import MainLayout from '~/layouts/MainLayout.astro';
|
||||||
const [content] = Astro.fetchContent('~/pages/reference/renderer-reference.md');
|
const [content] = Astro.fetchContent('/src/pages/reference/renderer-reference.md');
|
||||||
---
|
---
|
||||||
|
|
||||||
<MainLayout content="{content}">
|
<MainLayout content="{content}">
|
||||||
|
|
208
docs/src/pages/migration/0.21.0.md
Normal file
208
docs/src/pages/migration/0.21.0.md
Normal file
|
@ -0,0 +1,208 @@
|
||||||
|
---
|
||||||
|
layout: ~/layouts/MainLayout.astro
|
||||||
|
title: Migrating to v0.21
|
||||||
|
description: How to migrate projects from Astro v0.20.
|
||||||
|
---
|
||||||
|
|
||||||
|
## Vite
|
||||||
|
|
||||||
|
Starting in v0.21, Astro is built with [Vite].
|
||||||
|
As a result, configurations written in `snowpack.config.mjs` should be moved into `astro.config.mjs`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// @ts-check
|
||||||
|
|
||||||
|
/** @type {import('astro').AstroUserConfig} */
|
||||||
|
export default ({
|
||||||
|
renderers: [],
|
||||||
|
vite: {
|
||||||
|
plugins: []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
To learn more about configuring Vite, please visit their [configuration guide](https://vitejs.dev/config/).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Aliasing
|
||||||
|
|
||||||
|
In Astro v0.21, import aliases can be added from `tsconfig.json` or `jsconfig.json`.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"@/components/*": ["components/*"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
_These aliases are integrated automatically into [VSCode](https://code.visualstudio.com/docs/languages/jsconfig) and other editors._
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Variables in Scripts & Styles
|
||||||
|
|
||||||
|
In Astro v0.21, server-side variables can be passed into client-side `<style>` or `<script>`.
|
||||||
|
|
||||||
|
```astro
|
||||||
|
---
|
||||||
|
// tick.astro
|
||||||
|
const colors = { foregroundColor: "rgb(221 243 228)", backgroundColor: "rgb(24 121 78)" }
|
||||||
|
---
|
||||||
|
<style define:vars={colors}>
|
||||||
|
h-tick {
|
||||||
|
background-color: var(--backgroundColor);
|
||||||
|
border-radius: 50%;
|
||||||
|
color: var(--foregroundColor);
|
||||||
|
height: 15px;
|
||||||
|
width: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<h-tick>✓</h-tick>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Components in Markdown
|
||||||
|
|
||||||
|
In Astro v0.21, Components from any framework can be used within Markdown files.
|
||||||
|
|
||||||
|
```md
|
||||||
|
---
|
||||||
|
Layout: '...'
|
||||||
|
setup: |
|
||||||
|
import MyReactComponent from '../components/MyReactComponent.jsx'
|
||||||
|
---
|
||||||
|
|
||||||
|
# Hydrating on visibility
|
||||||
|
|
||||||
|
<MyReactComponent client:visible>
|
||||||
|
|
||||||
|
# Hello world!
|
||||||
|
|
||||||
|
</MyReactComponent>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
In Astro v0.21, environment variables can be loaded from `.env` files in your project directory.
|
||||||
|
|
||||||
|
```ini
|
||||||
|
.env # loaded in all cases
|
||||||
|
.env.local # loaded in all cases, ignored by git
|
||||||
|
.env.[mode] # only loaded in specified mode
|
||||||
|
.env.[mode].local # only loaded in specified mode, ignored by git
|
||||||
|
```
|
||||||
|
|
||||||
|
For security purposes, only variables prefixed with `PUBLIC_` are accessible to your code.
|
||||||
|
|
||||||
|
```ini
|
||||||
|
SECRET_PASSWORD=password123
|
||||||
|
PUBLIC_ANYBODY=there
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example, `PUBLIC_ANYBODY` will be available as `import.meta.env.PUBLIC_ANYBODY` in server or client code, while `SECRET_PASSWORD` will not.
|
||||||
|
|
||||||
|
> In prior releases, these variables were prefixed with `SNOWPACK_PUBLIC_` and required the `@snowpack/plugin-env` plugin.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## File Extensions
|
||||||
|
|
||||||
|
In Astro v0.21, files need to be referenced by their actual extension, exactly as it is on disk.
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
// Div.tsx
|
||||||
|
export default function Div(props) {
|
||||||
|
return <div />
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example, `Div.tsx` would need to be referenced as `Div.tsx`, not `Div.jsx`.
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- import Div from './Div.jsx' // Astro v0.20
|
||||||
|
+ import Div from './Div.tsx' // Astro v0.21
|
||||||
|
```
|
||||||
|
|
||||||
|
This same change applies to styles.
|
||||||
|
|
||||||
|
```scss
|
||||||
|
// Div.scss
|
||||||
|
div {
|
||||||
|
all: unset
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- <link rel="stylesheet" href={Astro.resolve('./Div.css')}>
|
||||||
|
+ <link rel="stylesheet" href={Astro.resolve('./Div.scss')}>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
|
||||||
|
In Astro v0.21, Vite plugins may be configured within `astro.config.mjs`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
import { imagetools } from 'vite-imagetools'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
vite: {
|
||||||
|
plugins: [
|
||||||
|
imagetools()
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To learn more about Vite plugins, please visit their [plugin guide](https://vitejs.dev/guide/using-plugins.html).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Custom Renderers
|
||||||
|
|
||||||
|
In Astro v0.21, plugins should now use `viteConfig()`.
|
||||||
|
|
||||||
|
```diff
|
||||||
|
// renderer-svelte/index.js
|
||||||
|
+ import { svelte } from '@sveltejs/vite-plugin-svelte';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: '@astrojs/renderer-svelte',
|
||||||
|
client: './client.js',
|
||||||
|
server: './server.js',
|
||||||
|
- snowpackPlugin: '@snowpack/plugin-svelte',
|
||||||
|
- snowpackPluginOptions: { compilerOptions: { hydratable: true } },
|
||||||
|
+ viteConfig() {
|
||||||
|
+ return {
|
||||||
|
+ optimizeDeps: {
|
||||||
|
+ include: ['@astrojs/renderer-svelte/client.js', 'svelte', 'svelte/internal'],
|
||||||
|
+ exclude: ['@astrojs/renderer-svelte/server.js'],
|
||||||
|
+ },
|
||||||
|
+ plugins: [
|
||||||
|
+ svelte({
|
||||||
|
+ emitCss: true,
|
||||||
|
+ compilerOptions: { hydratable: true },
|
||||||
|
+ }),
|
||||||
|
+ ],
|
||||||
|
+ };
|
||||||
|
+ },
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To learn more about Vite plugins, please visit their [plugin guide](https://vitejs.dev/guide/using-plugins.html).
|
||||||
|
|
||||||
|
> In prior releases, these were configured with `snowpackPlugin` or `snowpackPluginOptions`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Snowpack]: https://www.snowpack.dev
|
||||||
|
[Vite]: https://vitejs.dev
|
|
@ -35,7 +35,7 @@ Onze gids over [Astro-componenten](/core-concepts/astro-components) helpt je doo
|
||||||
|
|
||||||
### API referentie
|
### API referentie
|
||||||
|
|
||||||
Deze documentatiesectie is handig als je meer details wilt weten over een bepaalde Astro API. [Configuratie referentie](/reference/configuration-reference) vermeldt bijvoorbeeld alle mogelijke configuratieopties die beschikbaar zijn. [Ingebouwde Componenten Referentie](/reference/builtin-components) geeft een overzicht van alle beschikbare kerncomponenten, zoals <Markdown /> en <Code />.
|
Deze documentatiesectie is handig als je meer details wilt weten over een bepaalde Astro API. [Configuratie referentie](/reference/configuration-reference) vermeldt bijvoorbeeld alle mogelijke configuratieopties die beschikbaar zijn. [Ingebouwde Componenten Referentie](/reference/builtin-components) geeft een overzicht van alle beschikbare kerncomponenten, zoals `<Markdown />` en `<Code />`.
|
||||||
|
|
||||||
### Documentatie versies
|
### Documentatie versies
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import Layout from '../layouts/MainLayout.astro';
|
import Layout from '../layouts/MainLayout.astro';
|
||||||
import Card from '../components/Card.astro';
|
import Card from '../components/Card.astro';
|
||||||
import {Markdown} from 'astro/components';
|
import { Markdown } from 'astro/components';
|
||||||
import themes from '../data/themes.json';
|
import themes from '../data/themes.json';
|
||||||
import components from '../data/components.json';
|
import components from '../data/components.json';
|
||||||
---
|
---
|
||||||
|
|
Loading…
Reference in a new issue