# `MishkaCmsCore.Dev.LocalhostPages`
[🔗](https://github.com/mishka-group/mishka_cms_core/blob/v0.0.1/lib/mishka_cms_core/dev/localhost_pages.ex#L5)

The dev showcase: what `localhost` answers on top of the starter site every seeded site gets.

One module per site, because a page here names THIS site's components and THIS site's hooks by
name and a list shared between sites cannot. `MishkaCmsCore.Dev.Seeds` picks the module out of
`@site_configs`; `MishkaCmsCore.Install.StarterContent` has already written the home page a
production install writes, which `/` is on this site too, and from
`MishkaCmsCore.Dev.StarterPages` the about, contact and privacy pages these link back to.

The first of the pages below is the showcase, at `/:lang/showcase`: the page that used to stand at
`/` in dev, now that `/` is the home a first install writes. The header links to it beside the
demos.

Between them the pages below use every part of a runtime page a developer has to be able to see
working: the UI kit's interactive components, a page form with uploads, page events and infos,
`pb:say`, a site JS hook and a global one, a `:param` capture, a `*rest` capture, a page that is
switched off, and the `/:lang` path mode every address here is written in.

# `about`

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

The about page this site answers `/:lang/about` with, in place of the plain one
`MishkaCmsCore.Dev.StarterPages` writes: the same page, plus a container hidden from visitors (`MishkaCmsCore.Runtime.PageBuilder.Visibility`) holding
components and containers of its own — what the builder's Hide from visitors looks like when it
opens, and what the live page leaves out.

# `nav`

```elixir
@spec nav() :: [{String.t(), String.t()}]
```

The header links the layout is built with — see `MishkaCmsCore.Install.StarterContent`.

# `pages`

```elixir
@spec pages(%{required(atom()) =&gt; [String.t()]}) :: [map()]
```

The pages, as `MishkaCmsCore.Runtime.PageProvision` definitions.

`pictures` is `MishkaCmsCore.Dev.SeedMedia.images/1` for this site, which these pages do not use —
every site's module is asked the same question and `MishkaCmsCore.Dev.SiteAPages` answers it with
faces from the library.

---

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