zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

ex_doc.ex (1382B)


      1 defmodule ExDoc do
      2   @moduledoc false
      3   @ex_doc_version Mix.Project.config()[:version]
      4 
      5   @doc """
      6   Returns the ExDoc version (used in templates).
      7   """
      8   @spec version :: String.t()
      9   def version, do: @ex_doc_version
     10 
     11   @doc """
     12   Generates documentation for the given `project`, `vsn` (version)
     13   and `options`.
     14   """
     15   @spec generate_docs(String.t(), String.t(), Keyword.t()) :: atom
     16   def generate_docs(project, vsn, options)
     17       when is_binary(project) and is_binary(vsn) and is_list(options) do
     18     config = ExDoc.Config.build(project, vsn, options)
     19 
     20     if processor = options[:markdown_processor] do
     21       ExDoc.Markdown.put_markdown_processor(processor)
     22     end
     23 
     24     docs = config.retriever.docs_from_dir(config.source_beam, config)
     25     find_formatter(config.formatter).run(docs, config)
     26   end
     27 
     28   # Short path for programmatic interface
     29   defp find_formatter(modname) when is_atom(modname), do: modname
     30 
     31   defp find_formatter("ExDoc.Formatter." <> _ = name) do
     32     [name]
     33     |> Module.concat()
     34     |> check_formatter_module(name)
     35   end
     36 
     37   defp find_formatter(name) do
     38     [ExDoc.Formatter, String.upcase(name)]
     39     |> Module.concat()
     40     |> check_formatter_module(name)
     41   end
     42 
     43   defp check_formatter_module(modname, argname) do
     44     if Code.ensure_loaded?(modname) do
     45       modname
     46     else
     47       raise "formatter module #{inspect(argname)} not found"
     48     end
     49   end
     50 end