我如何获得 Erlang 的 edoc:application(myproject)。上班?

How do I get Erlang's edoc:application(myproject). to work?

我正在努力找出 Erlang 的自动文档系统。该文档建议使用记录在 http://erlang.org/doc/man/edoc.html#application-2

中的 edoc 模块的应用程序函数

我已经这样设置了我的子目录:

myproject/
├── src/
├── ebin/
│   └── myproject.app
├── include/
├── priv/
└── doc/
    └── overview.edoc

我无法从文档中找出 edoc 函数 application 中引用的应用程序是否与 myproject.app 文件有任何关系,但它没有好像。

我得到的错误是:

1> edoc:application(myproject).
edoc: cannot find application directory for 'myproject'.
** exception exit: error
     in function  edoc:application/2 (edoc.erl, line 165)

任何有关使它起作用的魔法咒语的任何建议都非常感谢。

application(Application::atom(), Options::proplist()) -> ok

Run EDoc on an application in its default app-directory.

我不知道它在哪里 :o)

您可以在 myproject 级别使用命令 edoc:application(myproject,".",[]).,它将在 src 中创建一个 doc 目录。

application(Application::atom(), Dir::filename(), Options::proplist()) -> ok

Run EDoc on an application located in the specified directory.

我更喜欢使用 rebar3 创建和管理应用程序,它通过一个简单的配置文件为您完成大量工作。

为了将文档放在 ./myproject/doc 子目录中,而不是默认的 ./myproject/ebin/doc 目录中,我使用了项目根目录中的以下 运行 ./myproject/

edoc:application(myproject, ".", [{dir, "doc"}, {subpackages, true}]).

让我感到困惑的是 overview.edoc 中提到的文件需要相对于 ./doc 子目录(回想起来这很有意义),如:

@headerfile "../include/global.hrl"