如何自定义自动生成的 Dokka html 以包含页眉和页脚

How to customize the auto generated Dokka html to include a header and a footer

我正在寻找一种方法来自定义 Dokka 生成的 html 以包括自定义页眉和页脚。我以前使用 Doclava 来覆盖生成的 HTML 的模板,并且想知道在 Dokka 中是否有办法做到这一点。通过查看他们的代码,我遇到了 appendHeader 和 appendFooter 函数,但不确定如何覆盖这些方法。 https://github.com/Kotlin/dokka/blob/de2f32d91fb6f564826ddd7644940452356e2080/core/src/main/kotlin/Formats/KotlinWebsiteHtmlFormatService.kt#L10

我最后的办法是用脚本修改生成的 html 文件,方法是在第一个正文标记后插入页眉,在结束标记前插入页脚,但希望有更优雅的解决方案。

如有任何帮助,我们将不胜感激。谢谢!

编辑:最终创建了一个 hacky bash 脚本

head=`cat head.html`
header=`cat header.html`
footer=`cat footer.html`

find build/dokka -name "*.html" -type f -exec sed -i "s|</HEAD>|$head</HEAD>|g" {} \;
find .build/dokka -name "*.html" -type f -exec sed -i "s|<BODY>|<BODY>$header|g" {} \;
find build/dokka -name "*.html" -type f -exec sed -i "s|</BODY>|$footer</BODY>|g" {} \;

恐怕这目前是不可能的。至少它不是直截了当的。您可以覆盖 StructuredFormatService 中的内容生成,然后重新编译 dokka。

在 dokka v0.11.0 中,我们添加了对插件的支持(并从头开始重写了 dokka),此功能是计划中的插件之一