8

私は現在、Scala で書かれた API のドキュメントを書いています。コードをより理解しやすくするために、いくつかの図を含めたいと思います。

リソース (ダイアグラムなど) を scaladoc の呼び出しによって自動的にインポートできるようにするには、どこにリソースを配置すればよいか、コードのドキュメントでこれらのリソースを参照する方法を考えています。

たとえば、sbt を使用しているとします。私のコードはsrc/main/scalaディレクトリにあります。package の scala パッケージ オブジェクトの例を次に示しますfoo

/**
 * Provides main classes of the bar API.
 *
 * ==Overview==
 * Main classes are depicted on the following diagram:
 * <img src="path/to/diagram-foo.svg" />
 *
 */
package object foo {
}

scaladoc から見えるようにするには、'diagram-foo.svg' をプロジェクトのどこに置くべきですか? 続いて、タグpath/to/内の正しい値は?img

4

2 に答える 2

10

警告私は scaladoc についてほとんど知らないので、これはハックかもしれません。

は通常の HTML であるため<img src="../path/to/diagram-foo.svg" />、必要なアセットをドキュメント ターゲット パスにコピーするだけでimg解決できます。

ディレクトリを使用して必要なものを提供する次のcopyDocAssetsTaskカスタムタスクを使用できます。ポイントは、ドキュメントが生成されるディレクトリに画像をコピーすることです。(doc in Compile)src/main/doc-resources(target in (Compile, doc)).value

build.sbt :

lazy val copyDocAssetsTask = taskKey[Unit]("Copy doc assets")

copyDocAssetsTask := {
  println("Copying doc assets")
  val sourceDir = file("src/main/doc-resources")
  val targetDir = (target in (Compile, doc)).value
  IO.copyDirectory(sourceDir, targetDir)
}

copyDocAssetsTask <<= copyDocAssetsTask triggeredBy (doc in Compile)

明らかに、画像を配置するディレクトリは任意です。そうでない場合は、それに応じてカスタム タスクを更新してください。

于 2014-06-14T22:44:30.423 に答える