# `Expresso.PlacementTransformer`
[🔗](https://github.com/rellen/expresso/blob/main/lib/expresso/placement_transformer.ex#L1)

The Spark transformer of the places of the elements

It runs one time for each deck module at compile time, before the other
transformers. It calls `Expresso.Placement.slide/1` for each slide, and an
error becomes a `Spark.Error.DslError` with the path of the slide.

The check changes nothing. It is a transformer and not a verifier, because
Spark raises an error from a transformer, and the compile stops. Spark runs
a verifier in an `@after_verify` callback, and Elixir reports its error as a
warning.

# `after?`

# `after_compile?`

# `before?`

```elixir
@spec before?(module()) :: boolean()
```

Run this transformer before each other transformer

# `transform`

```elixir
@spec transform(map()) :: {:ok, map()} | {:error, Spark.Error.DslError.t()}
```

Check the place of each element of each slide of the deck

---

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