Gerar documentação do projeto

Justificativa

A invocação correta de módulos e funções auxiliares pode ser intimidante porque

  • estes são gerados dinamicamente (por exemplo, ao criar um novo projeto ou adicionar um novo recurso)
  • eles não são documentados explicitamente (por exemplo, MyApp.ErrorHelpers.error_tag)
  • a documentação não cobre todos os exemplos (por exemplo, MyApp.Router.Helpers.*_path em Phoenix.Router).

Embora os auxiliares criados estejam espalhados por todo o seu projeto, sua localização segue uma lógica sólida. Você pode se acostumar com eles bem rápido e, felizmente, quando você gera um projeto com o Phoenix, o código é enviado com a documentação através dos atributos do módulo @doc e @moduledoc do Elixir.

Esses documentos não se limitam apenas a ajudantes, mas você também pode

  • veja seu projeto dividido por submódulos/funções/macros
  • adicione sua própria documentação
  • procure todas as funções que foram geradas no namespace do seu projeto (por exemplo, MyApp.Repo contém implementações de função de retorno de chamada de Ecto.Repo)

Gerando os documentos

Para gerar documentação de seu código-fonte, adicione ex_doc como dependência em seu arquivo mix.exs:

# config/mix.exs

def deps do
  [{:ex_doc, "~> 0.11", only: :dev}]
end

Você pode usar Markdown dentro dos atributos Elixir @doc e @moduledoc.

Em seguida, execute mix deps.get para buscar e compilar os novos módulos e gerar a documentação do projeto com mix docs. Um exemplo de saída é o documentos oficiais do Elixir.

Para servi-los imediatamente, use mix docs --output priv/static/doc e navegue até my_app_url_or_ip/doc/index.html.

Leitura adicional:

A maior parte deste guia é referenciada em Receitas de Elixir.