新的 Scala 版本 3 带来了完全重写的文档生成器 Scaladoc 的全新实现。本文将介绍 Scaladoc 中已引入或即将引入的新功能亮点。有关一般参考,请访问 Scaladoc 手册。
新功能
Markdown 语法
新版 Scaladoc 引入的最大变化是 docstring 默认语言的改变。到目前为止,Scaladoc 仅支持 Wikidoc 语法。新的 Scaladoc 仍然可以解析旧的 Wikidoc
语法,但 Markdown 已被选为格式化注释的主要语言。要切换回 Wikidoc
,可以在运行 doc
任务之前传递全局标志,或者可以通过 @syntax wiki
指令为特定注释定义它。
有关如何使用 docstings 的全部功能的更多信息,请查看 Scaladoc docstrings
静态网站
Scaladoc 还提供了一种简单的方法来创建静态网站,用于文档和博客文章,类似于 Jekyll 的方式。借助此功能,您可以以非常方便的方式将文档与生成的 Scaladoc API 存储在一起。
有关如何配置静态网站生成的更多信息,请查看 静态文档 章节
博客文章
博客文章是一种特殊的静态网站类型。在 Scaladoc 手册中,您可以找到有关如何使用 博客文章 的更多信息。
社交链接
此外,Scaladoc 提供了一种简单的方法来配置您的 社交媒体链接,例如 Twitter 或 Discord。
实验性功能
以下功能目前(2021 年 5 月)尚未稳定发布到 scaladoc,但我们很乐意听取您的反馈。每个功能在 scala-lang 贡献者网站上都有自己的主题,您可以在那里分享您的意见。
代码片段编译
Scaladoc 的一项实验性功能是代码片段编译器。此工具将允许您编译附加到 docstring 的代码片段,以检查它们是否按预期运行,例如,正确编译。此功能与 tut
或 mdoc
工具非常相似,但将与 Scaladoc 一起提供,以便轻松设置并集成到您的项目中。使代码片段交互式(例如,让用户在浏览器中编辑和编译它们)正在考虑中,但此功能目前不在范围之内。
展示
- 隐藏代码
- 断言编译错误
- 代码片段包含
有关更多信息,请参阅 指南,或关注此 Scala 贡献者主题
基于类型的搜索
通过符号名称搜索函数可能很耗时。这就是为什么新的 scaladoc 允许您通过类型搜索方法和字段。
因此,对于声明
extension [T](arr: IArray[T]) def span(p: T => Boolean): (IArray[T], IArray[T]) = ...
除了搜索 span
,我们还可以搜索 IArray[A] => (A => Boolean) => (IArray[A], IArray[A])
。
要使用此功能,只需在 scaladoc 搜索栏中键入您要查找的函数的签名。这就是它的工作原理
此功能由 Inkuire 搜索引擎提供,该引擎适用于 Scala 3 和 Kotlin。要了解此功能的最新开发情况,请关注 Inkuire 存储库。
有关更多信息,请参阅 指南
请注意,此功能仍在开发中,因此可能会发生重大变化。如果您遇到错误或有改进想法,请随时在 Inkuire 或 scala3 上创建问题。