#documentation #elixir #ex-doc
#Документация #эликсир #ex-doc
Вопрос:
Недавно я создал свой первый шестнадцатеричный пакет; Ecto.Rut и я сейчас работаем над его документацией. Поскольку он использует Ecto.Repo
в конце и возвращает Ecto.Schema
и Ecto.Changeset
вводит, я хотел связать их в @specs .
Внутренние и базовые типы Elixir (такие как Keyword.t
) автоматически связываются, но ex_doc не связывает внешние типы, определенные в модулях Ecto. Как мне это сделать?
В настоящее время я пытался указать полное имя модуля в @spec
, но это не работает:
@callback all(opts :: Keyword.t) :: [Ecto.Schema.t] | no_return
Комментарии:
1. Возможно, это не поддерживается. Вы можете написать вручную
@doc
или@moduledoc
следующим образом: github.com/phoenixframework/phoenix/blob /…2. @ma2gedev На сегодняшний день он официально поддерживается.
3. @pdimitar вау! приятно!
Ответ №1:
После некоторого обсуждения на ElixirForum Хосе добавил эту функцию. Начиная с ExDoc v0.14.2
и далее, он поддерживает автоматическое связывание для внешних модулей зависимостей.
Со страницы Github:
При обращении к модулю, функции, типу или обратному вызову из любой из ваших зависимостей, например
MyDep
, ExDoc автоматически свяжет документацию по этой зависимости с hexdocs.pm (ссылка может быть настроена с помощью опции :deps в вашем mix.exs)
Это означает, что простое упоминание полного имени модуля приведет к автоматической ссылке типов, обратных вызовов, модулей и методов. Итак, при обновлении до последней версии ExDoc мой существующий код теперь автоматически связывается:
@callback all(opts :: Keyword.t) :: [Ecto.Schema.t] | no_return