Как настроить автоматически сгенерированный HTML-код Dokka, чтобы включить верхний и нижний колонтитулы

Я ищу способ настроить html, сгенерированный Dokka, чтобы включить собственный заголовок и нижний колонтитул. Ранее я использовал Doclava, чтобы переопределить шаблон для сгенерированного HTML, и мне было интересно, есть ли способ сделать это в Dokka. Просматривая их код, я наткнулся на функции appendHeader и appendFooter, но не знал, как переопределить эти методы. https://github.com/Kotlin/dokka/blob/de2f32d91fb6f564826ddd7644940452356e2080/core/src/main/kotlin/Formats/KotlinWebsiteHtmlFormatService.kt#L10

Мое последнее средство - изменить сгенерированные html-файлы с помощью сценария, вставив заголовок после первого тега body и вставив нижний колонтитул перед закрывающим тегом, но, надеюсь, есть более элегантное решение.

Любая помощь будет принята с благодарностью. Спасибо!

Изменить: закончилось создание хакерского скрипта 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" {} \;

person Eric Hsiao    schedule 27.03.2020    source источник


Ответы (1)


Боюсь, в настоящее время это невозможно. По крайней мере, это не просто. Вы можете переопределить генерацию контента в StructuredFormatService, а затем перекомпилировать dokka.

В dokka v0.11.0 мы добавили поддержку плагинов (и переписали dokka с нуля), и эта функциональность является одним из запланированных плагинов.

person Kamil Doległo    schedule 04.04.2020
comment
Спасибо, что дали мне знать. На данный момент я просто пошел дальше и создал хакерский скрипт 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 {} \; ``` - person Eric Hsiao; 09.04.2020