ExDoc:获取源链接 与私有存储库一起使用

问题描述 投票:0回答:1

我正在尝试为我的项目生成文档。

我已将{:ex_doc, "~> 0.16", only: :dev, runtime: false}添加到我的deps,将source_url设置到我的存储库并运行mix docs

我正在使用Github Enterprise,所以我的设置是这样的:source_url: "https://my.private.repo/adam/projname"

但是,在生成的文档中,源的所有链接都直接指向https://my.private.repo/adam/projname而不是relvant文件和行号。

我想做的一个例子:

https://hexdocs.pm/ex_doc/Mix.Tasks.Docs.html

此文件右上角的链接链接到https://github.com/elixir-lang/ex_doc/blob/v0.18.3/lib/mix/tasks/docs.ex#L1

在我生成的文档中,每个链接都链接到https://my.private.repo/adam/projname

我已经尝试将source_ref设置为master,但这没有任何区别。

如何让ExDoc生成到源代码的正确特定链接?

这是我的mix.exs文件的简化版本:

defmodule ProjectName.MixProject do
  use Mix.Project

  def project do
    [
      app: :project_name,
      version: "0.1.0",
      elixir: "~> 1.6",
      deps: deps(),

      # Docs
      name: "ProjectName",
      source_url: "https://my.private.repo/adam/projname"
    ]
  end
end
elixir documentation-generation
1个回答
0
投票

当您使用以下域名之一ex_doc时,source_url将自动找出在何处找到该文件。 ex_docs source

  • github.com
  • bitbucket.com
  • gitlab.com

在域不同的情况下,您必须在source_url_pattern文件的docs部分提供mix.exs

  def project do
    [
      app: :test_exdoc,
      version: "0.1.0",
      elixir: "~> 1.7-dev",
      start_permanent: Mix.env() == :prod,
      source_url: "https://yourprivate-repo.com/adam/projname",
      deps: deps(),
      docs: [
        source_url_pattern: "https://yourprivate-repo.com/adam/projname/blob/master/%{path}#L%{line}"
      ]
    ]
  end
© www.soinside.com 2019 - 2024. All rights reserved.