# `SferaDoc.TemplateEngine.Adapter`
[🔗](https://github.com/sfera-lab/sfera-doc/blob/v0.1.0/lib/sfera_doc/template_engine/adapter.ex#L1)

Behaviour for template engines used by SferaDoc.

Implementations are responsible for parsing template source and rendering it
into HTML.

# `ast`

```elixir
@type ast() :: term()
```

# `reason`

```elixir
@type reason() :: any()
```

# `parse`

```elixir
@callback parse(String.t()) :: {:ok, ast()} | {:error, reason()}
```

# `render`

```elixir
@callback render(ast(), map()) :: {:ok, binary()} | {:error, reason()}
```

---

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