对于应用程序内帮助浏览器,我想呈现API文档。不幸的是,Scaladoc似乎只生成充满可怕JavaScript内容的HTML文件,因此即使使用相当重的组件(例如SwingBox(尽管它确实具有非常好的CSS))也无法呈现这些文件。
所以我的问题是:我可以利用Scaladoc工具或其API(如果有)来生成一些中间表示形式,然后将其写出到自定义Markdown文件或静态HTML页面中吗?
最佳答案
您正在寻找的是一个自定义的Doclet
实现,可以通过-doc-generator
的scaladoc
命令行选项使用。我无法回答预先存在的Doclet
实现是否可以满足您的需求,但是需要探索的一个有前途的实现是Extradoc。但是,它已经有一段时间没有更新了。
在较低级别,您可以通过子类化 Doclet
和关联的API(例如 HTMLFactory
和 Template
)来实现自己的实现。除了Extradoc 之外,似乎没有任何/许多示例可以做到这一点。不幸的是,在这个领域,ScalaDoc似乎没有得到与JavaDoc相同的关注。 Per these release notes的2.12版本具有改进的ScalaDoc接口(interface),但我认为它不会改变对JavaScript的依赖性。
我还遇到了Nyandoc,它将ScalaDoc和JavaDoc转换为Markdown。也许作为即时格式,它可以使您更接近目标。
所有的说,是使用JavaFX的 WebView
组件的选项?它具有完善的WebKit浏览器和JS引擎,可以使用embed JavaFX components in Swing。
关于scala - 生成没有JavaScript但静态HTML或Markdown的Scala API文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22508753/