Skip to content

Commit

Permalink
Integration Docs Next Steps (#3677)
Browse files Browse the repository at this point in the history
* sitemap readme skeleton + first sections

* Revert "sitemap readme skeleton + first sections"

This reverts commit cc55b31.

* sitemap readme skeleton + first sections

* remove canonicalURL option from sitemap

* add customPages option to readme

* sitemap examples

* partytown

* deno run command

* reference deno example

* node readme

* netlify & vercel readmes

* note that telemetry is installed

* telemetry is *enabled*, not installed

* Update packages/integrations/vercel/README.md

Co-authored-by: Chris Swithinbank <[email protected]>

* Update packages/integrations/vercel/README.md

Co-authored-by: Chris Swithinbank <[email protected]>

* readme -> README

* Update packages/integrations/deno/readme.md

Co-authored-by: Chris Swithinbank <[email protected]>

* Update packages/integrations/deno/readme.md

Co-authored-by: Chris Swithinbank <[email protected]>

* qualify they

* Update packages/integrations/sitemap/README.md

Co-authored-by: Chris Swithinbank <[email protected]>

* Uppercase README names

* Update packages/integrations/partytown/README.md

Co-authored-by: Chris Swithinbank <[email protected]>

* imports -> import typo

* update changeset

Co-authored-by: Chris Swithinbank <[email protected]>
  • Loading branch information
Dan Jutan and delucis authored Jun 30, 2022
1 parent 75ffab7 commit 8045c8a
Show file tree
Hide file tree
Showing 11 changed files with 666 additions and 314 deletions.
11 changes: 11 additions & 0 deletions .changeset/yellow-cameras-ring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
'@astrojs/deno': patch
'@astrojs/netlify': patch
'@astrojs/node': patch
'@astrojs/partytown': patch
'@astrojs/sitemap': patch
'@astrojs/vercel': patch
'@astrojs/telemetry': patch
---

Update READMEs
139 changes: 139 additions & 0 deletions packages/integrations/deno/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# @astrojs/deno 🦖

This adapter allows Astro to deploy your SSR site to Deno targets.

- <strong>[Why Astro Deno](#why-astro-deno)</strong>
- <strong>[Installation](#installation)</strong>
- <strong>[Usage](#usage)</strong>
- <strong>[Configuration](#configuration)</strong>
- <strong>[Examples](#examples)</strong>
- <strong>[Troubleshooting](#troubleshooting)</strong>
- <strong>[Contributing](#contributing)</strong>
- <strong>[Changelog](#changelog)</strong>

## Why Astro Deno

If you're using Astro as a static site builder—its behavior out of the box—you don't need an adapter.

If you wish to [use server-side rendering (SSR)](https://docs.astro.build/en/guides/server-side-rendering/), Astro requires an adapter that matches your deployment runtime.

[Deno](https://deno.land/) is a runtime similar to Node, but with an API that's more similar to the browser's API. This adapter provides access to Deno's API and creates a script to run your project on a Deno server.

## Installation

First, install the `@astrojs/deno` package using your package manager. If you're using npm or aren't sure, run this in the terminal:
```sh
npm install @astrojs/deno
```

Then, install this adapter in your `astro.config.*` file using the `adapter` property:

__astro.config.mjs__

```js
import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
// ...
adapter: deno()
});
```

## Usage

After [performing a build](https://docs.astro.build/en/guides/deploy/#building-the-app) there will be a `dist/server/entry.mjs` module. You can start a server by importing this module in your Deno app:

```js
import './dist/entry.mjs';
```

See the `start` option below for how you can have more control over starting the Astro server.

You can also run the script directly using deno:
```
deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs
```


## Configuration

To configure this adapter, pass an object to the `deno()` function call in `astro.config.mjs`.

__astro.config.mjs__
```js
import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
adapter: deno({
//options go here
})
});
```

<details>
<summary><strong>start</strong></summary>

<br/>

This adapter automatically starts a server when it is imported. You can turn this off with the `start` option:

```js
import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
adapter: deno({
start: false
})
});
```

If you disable this, you need to write your own Deno web server. Import and call `handle` from the generated entry script to render requests:

```ts
import { serve } from "https://deno.land/[email protected]/http/server.ts";
import { handle } from './dist/entry.mjs';

serve((req: Request) => {
// Check the request, maybe do static file handling here.

return handle(req);
});
```
</details>

<details>
<summary><strong>port</strong> and <strong>hostname</strong></summary>

<br/>

You can set the port (default: `8085`) and hostname (default: `0.0.0.0`) for the deno server to use. If `start` is false, this has no effect; your own server must configure the port and hostname.

```js
import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
adapter: deno({
port: 8081,
hostname: 'myhost'
})
});
```
</details>

## Examples

The [Astro Deno](https://github.com/withastro/astro/tree/main/examples/deno) example includes a `preview:deno` command that runs the entry script directly. Run `npm run build` then `npm run preview:deno` to run the production deno server.

## Troubleshooting

## Contributing

This package is maintained by Astro's Core team. You're welcome to submit an issue or PR!

## Changelog

[astro-integration]: https://docs.astro.build/en/guides/integrations-guide/
66 changes: 0 additions & 66 deletions packages/integrations/deno/readme.md

This file was deleted.

94 changes: 78 additions & 16 deletions packages/integrations/netlify/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,36 @@
# @astrojs/netlify

Deploy your server-side rendered (SSR) Astro app to [Netlify](https://www.netlify.com/).
This adapter allows Astro to deploy your SSR site to [Netlify](https://www.netlify.com/).

Use this adapter in your Astro configuration file, alongside a valid deployment URL:
- <strong>[Why Astro Netlify](#why-astro-netlify)</strong>
- <strong>[Installation](#installation)</strong>
- <strong>[Usage](#usage)</strong>
- <strong>[Configuration](#configuration)</strong>
- <strong>[Examples](#examples)</strong>
- <strong>[Troubleshooting](#troubleshooting)</strong>
- <strong>[Contributing](#contributing)</strong>
- <strong>[Changelog](#changelog)</strong>


## Why Astro Netlify

If you're using Astro as a static site builder—its behavior out of the box—you don't need an adapter.

If you wish to [use server-side rendering (SSR)](https://docs.astro.build/en/guides/server-side-rendering/), Astro requires an adapter that matches your deployment runtime.

[Netlify](https://www.netlify.com/) is a deployment platform that allows you to host your site by connecting directly to your GitHub repository. This adapter enhances the Astro build process to prepare your project for deployment through Netlify.


## Installation

First, install the `@astrojs/netlify` package using your package manager. If you're using npm or aren't sure, run this in the terminal:
```sh
npm install @astrojs/netlify
```

Then, install this adapter in your `astro.config.*` file using the `adapter` property. Note: there are two different adapters, one for Netlify Functions and one for Edge Functions. See [Edge Functions](#edge-functions) below on importing the latter.

__astro.config.mjs__

```js
import { defineConfig } from 'astro/config';
Expand All @@ -13,15 +41,7 @@ export default defineConfig({
});
```

After you build your site the `netlify/` folder will contain [Netlify Functions](https://docs.netlify.com/functions/overview/) in the `netlify/functions/` folder.

Now you can deploy!

```shell
netlify deploy --build
```

## Edge Functions
### Edge Functions

Netlify has two serverless platforms, Netlify Functions and Netlify Edge Functions. With Edge Functions your code is distributed closer to your users, lowering latency. You can use Edge Functions by changing the import in your astro configuration file:

Expand All @@ -34,12 +54,31 @@ export default defineConfig({
adapter: netlify(),
});
```
## Usage

[Read the full deployment guide here.](https://docs.astro.build/en/guides/deploy/vercel)

After [performing a build](https://docs.astro.build/en/guides/deploy/#building-the-app) the `netlify/` folder will contain [Netlify Functions](https://docs.netlify.com/functions/overview/) in the `netlify/functions/` folder.

Now you can deploy. Install the [Netlify CLI](https://docs.netlify.com/cli/get-started/) and run:

```shell
netlify deploy --build
```

The [Netlify Blog post on Astro](https://www.netlify.com/blog/how-to-deploy-astro/) and the [Netlify Documentation](https://docs.netlify.com/integrations/frameworks/astro/) provide more information on how to use this integration to deploy to Netlify.


## Configuration

### dist
To configure this adapter, pass an object to the `netlify()` function call in `astro.config.mjs` - there's only one possible configuration option:

We build to a `dist` directory at the base of your project. To change this, use the `dist` option:
<details>
<summary><strong>dist</strong></summary>

<br/>

We build to the `dist` directory at the base of your project. To change this, use the `dist` option:

```js
import { defineConfig } from 'astro/config';
Expand All @@ -56,14 +95,19 @@ And then point to the dist in your `netlify.toml`:
```toml
[functions]
directory = "dist/functions"
directory = "dist/functions"
```
### binaryMediaTypes
</details>
<details>
<summary>
<strong>binaryMediaTypes</strong>
</summary>
> This option is only needed for the Functions adapter and is not needed for Edge Functions.
Netlify Functions sending binary data in the `body` need to be base64 encoded. The `@astrojs/netlify/functions` adapter handles this automatically based on the `Content-Type` header.
Netlify Functions requires binary data in the `body` to be base64 encoded. The `@astrojs/netlify/functions` adapter handles this automatically based on the `Content-Type` header.
We check for common mime types for audio, image, and video files. To include specific mime types that should be treated as binary data, include the `binaryMediaTypes` option with a list of binary mime types.
Expand All @@ -82,3 +126,21 @@ export function get() {
});
}
```
</details>
## Examples
- The [Astro Netlify Edge Starter](https://github.com/sarahetter/astro-netlify-edge-starter) provides an example and a guide in the README.
- [Browse Astro Netlify projects on GitHub](https://github.com/search?q=%22%40astrojs%2Fnetlify%22+filename%3Apackage.json&type=Code) for more examples!
## Troubleshooting
## Contributing
This package is maintained by Astro's Core team. You're welcome to submit an issue or PR!
## Changelog
[astro-integration]: https://docs.astro.build/en/guides/integrations-guide/
Loading

0 comments on commit 8045c8a

Please sign in to comment.