View Source edoc_layout_chunks (edoc v1.3)

Convert EDoc module documentation to an EEP-48docs_v1 chunk.

This layout is only expected to work with edoc_doclet_chunks. Section Using the EDoc API in the EDoc User's Guide shows an example of using this module.

This module breaks the convention stated in edoc_doclet to not rely on edoc.hrl in doclets and layouts. It uses #entry{} records directly to recover information that is not otherwise available to layouts.

See also: edoc_doclet_chunks, //stdlib/shell_docs.

Summary

Types

The Docs v1 chunk according to EEP 48.

A tuple equivalent to the #docs_v1_entry{} record, but with the record name field skipped.

Subtype of xmerl_xpath:docNodes(). It corresponds to #xmlElement.content as defined by xmerl.hrl, sans the #xmlDecl{}.

Functions

Convert EDoc module documentation to an EEP-48 style doc chunk.

Types

-type beam_language() :: atom().
-type doc() :: #{doc_language() => doc_string()} | none | hidden.
-type doc_language() :: binary().
-type doc_string() :: binary().
-type docs_v1() ::
    #docs_v1{anno :: erl_anno:anno(),
             beam_language :: beam_language(),
             format :: mime_type(),
             module_doc :: doc(),
             metadata :: metadata(),
             docs :: [docs_v1_entry()]}.

The Docs v1 chunk according to EEP 48.

-type docs_v1_entry() ::
    {_KindNameArity :: {atom(), atom(), arity()},
     _Anno :: erl_anno:anno(),
     _Signature :: signature(),
     _Doc :: doc(),
     _Metadata :: metadata()}.

A tuple equivalent to the #docs_v1_entry{} record, but with the record name field skipped.

-type metadata() :: map().
-type mime_type() :: binary().
-type signature() :: [binary()].
-type xmerl_attribute() ::
    #xmlAttribute{name :: term(),
                  expanded_name :: term(),
                  nsinfo :: term(),
                  namespace :: term(),
                  parents :: term(),
                  pos :: term(),
                  language :: term(),
                  value :: term(),
                  normalized :: term()}.
-type xmerl_doc_node() ::
    #xmlComment{parents :: term(), pos :: term(), language :: term(), value :: term()} |
    #xmlElement{name :: term(),
                expanded_name :: term(),
                nsinfo :: term(),
                namespace :: term(),
                parents :: term(),
                pos :: term(),
                attributes :: term(),
                content :: term(),
                language :: term(),
                xmlbase :: term(),
                elementdef :: term()} |
    #xmlPI{name :: term(), parents :: term(), pos :: term(), value :: term()} |
    #xmlText{parents :: term(),
             pos :: term(),
             language :: term(),
             value :: term(),
             type :: term()}.

Subtype of xmerl_xpath:docNodes(). It corresponds to #xmlElement.content as defined by xmerl.hrl, sans the #xmlDecl{}.

-type xpath() :: string().

Functions

-spec module(edoc:edoc_module(), proplists:proplist()) -> binary().

Convert EDoc module documentation to an EEP-48 style doc chunk.