我目前正在编写用Scala编写的API文档.我想包括几个图表,以使代码更容易理解.
我想知道在哪里放置资源(如图表),以便可以通过调用scaladoc自动导入它们,以及如何在代码文档中引用这些资源.
例如,让我们假设我使用sbt.我的代码位于src/main/scala
目录中.以下是包的scala包对象的示例foo
:
/** * Provides main classes of the bar API. * * ==Overview== * Main classes are depicted on the following diagram: * * */ package object foo { }
'diagram-foo.svg'应该放在我的项目中以便scaladoc可见?随后,什么是正确的值path/to/
的img
标签?
警告这可能是一个黑客,因为我对scaladoc知之甚少.
由于<img src="../path/to/diagram-foo.svg" />
只是一个普通的HTML,您只需要将必要的资产复制到doc目标路径,以便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)
显然,放置图像的目录是任意的,当您另外决定时,只需相应地更新自定义任务.