# `ExDoc.Formatter`
[🔗](https://github.com/elixir-lang/ex_doc/blob/v0.40.3/lib/ex_doc/formatter.ex#L1)

Specifies the custom formatter API.

# `autolink_options`
*optional* 

```elixir
@callback autolink_options() :: [highlight_tag: String.t(), extension: String.t()]
```

A list of options to configure autolinking behaviour.

# `run`

```elixir
@callback run(ExDoc.Formatter.Config.t(), [ExDoc.ModuleNode.t()], [
  ExDoc.ExtraNode.t() | ExDoc.URLNode.t()
]) ::
  %{entrypoint: String.t(), build: [String.t()]}
```

The callback that must be implemented by formatters.

It receives the configuration, a list of nodes,
and it must return the documentation entrypoint
plus a list of files built inside the output folder.

# `copy_assets`

Copy `assets` to the given `output` folder.

# `copy_cover`

Copies the cover to the given location in the output directory.

# `copy_favicon`

Copies the favicon to the given location in the output directory.

# `copy_logo`

Copies the logo to the given location in the output directory.

---

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