ex_doc

elixirは「ドキュメントが第一級のオブジェクト」という面白い概念をもっている。どういう事かというと、プログラムのドキュメントをプログラムから操作できるという事である。doxygenなどは、プログラムのコメントを書式化するものだが、elixirではモジュール属性として設定されているモジュールドキュメントを書式化する。そのためのツールがex_docである。

モジュールドキュメント

@moduledocあるいは、@docによりドキュメントを記述する。
書式はmarkdownがそのまま使えるがインデントのベースが@moduledoc/@docが置かれたレベルであることに注意する。

defmodule M1 do
  @moduledoc """ 
  これはM1モジュールです。
  """
  @doc """
  func1はnil値を返します。
  """
  def func1() do
     nil
  end
end

コンパイルの仕方

mixを使っている場合、
mix.exsに

  defp deps do
    [ {:ex_doc, github: "elixir-lang/ex_doc" }
    ]
  end

としておき、

  mix docs

でdocsディレクトリにドキュメントが生成される。