# `PolyPost`
[🔗](https://git.sr.ht/~angelolakra/poly_post)

# `build`
*since 0.2.0* 

```elixir
@spec build(PolyPost.Resource.Unit.t()) ::
  {:ok, {PolyPost.Resource.name(), PolyPost.Resource.content()}}
  | {:error, term()}
  | {:error, term(), term()}
```

Builds a list of raw content into a list of resource content without
storing it.

# `clear`
*since 0.2.0* 

```elixir
@spec clear(PolyPost.Resource.name()) :: :ok | {:error, :not_found}
```

Clears all content for a specific resource

# `clear_all`
*since 0.2.0* 

```elixir
@spec clear_all() :: :ok
```

Clears all content out of all resources

# `fetch`
*since 0.2.0* 

```elixir
@spec fetch(PolyPost.Resource.name()) ::
  {:ok, [PolyPost.Resource.Unit.t()]} | {:error, term()}
```

Fetches raw content from git and then a path on disk listed under config.

# `fetch_from_path`
*since 0.2.0* 

```elixir
@spec fetch_from_path(PolyPost.Resource.name()) ::
  {:ok, [PolyPost.Resource.Unit.t()]} | {:error, term()}
```

Fetches raw content from a path on disk listed under config.

# `list_resources`
*since 0.2.0* 

```elixir
@spec list_resources() ::
  {:ok, keyword(PolyPost.Resource.config())}
  | {:error, :resources_not_found}
  | {:error, :config_not_found}
```

List all resources and their metadata

# `store`
*since 0.2.0* 

```elixir
@spec store(PolyPost.Resource.name(), PolyPost.Resource.content()) ::
  :ok | {:error, term()}
```

Stores built content in a Depot under a specific resource name.

---

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