# coelho v0.2.0 - Table of Contents

> Structured rich text for Phoenix: schema, validation, storage and rendering

## Pages

- [Coelho](readme.md)
- [Changelog](changelog.md)

## Modules

- [Coelho](Coelho.md): Structured rich text for Elixir.
- [Coelho.HTML](Coelho.HTML.md): Importing existing HTML into a document.

- Document
  - [Coelho.Document](Coelho.Document.md): Validation, normalisation and plain text extraction of documents.
  - [Coelho.Document.Error](Coelho.Document.Error.md): A single validation failure, located in the document tree.
  - [Coelho.Render](Coelho.Render.md): Turns a validated document into HTML.

- Schema
  - [Coelho.Schema](Coelho.Schema.md): A rich text schema: the set of node and mark types a document may use.
  - [Coelho.Schema.Attr](Coelho.Schema.Attr.md): Specification and validation of a single node or mark attribute.
  - [Coelho.Schema.ContentExpression](Coelho.Schema.ContentExpression.md): Parser and matcher for ProseMirror-style content expressions.
  - [Coelho.Schema.Default](Coelho.Schema.Default.md): The schema Coelho ships with.
  - [Coelho.Schema.MarkSpec](Coelho.Schema.MarkSpec.md): Specification of a single mark type, such as `bold` or `link`.
  - [Coelho.Schema.NodeSpec](Coelho.Schema.NodeSpec.md): Specification of a single node type.

- Phoenix
  - [Coelho.Ecto](Coelho.Ecto.md): Declaring a rich text field on an Ecto schema.
  - [Coelho.Ecto.Type](Coelho.Ecto.Type.md): Ecto type storing a Coelho document in a `:map` (`jsonb`) column.
  - [Coelho.LiveView](Coelho.LiveView.md): The editor, as a function component.
  - [Coelho.Plug.Attachments](Coelho.Plug.Attachments.md): Serves attachment bytes, behind a signature.

- Ash
  - [Coelho.Ash.Type](Coelho.Ash.Type.md): A Coelho document as an Ash attribute, stored in a `:map` column.

- Attachments
  - [Coelho.Attachment](Coelho.Attachment.md): Metadata of one uploaded file, addressed by key.
  - [Coelho.Attachments](Coelho.Attachments.md): Attachments referenced by key, resolved to a URL at render time.
  - [Coelho.Storage](Coelho.Storage.md): Where the bytes of an attachment live.
  - [Coelho.Storage.Disk](Coelho.Storage.Disk.md): Attachment bytes on the local filesystem.

## Mix Tasks

- [mix coelho.gen.migration](Mix.Tasks.Coelho.Gen.Migration.md): Generates the migration for `Coelho.Attachment`.

