# `Astral.Route`
[🔗](https://github.com/elixir-volt/astral/blob/v0.7.0/lib/astral/route.ex#L1)

A generated output route.

Routes are produced by plugins for files that are not ordinary pages, such as
feeds, sitemaps, tag indexes, and pagination pages.

# `t`

```elixir
@type t() :: %Astral.Route{
  assigns: map(),
  content_type: String.t(),
  kind: atom() | nil,
  metadata: map(),
  output_path: String.t() | nil,
  path: String.t()
}
```

# `match?`

```elixir
@spec match?(String.t(), String.t()) :: boolean()
```

Return true when a request path matches a route path with or without a trailing slash.

# `new`

```elixir
@spec new(String.t(), Astral.Config.t(), keyword()) :: t()
```

Build a generated route and resolve its output path under the site outdir.

# `normalize`

```elixir
@spec normalize(String.t()) :: String.t()
```

Normalize a route path for matching.

# `output_relative`

```elixir
@spec output_relative(String.t()) :: String.t()
```

Return the output-relative path for a route.

# `with_output_path`

```elixir
@spec with_output_path(t(), Astral.Config.t()) :: t()
```

Resolve a route's output path under the site outdir when it is not set.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
