微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将可运行的示例代码嵌入Dokka生成的文档中

如何解决如何将可运行的示例代码嵌入Dokka生成的文档中

我正在尝试将示例代码添加到我的API参考中。

我遵循此处突出显示的模式https://androidessence.com/contributing-to-kotlin 能够创建示例项目并运行所有代码,复制了kotlin stdlib源使用的_sampleUtils。

我将模块配置为将示例包含在dokka配置中。

tasks.dokkaHtml {
    dokkaSourceSets.configureEach {
        samples.from("$projectDir/../module-samples/test/samples/SampleFile.kt")
    }
}

该示例已正确加载到该函数中并通过运行按钮显示在该函数的文档中。

不过,当我点击run时,库中的所有符号都以Unresolved reference的形式返回。它还无法从_samplesUtils.kt文件中找到assertPrint方法

在Dokka配置中,我看不到任何其他设置来使示例包含要记录的库的jar文件

解决方法

研究后,我发现样本是在Kotlin游乐场使用的。要添加额外的依赖关系,您需要创建自己的编译器服务器。 https://github.com/AlexanderPrendota/kotlin-compiler-server

然后使用额外的依赖项修改build.gradle.kts文件。

下一部分将更新Dokka生成的html以指向您的新服务器。我找不到执行此操作的内置方法,所以我实现了这一点。

dokkaHtml {
    doLast {
        def docTree = fileTree(
                dir: "${dokkaHtml.outputDirectory.get()}",includes: ["**/*.html"])
        docTree.each { file ->
            def text = file.text
            file.write(text.replace(
                    '<script src="https://unpkg.com/kotlin-playground@1" data-selector="code.runnablesample"></script>','<script src="https://unpkg.com/kotlin-playground@1" data-selector="code.runnablesample" data-server="http://localhost:8080"></script>'
            ))
        }
    }
}

您还必须创建一个自定义的小罐子,以将测试代码类型和函数替换为更适合示例的代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?