From cf0e1064df1579b0dbf8bc56bf75aee3cad1a7df Mon Sep 17 00:00:00 2001 From: vmishenev Date: Tue, 22 Nov 2022 23:10:07 +0200 Subject: [PATCH 1/8] Extract HTML plugin from base one --- core/api/core.api | 7 +- core/src/main/kotlin/DokkaGenerator.kt | 5 +- .../main/kotlin/plugability/DokkaContext.kt | 23 +- gradle.properties | 2 +- .../build.gradle | 2 +- .../kotlinlang/SamplesTransformerPlugin.kt | 6 +- plugins/all-modules-page/build.gradle.kts | 1 + .../kotlin/MultiModuleDokkaTestGenerator.kt | 9 +- .../templates/MultiModuleDocumentationTest.kt | 6 +- .../ResolveLinkCommandResolutionTest.kt | 7 +- plugins/base/api/base.api | 406 ++---------------- .../base-test-utils/api/base-test-utils.api | 5 + .../src/main/kotlin/testRunner/baseTestApi.kt | 13 +- plugins/base/build.gradle.kts | 45 +- plugins/base/src/main/kotlin/DokkaBase.kt | 143 +++--- .../src/main/kotlin/DokkaBaseConfiguration.kt | 3 + .../src/main/kotlin/renderers/shortenToUrl.kt | 11 + .../src/main/kotlin/templating/AddToSearch.kt | 10 +- .../documentables/documentableLanguage.kt | 4 +- .../org/jetbrains/dokka/gfm/GfmPlugin.kt | 2 +- plugins/html/api/html.api | 385 +++++++++++++++++ plugins/html/build.gradle.kts | 73 ++++ plugins/{base => html}/frontend/.gitignore | 0 .../{base => html}/frontend/build.gradle.kts | 0 .../{base => html}/frontend/package-lock.json | 0 plugins/{base => html}/frontend/package.json | 0 .../{base => html}/frontend/postcss.config.js | 0 .../src/main/components/app/index.scss | 0 .../src/main/components/app/index.tsx | 0 .../src/main/components/assets/clear.svg | 0 .../src/main/components/assets/searchIcon.svg | 0 .../frontend/src/main/components/root.tsx | 0 .../components/search/dokkaFuzzyFilter.tsx | 0 .../components/search/dokkaSearchAnchor.tsx | 0 .../src/main/components/search/search.scss | 0 .../src/main/components/search/search.tsx | 0 .../components/search/searchResultRow.tsx | 0 .../src/main/components/search/types.ts | 0 .../src/main/components/utils/hotkey.ts | 0 .../frontend/src/main/components/utils/os.ts | 0 .../src/main/components/utils/requests.tsx | 0 .../frontend/src/main/scss/index.scss | 0 .../src/main/types/@jetbrains/index.d.ts | 0 .../frontend/stylelint.config.js | 0 plugins/{base => html}/frontend/tsconfig.json | 0 .../{base => html}/frontend/webpack.config.js | 0 .../org/jetbrains/dokka/html/DokkaHtml.kt | 84 ++++ .../dokka/html/DokkaHtmlConfiguration.kt | 18 + .../renderers/DefaultTabSortingStrategy.kt | 3 +- .../dokka/html/renderers}/HtmlContent.kt | 2 +- .../dokka/html/renderers}/HtmlRenderer.kt | 24 +- .../html/renderers}/NavigationDataProvider.kt | 2 + .../dokka/html/renderers}/NavigationPage.kt | 3 +- .../html/renderers}/SearchbarDataInstaller.kt | 12 +- .../jetbrains/dokka/html/renderers}/Tags.kt | 4 +- .../ImmediateResolutionTagConsumer.kt | 14 +- .../command/consumers/PathToRootConsumer.kt | 8 +- .../consumers/ReplaceVersionsConsumer.kt | 6 +- .../command/consumers/ResolveLinkConsumer.kt | 8 +- .../html/renderers}/htmlFormatingUtils.kt | 2 +- .../html/renderers}/htmlPreprocessors.kt | 15 +- .../DefaultTemplateModelFactory.kt | 10 +- .../DefaultTemplateModelMerger.kt | 2 +- .../innerTemplating/HtmlTemplater.kt | 11 +- .../innerTemplating/TemplateModelFactory.kt | 2 +- .../innerTemplating/TemplateModelMerger.kt | 2 +- .../jetbrains/dokka/html}/renderers/pageId.kt | 4 +- .../shouldRenderSourceSetBubbles.kt | 2 +- .../ImmediateHtmlCommandConsumer.kt | 10 +- ...rg.jetbrains.dokka.plugability.DokkaPlugin | 1 + .../dokka/images/anchor-copy-button.svg | 0 .../resources/dokka/images/arrow_down.svg | 0 .../main/resources/dokka/images/copy-icon.svg | 0 .../dokka/images/copy-successful-icon.svg | 0 .../dokka/images/footer-go-to-link.svg | 0 .../resources/dokka/images/go-to-top-icon.svg | 0 .../main/resources/dokka/images/logo-icon.svg | 0 .../nav-icons/abstract-class-kotlin.svg | 0 .../dokka/images/nav-icons/abstract-class.svg | 0 .../images/nav-icons/annotation-kotlin.svg | 0 .../dokka/images/nav-icons/annotation.svg | 0 .../dokka/images/nav-icons/class-kotlin.svg | 0 .../dokka/images/nav-icons/class.svg | 0 .../dokka/images/nav-icons/enum-kotlin.svg | 0 .../resources/dokka/images/nav-icons/enum.svg | 0 .../images/nav-icons/exception-class.svg | 0 .../dokka/images/nav-icons/field-value.svg | 0 .../dokka/images/nav-icons/field-variable.svg | 0 .../dokka/images/nav-icons/function.svg | 0 .../images/nav-icons/interface-kotlin.svg | 0 .../dokka/images/nav-icons/interface.svg | 0 .../dokka/images/nav-icons/object.svg | 0 .../resources/dokka/images/theme-toggle.svg | 0 .../main/resources/dokka/scripts/clipboard.js | 0 .../dokka/scripts/navigation-loader.js | 0 .../dokka/scripts/platform-content-handler.js | 0 .../src/main/resources/dokka/scripts/prism.js | 0 .../symbol-parameters-wrapper_deferred.js | 0 .../resources/dokka/styles/jetbrains-mono.css | 0 .../resources/dokka/styles/logo-styles.css | 0 .../src/main/resources/dokka/styles/prism.css | 0 .../src/main/resources/dokka/styles/style.css | 0 .../main/resources/dokka/templates/base.ftl | 0 .../dokka/templates/includes/footer.ftl | 0 .../dokka/templates/includes/header.ftl | 0 .../templates/includes/page_metadata.ftl | 0 .../includes/source_set_selector.ftl | 0 .../src/test/kotlin}/html/BasicTest.kt | 4 +- .../src/test/kotlin}/html/BreadcrumbsTest.kt | 2 +- .../src/test/kotlin}/html/CoverPageTest.kt | 2 +- .../src/test/kotlin}/html/CustomFooterTest.kt | 4 +- .../src/test/kotlin}/html/DivergentTest.kt | 4 +- .../test/kotlin}/html/FooterMessageTest.kt | 4 +- .../test/kotlin}/html/FormattingUtilsTest.kt | 4 +- .../test/kotlin}/html/GroupWrappingTest.kt | 4 +- .../kotlin}/html/HtmlRenderingOnlyTestBase.kt | 11 +- .../src/test/kotlin}/html/ListStylesTest.kt | 4 +- .../test/kotlin}/html/NavigationIconTest.kt | 2 +- .../src/test/kotlin}/html/NavigationTest.kt | 4 +- .../html/SourceSetDependentHintTest.kt | 4 +- .../src/test/kotlin}/html/TextStylesTest.kt | 4 +- .../kotlin/resourceLinks/ResourceLinksTest.kt | 12 +- .../src/test/kotlin/utils/HtmlUtils.kt | 0 .../jetbrains/dokka/javadoc/JavadocPlugin.kt | 2 +- plugins/kotlin-as-java/build.gradle.kts | 1 + plugins/mathjax/build.gradle.kts | 1 + plugins/templating/api/templating.api | 6 + plugins/templating/build.gradle.kts | 2 + .../DirectiveBasedTemplateProcessing.kt | 7 +- ...nElementBasedTemplateProcessingStrategy.kt | 2 +- .../AddToNavigationCommandResolutionTest.kt | 2 +- .../AddToSearchCommandResolutionTest.kt | 2 +- .../SubstitutionCommandResolutionTest.kt | 4 +- plugins/versioning/api/versioning.api | 6 +- plugins/versioning/build.gradle.kts | 1 + .../ReplaceVersionCommandConsumer.kt | 10 +- .../dokka/versioning/VersioningPlugin.kt | 18 +- .../versioning/VersionsNavigationCreator.kt | 1 - .../jetbrains/dokka/gradle/DokkaArtifacts.kt | 1 + .../org/jetbrains/dokka/gradle/DokkaPlugin.kt | 1 + .../maven-plugin/src/main/kotlin/DokkaMojo.kt | 7 +- settings.gradle.kts | 5 +- 142 files changed, 905 insertions(+), 660 deletions(-) create mode 100644 plugins/base/src/main/kotlin/renderers/shortenToUrl.kt create mode 100644 plugins/html/api/html.api create mode 100644 plugins/html/build.gradle.kts rename plugins/{base => html}/frontend/.gitignore (100%) rename plugins/{base => html}/frontend/build.gradle.kts (100%) rename plugins/{base => html}/frontend/package-lock.json (100%) rename plugins/{base => html}/frontend/package.json (100%) rename plugins/{base => html}/frontend/postcss.config.js (100%) rename plugins/{base => html}/frontend/src/main/components/app/index.scss (100%) rename plugins/{base => html}/frontend/src/main/components/app/index.tsx (100%) rename plugins/{base => html}/frontend/src/main/components/assets/clear.svg (100%) rename plugins/{base => html}/frontend/src/main/components/assets/searchIcon.svg (100%) rename plugins/{base => html}/frontend/src/main/components/root.tsx (100%) rename plugins/{base => html}/frontend/src/main/components/search/dokkaFuzzyFilter.tsx (100%) rename plugins/{base => html}/frontend/src/main/components/search/dokkaSearchAnchor.tsx (100%) rename plugins/{base => html}/frontend/src/main/components/search/search.scss (100%) rename plugins/{base => html}/frontend/src/main/components/search/search.tsx (100%) rename plugins/{base => html}/frontend/src/main/components/search/searchResultRow.tsx (100%) rename plugins/{base => html}/frontend/src/main/components/search/types.ts (100%) rename plugins/{base => html}/frontend/src/main/components/utils/hotkey.ts (100%) rename plugins/{base => html}/frontend/src/main/components/utils/os.ts (100%) rename plugins/{base => html}/frontend/src/main/components/utils/requests.tsx (100%) rename plugins/{base => html}/frontend/src/main/scss/index.scss (100%) rename plugins/{base => html}/frontend/src/main/types/@jetbrains/index.d.ts (100%) rename plugins/{base => html}/frontend/stylelint.config.js (100%) rename plugins/{base => html}/frontend/tsconfig.json (100%) rename plugins/{base => html}/frontend/webpack.config.js (100%) create mode 100644 plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtml.kt create mode 100644 plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtmlConfiguration.kt rename plugins/{base/src/main/kotlin => html/src/main/kotlin/org/jetbrains/dokka/html}/renderers/DefaultTabSortingStrategy.kt (89%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/HtmlContent.kt (91%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/HtmlRenderer.kt (97%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/NavigationDataProvider.kt (97%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/NavigationPage.kt (97%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/SearchbarDataInstaller.kt (95%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/Tags.kt (96%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/command/consumers/ImmediateResolutionTagConsumer.kt (68%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/command/consumers/PathToRootConsumer.kt (76%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/command/consumers/ReplaceVersionsConsumer.kt (82%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/command/consumers/ResolveLinkConsumer.kt (80%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/htmlFormatingUtils.kt (97%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/htmlPreprocessors.kt (89%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/innerTemplating/DefaultTemplateModelFactory.kt (95%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/innerTemplating/DefaultTemplateModelMerger.kt (87%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/innerTemplating/HtmlTemplater.kt (84%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/innerTemplating/TemplateModelFactory.kt (86%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/innerTemplating/TemplateModelMerger.kt (71%) rename plugins/{base/src/main/kotlin => html/src/main/kotlin/org/jetbrains/dokka/html}/renderers/pageId.kt (90%) rename plugins/{base/src/main/kotlin/renderers/html => html/src/main/kotlin/org/jetbrains/dokka/html/renderers}/shouldRenderSourceSetBubbles.kt (91%) rename plugins/{base/src/main/kotlin => html/src/main/kotlin/org/jetbrains/dokka/html}/templating/ImmediateHtmlCommandConsumer.kt (57%) create mode 100644 plugins/html/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin rename plugins/{base => html}/src/main/resources/dokka/images/anchor-copy-button.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/arrow_down.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/copy-icon.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/copy-successful-icon.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/footer-go-to-link.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/go-to-top-icon.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/logo-icon.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/abstract-class.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/annotation.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/class-kotlin.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/class.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/enum.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/exception-class.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/field-value.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/field-variable.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/function.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/interface.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/nav-icons/object.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/images/theme-toggle.svg (100%) rename plugins/{base => html}/src/main/resources/dokka/scripts/clipboard.js (100%) rename plugins/{base => html}/src/main/resources/dokka/scripts/navigation-loader.js (100%) rename plugins/{base => html}/src/main/resources/dokka/scripts/platform-content-handler.js (100%) rename plugins/{base => html}/src/main/resources/dokka/scripts/prism.js (100%) rename plugins/{base => html}/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js (100%) rename plugins/{base => html}/src/main/resources/dokka/styles/jetbrains-mono.css (100%) rename plugins/{base => html}/src/main/resources/dokka/styles/logo-styles.css (100%) rename plugins/{base => html}/src/main/resources/dokka/styles/prism.css (100%) rename plugins/{base => html}/src/main/resources/dokka/styles/style.css (100%) rename plugins/{base => html}/src/main/resources/dokka/templates/base.ftl (100%) rename plugins/{base => html}/src/main/resources/dokka/templates/includes/footer.ftl (100%) rename plugins/{base => html}/src/main/resources/dokka/templates/includes/header.ftl (100%) rename plugins/{base => html}/src/main/resources/dokka/templates/includes/page_metadata.ftl (100%) rename plugins/{base => html}/src/main/resources/dokka/templates/includes/source_set_selector.ftl (100%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/BasicTest.kt (84%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/BreadcrumbsTest.kt (99%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/CoverPageTest.kt (98%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/CustomFooterTest.kt (94%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/DivergentTest.kt (99%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/FooterMessageTest.kt (90%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/FormattingUtilsTest.kt (96%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/GroupWrappingTest.kt (95%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/HtmlRenderingOnlyTestBase.kt (89%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/ListStylesTest.kt (92%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/NavigationIconTest.kt (99%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/NavigationTest.kt (99%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/SourceSetDependentHintTest.kt (98%) rename plugins/{base/src/test/kotlin/renderers => html/src/test/kotlin}/html/TextStylesTest.kt (97%) rename plugins/{base => html}/src/test/kotlin/resourceLinks/ResourceLinksTest.kt (95%) rename plugins/{base => html}/src/test/kotlin/utils/HtmlUtils.kt (100%) diff --git a/core/api/core.api b/core/api/core.api index 7d29d872bc..1af8d2c622 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -242,8 +242,8 @@ public class org/jetbrains/dokka/DokkaException : java/lang/RuntimeException { public final class org/jetbrains/dokka/DokkaGenerator { public fun (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;)V public final fun generate ()V - public final fun initializePlugins (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/DokkaContext; - public static synthetic fun initializePlugins$default (Lorg/jetbrains/dokka/DokkaGenerator;Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/DokkaContext; + public final fun initializePlugins (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;Z)Lorg/jetbrains/dokka/plugability/DokkaContext; + public static synthetic fun initializePlugins$default (Lorg/jetbrains/dokka/DokkaGenerator;Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;ZILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/DokkaContext; } public final class org/jetbrains/dokka/DokkaModuleDescriptionImpl : org/jetbrains/dokka/DokkaConfiguration$DokkaModuleDescription { @@ -4348,7 +4348,8 @@ public abstract interface class org/jetbrains/dokka/plugability/DokkaContext { } public final class org/jetbrains/dokka/plugability/DokkaContext$Companion { - public final fun create (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/DokkaContext; + public final fun create (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;Z)Lorg/jetbrains/dokka/plugability/DokkaContext; + public static synthetic fun create$default (Lorg/jetbrains/dokka/plugability/DokkaContext$Companion;Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;ZILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/DokkaContext; } public abstract interface class org/jetbrains/dokka/plugability/DokkaContextConfiguration { diff --git a/core/src/main/kotlin/DokkaGenerator.kt b/core/src/main/kotlin/DokkaGenerator.kt index a14775cbea..3b9a3a5e18 100644 --- a/core/src/main/kotlin/DokkaGenerator.kt +++ b/core/src/main/kotlin/DokkaGenerator.kt @@ -39,8 +39,9 @@ class DokkaGenerator( fun initializePlugins( configuration: DokkaConfiguration, logger: DokkaLogger, - additionalPlugins: List = emptyList() - ) = DokkaContext.create(configuration, logger, additionalPlugins) + additionalPlugins: List = emptyList(), + ignorePluginsFromClassLoader: Boolean = false + ) = DokkaContext.create(configuration, logger, additionalPlugins, ignorePluginsFromClassLoader) @OptIn(DelicateCoroutinesApi::class) private fun finalizeCoroutines() { diff --git a/core/src/main/kotlin/plugability/DokkaContext.kt b/core/src/main/kotlin/plugability/DokkaContext.kt index 06efeb1af6..04c1d06d5a 100644 --- a/core/src/main/kotlin/plugability/DokkaContext.kt +++ b/core/src/main/kotlin/plugability/DokkaContext.kt @@ -24,17 +24,22 @@ interface DokkaContext { fun create( configuration: DokkaConfiguration, logger: DokkaLogger, - pluginOverrides: List + pluginOverrides: List, + ignorePluginsFromClassLoader: Boolean = false ): DokkaContext = DokkaContextConfigurationImpl(logger, configuration).apply { - // File(it.path) is a workaround for an incorrect filesystem in a File instance returned by Gradle. - configuration.pluginsClasspath.map { File(it.path).toURI().toURL() } - .toTypedArray() - .let { URLClassLoader(it, this.javaClass.classLoader) } - .also { checkClasspath(it) } - .let { ServiceLoader.load(DokkaPlugin::class.java, it) } - .let { it + pluginOverrides } - .forEach { install(it) } + if(ignorePluginsFromClassLoader) { + pluginOverrides.forEach { install(it) } + } else { + // File(it.path) is a workaround for an incorrect filesystem in a File instance returned by Gradle. + configuration.pluginsClasspath.map { File(it.path).toURI().toURL() } + .toTypedArray() + .let { URLClassLoader(it, this.javaClass.classLoader) } + .also { checkClasspath(it) } + .let { ServiceLoader.load(DokkaPlugin::class.java, it) } + .let { it + pluginOverrides } + .forEach { install(it) } + } topologicallySortAndPrune() }.also { it.logInitialisationInfo() } } diff --git a/gradle.properties b/gradle.properties index cd86cf4085..50122c3acc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,5 +17,5 @@ freemarker_version=2.3.31 # Code style kotlin.code.style=official # Gradle settings -org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=2g +org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=2g org.gradle.parallel=true diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle index fae5440053..3ef1294a31 100644 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle +++ b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle @@ -9,7 +9,7 @@ repositories { } dependencies { - implementation "org.jetbrains.dokka:dokka-base:${dokka_it_version}" + implementation "org.jetbrains.dokka:html-plugin:${dokka_it_version}" compileOnly "org.jetbrains.dokka:dokka-core:${dokka_it_version}" compileOnly "org.jetbrains.dokka:dokka-analysis:${dokka_it_version}" } diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt index e39a3cdaa6..5e69e7eaf1 100644 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt +++ b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt @@ -1,14 +1,14 @@ package org.jetbrains.dokka.kotlinlang import org.jetbrains.dokka.CoreExtensions -import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.html.DokkaHtml import org.jetbrains.dokka.plugability.DokkaPlugin class SamplesTransformerPlugin : DokkaPlugin() { - private val dokkaBase by lazy { plugin() } + private val dokkaHtml by lazy { plugin() } val kotlinWebsiteSamplesTransformer by extending { - CoreExtensions.pageTransformer providing ::KotlinWebsiteSamplesTransformer override dokkaBase.defaultSamplesTransformer order { + CoreExtensions.pageTransformer providing ::KotlinWebsiteSamplesTransformer override dokkaHtml.defaultSamplesTransformer order { before(dokkaBase.pageMerger) } } diff --git a/plugins/all-modules-page/build.gradle.kts b/plugins/all-modules-page/build.gradle.kts index a690e07775..a4af28d652 100644 --- a/plugins/all-modules-page/build.gradle.kts +++ b/plugins/all-modules-page/build.gradle.kts @@ -9,6 +9,7 @@ dependencies { implementation(project(":plugins:base")) implementation(project(":plugins:templating")) testImplementation(project(":plugins:base")) + testImplementation(project(":plugins:html")) testImplementation(project(":plugins:base:base-test-utils")) testImplementation(project(":plugins:gfm")) testImplementation(project(":plugins:gfm:gfm-template-processing")) diff --git a/plugins/all-modules-page/src/test/kotlin/MultiModuleDokkaTestGenerator.kt b/plugins/all-modules-page/src/test/kotlin/MultiModuleDokkaTestGenerator.kt index adb61e7ef2..324b8c68c2 100644 --- a/plugins/all-modules-page/src/test/kotlin/MultiModuleDokkaTestGenerator.kt +++ b/plugins/all-modules-page/src/test/kotlin/MultiModuleDokkaTestGenerator.kt @@ -3,9 +3,11 @@ package org.jetbrains.dokka.allModulesPage import org.jetbrains.dokka.CoreExtensions import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.DokkaGenerator +import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.DokkaPlugin +import org.jetbrains.dokka.templates.TemplatingPlugin import org.jetbrains.dokka.testApi.logger.TestLogger import org.jetbrains.dokka.testApi.testRunner.AbstractTest import org.jetbrains.dokka.testApi.testRunner.DokkaTestGenerator @@ -29,7 +31,12 @@ class MultiModuleDokkaTestGenerator( val dokkaGenerator = DokkaGenerator(configuration, logger) val context = - dokkaGenerator.initializePlugins(configuration, logger, additionalPlugins + AllModulesPagePlugin()) + dokkaGenerator.initializePlugins( + configuration = configuration, + logger = logger, + additionalPlugins = additionalPlugins + listOf(AllModulesPagePlugin(), DokkaBase(), TemplatingPlugin()), + ignorePluginsFromClassLoader = true // in classloader we have a conflict HTML and GFM plugins + ) pluginsSetupStage(context) val generation = context.single(CoreExtensions.generation) as AllModulesPageGeneration diff --git a/plugins/all-modules-page/src/test/kotlin/templates/MultiModuleDocumentationTest.kt b/plugins/all-modules-page/src/test/kotlin/templates/MultiModuleDocumentationTest.kt index 525331fc7b..fae1211862 100644 --- a/plugins/all-modules-page/src/test/kotlin/templates/MultiModuleDocumentationTest.kt +++ b/plugins/all-modules-page/src/test/kotlin/templates/MultiModuleDocumentationTest.kt @@ -2,6 +2,7 @@ package org.jetbrains.dokka.allModulesPage.templates import matchers.content.* import org.jetbrains.dokka.allModulesPage.MultiModuleAbstractTest +import org.jetbrains.dokka.html.DokkaHtml import org.jetbrains.dokka.model.dfs import org.jetbrains.dokka.pages.ContentKind import org.jetbrains.dokka.pages.ContentResolvedLink @@ -39,7 +40,10 @@ class MultiModuleDocumentationTest : MultiModuleAbstractTest() { includes = listOf(folder.root.resolve("README.md")) } - testFromData(configuration) { + testFromData( + configuration, + pluginOverrides = listOf(DokkaHtml()) + ) { allModulesPageCreationStage = { rootPage -> (rootPage as? MultimoduleRootPageNode)?.content?.dfs { it.dci.kind == ContentKind.Cover }?.children?.firstOrNull() ?.assertNode { diff --git a/plugins/all-modules-page/src/test/kotlin/templates/ResolveLinkCommandResolutionTest.kt b/plugins/all-modules-page/src/test/kotlin/templates/ResolveLinkCommandResolutionTest.kt index 7ef8c3ea4c..71c88b798d 100644 --- a/plugins/all-modules-page/src/test/kotlin/templates/ResolveLinkCommandResolutionTest.kt +++ b/plugins/all-modules-page/src/test/kotlin/templates/ResolveLinkCommandResolutionTest.kt @@ -5,9 +5,10 @@ import kotlinx.html.span import kotlinx.html.stream.createHTML import org.jetbrains.dokka.DokkaModuleDescriptionImpl import org.jetbrains.dokka.allModulesPage.MultiModuleAbstractTest -import org.jetbrains.dokka.base.renderers.html.templateCommand import org.jetbrains.dokka.base.resolvers.shared.RecognizedLinkFormat import org.jetbrains.dokka.base.templating.ResolveLinkCommand +import org.jetbrains.dokka.html.DokkaHtml +import org.jetbrains.dokka.html.renderers.templateCommand import org.jetbrains.dokka.links.DRI import org.junit.Rule import org.junit.jupiter.api.Test @@ -59,7 +60,7 @@ class ResolveLinkCommandResolutionTest : MultiModuleAbstractTest() { val contentFile = setup(link) val configuration = configuration() - testFromData(configuration, useOutputLocationFromConfig = true) { + testFromData(configuration, useOutputLocationFromConfig = true, pluginOverrides = listOf(DokkaHtml())) { finishProcessingSubmodules = { assertHtmlEqualsIgnoringWhitespace(expected, contentFile.readText()) } @@ -88,7 +89,7 @@ class ResolveLinkCommandResolutionTest : MultiModuleAbstractTest() { val contentFile = setup(link) val configuration = configuration() - testFromData(configuration, useOutputLocationFromConfig = true) { + testFromData(configuration, useOutputLocationFromConfig = true, pluginOverrides = listOf(DokkaHtml())) { finishProcessingSubmodules = { assertHtmlEqualsIgnoringWhitespace(expected, contentFile.readText()) } diff --git a/plugins/base/api/base.api b/plugins/base/api/base.api index c299d547ed..f0587ab7e8 100644 --- a/plugins/base/api/base.api +++ b/plugins/base/api/base.api @@ -1,16 +1,11 @@ public final class org/jetbrains/dokka/base/DokkaBase : org/jetbrains/dokka/plugability/DokkaPlugin { public fun ()V public final fun getActualTypealiasAdder ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getAssetsInstaller ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getBaseSearchbarDataInstaller ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getCommentsToContentConverter ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; - public final fun getCustomResourceInstaller ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getCustomTagContentProvider ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getDefaultExternalClasslikesTranslator ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getDefaultExternalDocumentablesProvider ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getDefaultKotlinAnalysis ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getDefaultSamplesTransformer ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getDefaultTabSortingStrategy ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getDeprecatedDocumentableFilter ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getDescriptorToDocumentableTranslator ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getDocTagToContentConverter ()Lorg/jetbrains/dokka/plugability/Extension; @@ -26,9 +21,6 @@ public final class org/jetbrains/dokka/base/DokkaBase : org/jetbrains/dokka/plug public final fun getExternalLocationProviderFactory ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getFallbackMerger ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getFileWriter ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getHtmlPreprocessors ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; - public final fun getHtmlRenderer ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getImmediateHtmlCommandConsumer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getInheritedEntriesVisbilityFilter ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getInheritorsExtractor ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getJavadocLocationProvider ()Lorg/jetbrains/dokka/plugability/Extension; @@ -38,31 +30,20 @@ public final class org/jetbrains/dokka/base/DokkaBase : org/jetbrains/dokka/plug public final fun getLocationProvider ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getLocationProviderFactory ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getModulesAndPackagesDocumentation ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getNavigationPageInstaller ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getObviousFunctionsVisbilityFilter ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getOutputWriter ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; - public final fun getPackageListCreator ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getPageMerger ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getPageMergerStrategy ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; - public final fun getPathToRootConsumer ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getPreMergeDocumentableTransformer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getPsiToDocumentableTranslator ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getReplaceVersionConsumer ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getResolveLinkConsumer ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getRootCreator ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSameMethodNameMerger ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getScriptsInstaller ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSignatureProvider ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getSinceKotlinTagContentProvider ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSinceKotlinTransformer ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSingleGeneration ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getSourceLinksTransformer ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSourceSetMerger ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getSourcesetDependencyAppender ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getStylesInstaller ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSuppressedBySuppressTagDocumentableFilter ()Lorg/jetbrains/dokka/plugability/Extension; public final fun getSuppressedDocumentableFilter ()Lorg/jetbrains/dokka/plugability/Extension; - public final fun getTabSortingStrategy ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; public final fun getUndocumentedCodeReporter ()Lorg/jetbrains/dokka/plugability/Extension; } @@ -272,11 +253,6 @@ public final class org/jetbrains/dokka/base/renderers/DefaultRendererKt { public static final fun sourceSets (Lorg/jetbrains/dokka/pages/ContentPage;)Ljava/util/Set; } -public final class org/jetbrains/dokka/base/renderers/DefaultTabSortingStrategy : org/jetbrains/dokka/base/renderers/TabSortingStrategy { - public fun ()V - public fun sort (Ljava/util/Collection;)Ljava/util/List; -} - public final class org/jetbrains/dokka/base/renderers/FileWriter : org/jetbrains/dokka/base/renderers/OutputWriter { public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; @@ -325,349 +301,6 @@ public abstract interface class org/jetbrains/dokka/base/renderers/TabSortingStr public abstract fun sort (Ljava/util/Collection;)Ljava/util/List; } -public final class org/jetbrains/dokka/base/renderers/html/AssetsInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { - public static final field INSTANCE Lorg/jetbrains/dokka/base/renderers/html/AssetsInstaller; - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/CustomResourceInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public final fun getDokkaContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/HtmlFormatingUtilsKt { - public static final fun buildBreakableDotSeparatedHtml (Lkotlinx/html/FlowContent;Ljava/lang/String;)V - public static final fun buildBreakableText (Lkotlinx/html/FlowContent;Ljava/lang/String;)V - public static final fun buildTextBreakableAfterCapitalLetters (Lkotlinx/html/FlowContent;Ljava/lang/String;Z)V - public static synthetic fun buildTextBreakableAfterCapitalLetters$default (Lkotlinx/html/FlowContent;Ljava/lang/String;ZILjava/lang/Object;)V -} - -public class org/jetbrains/dokka/base/renderers/html/HtmlRenderer : org/jetbrains/dokka/base/renderers/DefaultRenderer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public final fun buildAnchorCopyButton (Lkotlinx/html/FlowContent;Ljava/lang/String;)V - public synthetic fun buildCodeBlock (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentCodeBlock;Lorg/jetbrains/dokka/pages/ContentPage;)V - public fun buildCodeBlock (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentCodeBlock;Lorg/jetbrains/dokka/pages/ContentPage;)V - public synthetic fun buildCodeInline (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentCodeInline;Lorg/jetbrains/dokka/pages/ContentPage;)V - public fun buildCodeInline (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentCodeInline;Lorg/jetbrains/dokka/pages/ContentPage;)V - public synthetic fun buildDRILink (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentDRILink;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public fun buildDRILink (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentDRILink;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public final fun buildDefaultTable (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentTable;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public synthetic fun buildDivergent (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentDivergentGroup;Lorg/jetbrains/dokka/pages/ContentPage;)V - public fun buildDivergent (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentDivergentGroup;Lorg/jetbrains/dokka/pages/ContentPage;)V - public fun buildError (Lorg/jetbrains/dokka/pages/ContentNode;)V - public synthetic fun buildHeader (Ljava/lang/Object;ILorg/jetbrains/dokka/pages/ContentHeader;Lkotlin/jvm/functions/Function1;)V - public fun buildHeader (Lkotlinx/html/FlowContent;ILorg/jetbrains/dokka/pages/ContentHeader;Lkotlin/jvm/functions/Function1;)V - public fun buildHtml (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/lang/String; - public synthetic fun buildLineBreak (Ljava/lang/Object;)V - public synthetic fun buildLineBreak (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentBreakLine;Lorg/jetbrains/dokka/pages/ContentPage;)V - public fun buildLineBreak (Lkotlinx/html/FlowContent;)V - public fun buildLineBreak (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentBreakLine;Lorg/jetbrains/dokka/pages/ContentPage;)V - public synthetic fun buildLink (Ljava/lang/Object;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V - public fun buildLink (Lkotlinx/html/FlowContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V - public final fun buildLink (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;)V - public static synthetic fun buildLink$default (Lorg/jetbrains/dokka/base/renderers/html/HtmlRenderer;Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V - public synthetic fun buildList (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentList;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public fun buildList (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentList;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public fun buildListItems (Lkotlinx/html/OL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public fun buildListItems (Lkotlinx/html/UL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public static synthetic fun buildListItems$default (Lorg/jetbrains/dokka/base/renderers/html/HtmlRenderer;Lkotlinx/html/OL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;ILjava/lang/Object;)V - public static synthetic fun buildListItems$default (Lorg/jetbrains/dokka/base/renderers/html/HtmlRenderer;Lkotlinx/html/UL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;ILjava/lang/Object;)V - public synthetic fun buildNavigation (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/PageNode;)V - public fun buildNavigation (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/PageNode;)V - public fun buildPage (Lorg/jetbrains/dokka/pages/ContentPage;Lkotlin/jvm/functions/Function2;)Ljava/lang/String; - public synthetic fun buildPlatformDependent (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/PlatformHintedContent;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public fun buildPlatformDependent (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/PlatformHintedContent;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public synthetic fun buildResource (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;Lorg/jetbrains/dokka/pages/ContentPage;)V - public fun buildResource (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;Lorg/jetbrains/dokka/pages/ContentPage;)V - public synthetic fun buildTable (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentTable;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public fun buildTable (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentTable;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V - public synthetic fun buildText (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentText;)V - public fun buildText (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentText;)V - public fun clickableLogo (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/PageNode;Ljava/lang/String;)V - public synthetic fun getPreprocessors ()Ljava/lang/Iterable; - protected fun getPreprocessors ()Ljava/util/List; - public fun render (Lorg/jetbrains/dokka/pages/RootPageNode;)V - public synthetic fun wrapGroup (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentGroup;Lorg/jetbrains/dokka/pages/ContentPage;Lkotlin/jvm/functions/Function1;)V - public fun wrapGroup (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentGroup;Lorg/jetbrains/dokka/pages/ContentPage;Lkotlin/jvm/functions/Function1;)V -} - -public final class org/jetbrains/dokka/base/renderers/html/HtmlRendererKt { - public static final fun joinAttr (Ljava/util/List;)Ljava/lang/String; -} - -public abstract class org/jetbrains/dokka/base/renderers/html/NavigationDataProvider { - public fun ()V - public fun navigableChildren (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/base/renderers/html/NavigationNode; - public fun visit (Lorg/jetbrains/dokka/pages/ContentPage;)Lorg/jetbrains/dokka/base/renderers/html/NavigationNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/NavigationNode : org/jetbrains/dokka/model/WithChildren { - public fun (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;)V - public synthetic fun (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; - public final fun component3 ()Ljava/util/Set; - public final fun component4 ()Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public final fun component5 ()Ljava/util/Set; - public final fun component6 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;)Lorg/jetbrains/dokka/base/renderers/html/NavigationNode; - public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/renderers/html/NavigationNode;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/renderers/html/NavigationNode; - public fun equals (Ljava/lang/Object;)Z - public fun getChildren ()Ljava/util/List; - public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; - public final fun getIcon ()Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public final fun getName ()Ljava/lang/String; - public final fun getSourceSets ()Ljava/util/Set; - public final fun getStyles ()Ljava/util/Set; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class org/jetbrains/dokka/base/renderers/html/NavigationNodeIcon : java/lang/Enum { - public static final field ABSTRACT_CLASS Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field ABSTRACT_CLASS_KT Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field ANNOTATION_CLASS Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field ANNOTATION_CLASS_KT Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field CLASS Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field CLASS_KT Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field ENUM_CLASS Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field ENUM_CLASS_KT Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field EXCEPTION Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field FUNCTION Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field INTERFACE Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field INTERFACE_KT Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field OBJECT Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field VAL Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static final field VAR Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; - public static fun values ()[Lorg/jetbrains/dokka/base/renderers/html/NavigationNodeIcon; -} - -public final class org/jetbrains/dokka/base/renderers/html/NavigationPage : org/jetbrains/dokka/pages/RendererSpecificPage { - public fun (Lorg/jetbrains/dokka/base/renderers/html/NavigationNode;Ljava/lang/String;Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun getChildren ()Ljava/util/List; - public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; - public final fun getModuleName ()Ljava/lang/String; - public fun getName ()Ljava/lang/String; - public final fun getRoot ()Lorg/jetbrains/dokka/base/renderers/html/NavigationNode; - public fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy$Callback; - public synthetic fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy; - public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/base/renderers/html/NavigationPage; - public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; -} - -public class org/jetbrains/dokka/base/renderers/html/NavigationPageInstaller : org/jetbrains/dokka/base/renderers/html/NavigationDataProvider, org/jetbrains/dokka/transformers/pages/PageTransformer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/NavigationPageKt { - public static final fun transform (Lorg/jetbrains/dokka/base/renderers/html/NavigationNode;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/base/renderers/html/NavigationNode; - public static final fun transform (Lorg/jetbrains/dokka/base/renderers/html/NavigationPage;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/base/renderers/html/NavigationPage; -} - -public class org/jetbrains/dokka/base/renderers/html/STRIKE : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { - public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V - public fun getConsumer ()Lkotlinx/html/TagConsumer; -} - -public final class org/jetbrains/dokka/base/renderers/html/ScriptsInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/SearchRecord { - public static final field Companion Lorg/jetbrains/dokka/base/renderers/html/SearchRecord$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/base/renderers/html/SearchRecord; - public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/renderers/html/SearchRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/renderers/html/SearchRecord; - public fun equals (Ljava/lang/Object;)Z - public final fun getDescription ()Ljava/lang/String; - public final fun getLocation ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getSearchKeys ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class org/jetbrains/dokka/base/renderers/html/SearchRecord$Companion { -} - -public class org/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun createSearchRecord (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/base/renderers/html/SearchRecord; - public fun generatePagesList (Ljava/util/List;Lorg/jetbrains/dokka/pages/DriResolver;)Ljava/util/List; - public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; - public fun processPage (Lorg/jetbrains/dokka/pages/PageNode;)Ljava/util/List; -} - -public final class org/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets { - public fun (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;)V - public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; - public final fun component2 ()Ljava/util/Set; - public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;)Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets; - public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets; - public fun equals (Ljava/lang/Object;)Z - public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; - public final fun getSourceSet ()Ljava/util/Set; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class org/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$SignatureWithId { - public fun (Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets;Ljava/lang/String;)V - public fun (Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/ContentPage;)V - public final fun component1 ()Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets;Ljava/lang/String;)Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$SignatureWithId; - public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$SignatureWithId;Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$SignatureWithId; - public fun equals (Ljava/lang/Object;)Z - public final fun getDisplayableSignature ()Ljava/lang/String; - public final fun getDriWithSourceSets ()Lorg/jetbrains/dokka/base/renderers/html/SearchbarDataInstaller$DRIWithSourceSets; - public final fun getId ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class org/jetbrains/dokka/base/renderers/html/SourcesetDependencyAppender : org/jetbrains/dokka/transformers/pages/PageTransformer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/StylesInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; -} - -public final class org/jetbrains/dokka/base/renderers/html/TagsKt { - public static final field TEMPLATE_COMMAND_BEGIN_BORDER Ljava/lang/String; - public static final field TEMPLATE_COMMAND_END_BORDER Ljava/lang/String; - public static final field TEMPLATE_COMMAND_SEPARATOR Ljava/lang/String; - public static final fun buildAsInnerHtml (Lkotlin/jvm/functions/Function1;)Ljava/lang/String; - public static final fun strike (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V - public static synthetic fun strike$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V - public static final fun templateCommand (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V - public static final fun templateCommand (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static synthetic fun templateCommand$default (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V - public static synthetic fun templateCommand$default (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun templateCommandAsHtmlComment (Ljava/lang/Appendable;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V - public static final fun templateCommandAsHtmlComment (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V - public static synthetic fun templateCommandAsHtmlComment$default (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V - public static final fun templateCommandFor (Lorg/jetbrains/dokka/base/templating/Command;Lkotlinx/html/TagConsumer;)Lorg/jetbrains/dokka/base/renderers/html/TemplateCommand; - public static final fun underline (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V - public static synthetic fun underline$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V - public static final fun wbr (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V - public static synthetic fun wbr$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V -} - -public final class org/jetbrains/dokka/base/renderers/html/TemplateCommand : kotlinx/html/HTMLTag, kotlinx/html/CommonAttributeGroupFacadeFlowInteractivePhrasingContent { - public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V -} - -public class org/jetbrains/dokka/base/renderers/html/UNDERLINE : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { - public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V - public fun getConsumer ()Lkotlinx/html/TagConsumer; -} - -public class org/jetbrains/dokka/base/renderers/html/WBR : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { - public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V -} - -public final class org/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer : kotlinx/html/TagConsumer { - public fun (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun finalize ()Ljava/lang/Object; - public fun onTagAttributeChange (Lkotlinx/html/Tag;Ljava/lang/String;Ljava/lang/String;)V - public fun onTagComment (Ljava/lang/CharSequence;)V - public fun onTagContent (Ljava/lang/CharSequence;)V - public fun onTagContentEntity (Lkotlinx/html/Entities;)V - public fun onTagContentUnsafe (Lkotlin/jvm/functions/Function1;)V - public fun onTagEnd (Lkotlinx/html/Tag;)V - public fun onTagError (Lkotlinx/html/Tag;Ljava/lang/Throwable;)V - public fun onTagEvent (Lkotlinx/html/Tag;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V - public fun onTagStart (Lkotlinx/html/Tag;)V - public final fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V - public final fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; -} - -public final class org/jetbrains/dokka/base/renderers/html/command/consumers/PathToRootConsumer : org/jetbrains/dokka/base/templating/ImmediateHtmlCommandConsumer { - public static final field INSTANCE Lorg/jetbrains/dokka/base/renderers/html/command/consumers/PathToRootConsumer; - public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z - public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)V - public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; -} - -public final class org/jetbrains/dokka/base/renderers/html/command/consumers/ReplaceVersionsConsumer : org/jetbrains/dokka/base/templating/ImmediateHtmlCommandConsumer { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z - public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)V - public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; -} - -public final class org/jetbrains/dokka/base/renderers/html/command/consumers/ResolveLinkConsumer : org/jetbrains/dokka/base/templating/ImmediateHtmlCommandConsumer { - public static final field INSTANCE Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ResolveLinkConsumer; - public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z - public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)V - public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; -} - -public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory : org/jetbrains/dokka/base/renderers/html/innerTemplating/TemplateModelFactory { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;ZLjava/lang/String;)Ljava/util/Map; - public fun buildSharedModel ()Ljava/util/Map; - public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; -} - -public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory$SourceSetModel { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory$SourceSetModel; - public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory$SourceSetModel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory$SourceSetModel; - public fun equals (Ljava/lang/Object;)Z - public final fun getFilter ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getPlatform ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelMerger : org/jetbrains/dokka/base/renderers/html/innerTemplating/TemplateModelMerger { - public fun ()V - public fun invoke (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/util/Map; -} - -public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/DokkaTemplateTypes : java/lang/Enum { - public static final field BASE Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DokkaTemplateTypes; - public final fun getPath ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DokkaTemplateTypes; - public static fun values ()[Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DokkaTemplateTypes; -} - -public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/HtmlTemplater { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public final fun renderFromTemplate (Lorg/jetbrains/dokka/base/renderers/html/innerTemplating/DokkaTemplateTypes;Lkotlin/jvm/functions/Function0;)Ljava/lang/String; - public final fun setupSharedModel (Ljava/util/Map;)V -} - -public abstract interface class org/jetbrains/dokka/base/renderers/html/innerTemplating/TemplateModelFactory { - public abstract fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;ZLjava/lang/String;)Ljava/util/Map; - public abstract fun buildSharedModel ()Ljava/util/Map; -} - -public abstract interface class org/jetbrains/dokka/base/renderers/html/innerTemplating/TemplateModelMerger { - public abstract fun invoke (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/util/Map; -} - public final class org/jetbrains/dokka/base/resolvers/anchors/SymbolAnchorHint : org/jetbrains/dokka/model/properties/ExtraProperty { public static final field Companion Lorg/jetbrains/dokka/base/resolvers/anchors/SymbolAnchorHint$Companion; public fun (Ljava/lang/String;Lorg/jetbrains/dokka/pages/Kind;)V @@ -1035,12 +668,6 @@ public final class org/jetbrains/dokka/base/templating/AddToSourcesetDependencie public abstract interface class org/jetbrains/dokka/base/templating/Command { } -public abstract interface class org/jetbrains/dokka/base/templating/ImmediateHtmlCommandConsumer { - public abstract fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z - public abstract fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)V - public abstract fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; -} - public final class org/jetbrains/dokka/base/templating/InsertTemplateExtra : org/jetbrains/dokka/model/properties/ExtraProperty { public static final field Companion Lorg/jetbrains/dokka/base/templating/InsertTemplateExtra$Companion; public fun (Lorg/jetbrains/dokka/base/templating/Command;)V @@ -1108,6 +735,28 @@ public final class org/jetbrains/dokka/base/templating/ResolveLinkCommand : org/ public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; } +public final class org/jetbrains/dokka/base/templating/SearchRecord { + public static final field Companion Lorg/jetbrains/dokka/base/templating/SearchRecord$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/base/templating/SearchRecord; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/templating/SearchRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/templating/SearchRecord; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getLocation ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getSearchKeys ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/base/templating/SearchRecord$Companion { +} + public abstract class org/jetbrains/dokka/base/templating/SubstitutionCommand : org/jetbrains/dokka/base/templating/Command { public fun ()V public abstract fun getPattern ()Ljava/lang/String; @@ -1479,6 +1128,17 @@ public class org/jetbrains/dokka/base/translators/documentables/DefaultPageCreat protected fun toHeaderString (Lorg/jetbrains/dokka/model/doc/TagWrapper;)Ljava/lang/String; } +public final class org/jetbrains/dokka/base/translators/documentables/DocumentableLanguage : java/lang/Enum { + public static final field JAVA Lorg/jetbrains/dokka/base/translators/documentables/DocumentableLanguage; + public static final field KOTLIN Lorg/jetbrains/dokka/base/translators/documentables/DocumentableLanguage; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/base/translators/documentables/DocumentableLanguage; + public static fun values ()[Lorg/jetbrains/dokka/base/translators/documentables/DocumentableLanguage; +} + +public final class org/jetbrains/dokka/base/translators/documentables/DocumentableLanguageKt { + public static final fun documentableLanguage (Lorg/jetbrains/dokka/model/WithSources;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Lorg/jetbrains/dokka/base/translators/documentables/DocumentableLanguage; +} + public final class org/jetbrains/dokka/base/translators/documentables/DriClashAwareName : org/jetbrains/dokka/model/properties/ExtraProperty { public static final field Companion Lorg/jetbrains/dokka/base/translators/documentables/DriClashAwareName$Companion; public fun (Ljava/lang/String;)V diff --git a/plugins/base/base-test-utils/api/base-test-utils.api b/plugins/base/base-test-utils/api/base-test-utils.api index a6bdc192c0..3d8e447bc1 100644 --- a/plugins/base/base-test-utils/api/base-test-utils.api +++ b/plugins/base/base-test-utils/api/base-test-utils.api @@ -11,6 +11,7 @@ public final class org/jetbrains/dokka/base/testApi/testRunner/BaseDokkaTestGene } public final class org/jetbrains/dokka/base/testApi/testRunner/BaseTestBuilder : org/jetbrains/dokka/testApi/testRunner/TestBuilder { + public static final field Companion Lorg/jetbrains/dokka/base/testApi/testRunner/BaseTestBuilder$Companion; public fun ()V public fun build ()Lorg/jetbrains/dokka/base/testApi/testRunner/BaseTestMethods; public synthetic fun build ()Lorg/jetbrains/dokka/testApi/testRunner/TestMethods; @@ -34,6 +35,10 @@ public final class org/jetbrains/dokka/base/testApi/testRunner/BaseTestBuilder : public final fun setVerificationStage (Lkotlin/jvm/functions/Function1;)V } +public final class org/jetbrains/dokka/base/testApi/testRunner/BaseTestBuilder$Companion { + public final fun getDefaultRenderingStage ()Lkotlin/jvm/functions/Function2; +} + public final class org/jetbrains/dokka/base/testApi/testRunner/BaseTestMethods : org/jetbrains/dokka/testApi/testRunner/CoreTestMethods { public fun (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V public final fun component1 ()Lkotlin/jvm/functions/Function1; diff --git a/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt b/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt index 25f6656e23..2dbd5cce5d 100644 --- a/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt +++ b/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt @@ -4,6 +4,7 @@ import org.jetbrains.dokka.CoreExtensions import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.DokkaGenerator import org.jetbrains.dokka.base.generation.SingleModuleGeneration +import org.jetbrains.dokka.base.testApi.testRunner.BaseTestBuilder.Companion.defaultRenderingStage import org.jetbrains.dokka.model.DModule import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaContext @@ -50,10 +51,13 @@ class BaseDokkaTestGenerator( val transformedPages = singleModuleGeneration.transformPages(pages) pagesTransformationStage(transformedPages) - singleModuleGeneration.render(transformedPages) - renderingStage(transformedPages, context) + if(renderingStage != defaultRenderingStage) { + singleModuleGeneration.render(transformedPages) + renderingStage(transformedPages, context) + } singleModuleGeneration.reportAfterRendering() + } } @@ -87,7 +91,7 @@ class BaseTestBuilder : TestBuilder() { var documentablesTransformationStage: (DModule) -> Unit = {} var pagesGenerationStage: (RootPageNode) -> Unit = {} var pagesTransformationStage: (RootPageNode) -> Unit = {} - var renderingStage: (RootPageNode, DokkaContext) -> Unit = { _, _ -> } + var renderingStage: (RootPageNode, DokkaContext) -> Unit = defaultRenderingStage override fun build() = BaseTestMethods( pluginsSetupStage, @@ -100,6 +104,9 @@ class BaseTestBuilder : TestBuilder() { pagesTransformationStage, renderingStage ) + companion object { + val defaultRenderingStage: (RootPageNode, DokkaContext) -> Unit = { _, _ -> } + } } abstract class BaseAbstractTest(logger: TestLogger = TestLogger(DokkaConsoleLogger(LoggingLevel.DEBUG))) : AbstractTest( diff --git a/plugins/base/build.gradle.kts b/plugins/base/build.gradle.kts index 93348ed792..9ee6dd67f4 100644 --- a/plugins/base/build.gradle.kts +++ b/plugins/base/build.gradle.kts @@ -18,55 +18,14 @@ dependencies { } } - val freemarker_version: String by project - implementation("org.freemarker:freemarker:$freemarker_version") - testImplementation(project(":plugins:base:base-test-utils")) - testImplementation(project(":core:content-matcher-test-utils")) + testImplementation(project(":plugins:html")) - val kotlinx_html_version: String by project - implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:$kotlinx_html_version") + testImplementation(project(":core:content-matcher-test-utils")) testImplementation(project(":kotlin-analysis")) } -val projectDistDir = project(":plugins:base:frontend").file("dist") -val generateFrontendFiles = tasks.getByPath(":plugins:base:frontend:generateFrontendFiles") - -val copyJsFiles by tasks.registering(Copy::class){ - from(projectDistDir){ - include("*.js") - } - dependsOn(generateFrontendFiles) - destinationDir = File(sourceSets.main.get().resources.sourceDirectories.singleFile, "dokka/scripts") -} - -val copyCssFiles by tasks.registering(Copy::class){ - from(projectDistDir){ - include("*.css") - } - dependsOn(generateFrontendFiles) - destinationDir = File(sourceSets.main.get().resources.sourceDirectories.singleFile, "dokka/styles") -} - -val copyFrontend by tasks.registering { - dependsOn(copyJsFiles, copyCssFiles) -} - -tasks { - processResources { - dependsOn(copyFrontend) - } - - sourcesJar { - dependsOn(processResources) - } - - test { - maxHeapSize = "4G" - } -} - registerDokkaArtifactPublication("dokkaBase") { artifactId = "dokka-base" } diff --git a/plugins/base/src/main/kotlin/DokkaBase.kt b/plugins/base/src/main/kotlin/DokkaBase.kt index 86160b4a7f..15f47f6888 100644 --- a/plugins/base/src/main/kotlin/DokkaBase.kt +++ b/plugins/base/src/main/kotlin/DokkaBase.kt @@ -5,30 +5,22 @@ package org.jetbrains.dokka.base import org.jetbrains.dokka.CoreExtensions import org.jetbrains.dokka.analysis.KotlinAnalysis import org.jetbrains.dokka.base.renderers.* -import org.jetbrains.dokka.base.renderers.html.* -import org.jetbrains.dokka.base.renderers.html.command.consumers.PathToRootConsumer -import org.jetbrains.dokka.base.renderers.html.command.consumers.ResolveLinkConsumer import org.jetbrains.dokka.base.resolvers.external.ExternalLocationProviderFactory import org.jetbrains.dokka.base.resolvers.external.DefaultExternalLocationProviderFactory import org.jetbrains.dokka.base.resolvers.external.javadoc.JavadocExternalLocationProviderFactory import org.jetbrains.dokka.base.resolvers.local.DokkaLocationProviderFactory import org.jetbrains.dokka.base.resolvers.local.LocationProviderFactory -import org.jetbrains.dokka.base.resolvers.shared.RecognizedLinkFormat import org.jetbrains.dokka.base.signatures.KotlinSignatureProvider import org.jetbrains.dokka.base.signatures.SignatureProvider -import org.jetbrains.dokka.base.templating.ImmediateHtmlCommandConsumer import org.jetbrains.dokka.base.transformers.documentables.* import org.jetbrains.dokka.base.transformers.pages.annotations.SinceKotlinTransformer import org.jetbrains.dokka.base.transformers.pages.comments.CommentsToContentConverter import org.jetbrains.dokka.base.transformers.pages.comments.DocTagToContentConverter import org.jetbrains.dokka.base.transformers.pages.merger.* -import org.jetbrains.dokka.base.transformers.pages.samples.DefaultSamplesTransformer -import org.jetbrains.dokka.base.transformers.pages.sourcelinks.SourceLinksTransformer import org.jetbrains.dokka.base.translators.descriptors.DefaultDescriptorToDocumentableTranslator import org.jetbrains.dokka.base.translators.documentables.DefaultDocumentableToPageTranslator import org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator import org.jetbrains.dokka.base.generation.SingleModuleGeneration -import org.jetbrains.dokka.base.renderers.html.command.consumers.ReplaceVersionsConsumer import org.jetbrains.dokka.base.transformers.pages.tags.CustomTagContentProvider import org.jetbrains.dokka.base.transformers.pages.tags.SinceKotlinTagContentProvider import org.jetbrains.dokka.base.translators.descriptors.DefaultExternalDocumentablesProvider @@ -36,9 +28,7 @@ import org.jetbrains.dokka.base.translators.descriptors.ExternalClasslikesTransl import org.jetbrains.dokka.base.translators.descriptors.ExternalDocumentablesProvider import org.jetbrains.dokka.base.utils.NoopIntellijLoggerFactory import org.jetbrains.dokka.plugability.DokkaPlugin -import org.jetbrains.dokka.plugability.configuration import org.jetbrains.dokka.transformers.documentation.PreMergeDocumentableTransformer -import org.jetbrains.dokka.transformers.pages.PageTransformer class DokkaBase : DokkaPlugin() { @@ -50,10 +40,7 @@ class DokkaBase : DokkaPlugin() { val locationProviderFactory by extensionPoint() val externalLocationProviderFactory by extensionPoint() val outputWriter by extensionPoint() - val htmlPreprocessors by extensionPoint() val kotlinAnalysis by extensionPoint() - val tabSortingStrategy by extensionPoint() - val immediateHtmlCommandConsumer by extensionPoint() val externalDocumentablesProvider by extensionPoint() val externalClasslikesTranslator by extensionPoint() @@ -178,14 +165,6 @@ class DokkaBase : DokkaPlugin() { } } - val defaultTabSortingStrategy by extending { - tabSortingStrategy with DefaultTabSortingStrategy() - } - - val htmlRenderer by extending { - CoreExtensions.renderer providing ::HtmlRenderer - } - val defaultKotlinAnalysis by extending { kotlinAnalysis providing { ctx -> KotlinAnalysis( @@ -211,67 +190,67 @@ class DokkaBase : DokkaPlugin() { outputWriter providing ::FileWriter } - val rootCreator by extending { - htmlPreprocessors with RootCreator applyIf { !delayTemplateSubstitution } - } - - val defaultSamplesTransformer by extending { - CoreExtensions.pageTransformer providing ::DefaultSamplesTransformer order { - before(pageMerger) - } - } - - val sourceLinksTransformer by extending { - htmlPreprocessors providing ::SourceLinksTransformer order { after(rootCreator) } - } - - val navigationPageInstaller by extending { - htmlPreprocessors providing ::NavigationPageInstaller order { after(rootCreator) } - } - - val scriptsInstaller by extending { - htmlPreprocessors providing ::ScriptsInstaller order { after(rootCreator) } - } - - val stylesInstaller by extending { - htmlPreprocessors providing ::StylesInstaller order { after(rootCreator) } - } - - val assetsInstaller by extending { - htmlPreprocessors with AssetsInstaller order { after(rootCreator) } applyIf { !delayTemplateSubstitution } - } - - val customResourceInstaller by extending { - htmlPreprocessors providing { ctx -> CustomResourceInstaller(ctx) } order { - after(stylesInstaller) - after(scriptsInstaller) - after(assetsInstaller) - } - } - - val packageListCreator by extending { - htmlPreprocessors providing { - PackageListCreator(it, RecognizedLinkFormat.DokkaHtml) - } order { after(rootCreator) } - } - - val sourcesetDependencyAppender by extending { - htmlPreprocessors providing ::SourcesetDependencyAppender order { after(rootCreator) } - } - - val resolveLinkConsumer by extending { - immediateHtmlCommandConsumer with ResolveLinkConsumer - } - val replaceVersionConsumer by extending { - immediateHtmlCommandConsumer providing ::ReplaceVersionsConsumer - } - val pathToRootConsumer by extending { - immediateHtmlCommandConsumer with PathToRootConsumer - } - val baseSearchbarDataInstaller by extending { - htmlPreprocessors providing ::SearchbarDataInstaller order { after(sourceLinksTransformer) } - } - + /* val rootCreator by extending { + htmlPreprocessors with RootCreator applyIf { !delayTemplateSubstitution } + } + + val defaultSamplesTransformer by extending { + CoreExtensions.pageTransformer providing ::DefaultSamplesTransformer order { + before(pageMerger) + } + } + + val sourceLinksTransformer by extending { + htmlPreprocessors providing ::SourceLinksTransformer order { after(rootCreator) } + } + + val navigationPageInstaller by extending { + htmlPreprocessors providing ::NavigationPageInstaller order { after(rootCreator) } + } + + val scriptsInstaller by extending { + htmlPreprocessors providing ::ScriptsInstaller order { after(rootCreator) } + } + + val stylesInstaller by extending { + htmlPreprocessors providing ::StylesInstaller order { after(rootCreator) } + } + + val assetsInstaller by extending { + htmlPreprocessors with AssetsInstaller order { after(rootCreator) } applyIf { !delayTemplateSubstitution } + } + + val customResourceInstaller by extending { + htmlPreprocessors providing { ctx -> CustomResourceInstaller(ctx) } order { + after(stylesInstaller) + after(scriptsInstaller) + after(assetsInstaller) + } + } + + val packageListCreator by extending { + htmlPreprocessors providing { + PackageListCreator(it, RecognizedLinkFormat.DokkaHtml) + } order { after(rootCreator) } + } + + val sourcesetDependencyAppender by extending { + htmlPreprocessors providing ::SourcesetDependencyAppender order { after(rootCreator) } + } + + val resolveLinkConsumer by extending { + immediateHtmlCommandConsumer with ResolveLinkConsumer + } + val replaceVersionConsumer by extending { + immediateHtmlCommandConsumer providing ::ReplaceVersionsConsumer + } + val pathToRootConsumer by extending { + immediateHtmlCommandConsumer with PathToRootConsumer + } + val baseSearchbarDataInstaller by extending { + htmlPreprocessors providing ::SearchbarDataInstaller order { after(sourceLinksTransformer) } + } + */ val defaultExternalDocumentablesProvider by extending { externalDocumentablesProvider providing ::DefaultExternalDocumentablesProvider } diff --git a/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt b/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt index a9ccf600e7..5dcd63a3c1 100644 --- a/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt +++ b/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt @@ -5,11 +5,14 @@ import java.io.File import java.time.Year data class DokkaBaseConfiguration( + @Deprecated("It will be removed soon. This option has moved into HTML plugin configuration `DokkaHtmlConfiguration`") var customStyleSheets: List = defaultCustomStyleSheets, + @Deprecated("It will be removed soon. This option has moved into HTML plugin configuration `DokkaHtmlConfiguration`") var customAssets: List = defaultCustomAssets, var separateInheritedMembers: Boolean = separateInheritedMembersDefault, var footerMessage: String = defaultFooterMessage, var mergeImplicitExpectActualDeclarations: Boolean = mergeImplicitExpectActualDeclarationsDefault, + @Deprecated("It will be removed soon. This option has moved into HTML plugin configuration `DokkaHtmlConfiguration`") var templatesDir: File? = defaultTemplatesDir ) : ConfigurableBlock { companion object { diff --git a/plugins/base/src/main/kotlin/renderers/shortenToUrl.kt b/plugins/base/src/main/kotlin/renderers/shortenToUrl.kt new file mode 100644 index 0000000000..aed8172262 --- /dev/null +++ b/plugins/base/src/main/kotlin/renderers/shortenToUrl.kt @@ -0,0 +1,11 @@ +package org.jetbrains.dokka.base.renderers + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.DisplaySourceSet + +@JvmName("shortenSourceSetsToUrl") +internal fun Set.shortenToUrl() = + sortedBy { it.sourceSetIDs.merged.let { it.scopeId + it.sourceSetName } }.joinToString().hashCode() + +@JvmName("shortenDrisToUrl") +internal fun Set.shortenToUrl() = sortedBy { it.toString() }.joinToString().hashCode() diff --git a/plugins/base/src/main/kotlin/templating/AddToSearch.kt b/plugins/base/src/main/kotlin/templating/AddToSearch.kt index fdec45c254..73b1bcb025 100644 --- a/plugins/base/src/main/kotlin/templating/AddToSearch.kt +++ b/plugins/base/src/main/kotlin/templating/AddToSearch.kt @@ -1,5 +1,11 @@ package org.jetbrains.dokka.base.templating -import org.jetbrains.dokka.base.renderers.html.SearchRecord - +data class SearchRecord( + val name: String, + val description: String? = null, + val location: String, + val searchKeys: List = listOf(name) +) { + companion object +} data class AddToSearch(val moduleName: String, val elements: List): Command \ No newline at end of file diff --git a/plugins/base/src/main/kotlin/translators/documentables/documentableLanguage.kt b/plugins/base/src/main/kotlin/translators/documentables/documentableLanguage.kt index b3ce7c5c8a..c556a23e44 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/documentableLanguage.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/documentableLanguage.kt @@ -4,11 +4,11 @@ import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.analysis.PsiDocumentableSource import org.jetbrains.dokka.model.WithSources -internal enum class DocumentableLanguage { +enum class DocumentableLanguage { JAVA, KOTLIN } -internal fun WithSources.documentableLanguage(sourceSet: DokkaConfiguration.DokkaSourceSet): DocumentableLanguage = +fun WithSources.documentableLanguage(sourceSet: DokkaConfiguration.DokkaSourceSet): DocumentableLanguage = when (sources[sourceSet]) { is PsiDocumentableSource -> DocumentableLanguage.JAVA else -> DocumentableLanguage.KOTLIN diff --git a/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/GfmPlugin.kt b/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/GfmPlugin.kt index b3610809ca..1ef8a3b957 100644 --- a/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/GfmPlugin.kt +++ b/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/GfmPlugin.kt @@ -19,7 +19,7 @@ class GfmPlugin : DokkaPlugin() { private val dokkaBase by lazy { plugin() } val renderer by extending { - CoreExtensions.renderer providing ::CommonmarkRenderer override dokkaBase.htmlRenderer + CoreExtensions.renderer providing ::CommonmarkRenderer } val locationProvider by extending { diff --git a/plugins/html/api/html.api b/plugins/html/api/html.api new file mode 100644 index 0000000000..de16382838 --- /dev/null +++ b/plugins/html/api/html.api @@ -0,0 +1,385 @@ +public abstract class org/jetbrains/dokka/base/renderers/html/NavigationDataProvider { + public fun ()V + public fun navigableChildren (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; + public fun visit (Lorg/jetbrains/dokka/pages/ContentPage;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; +} + +public final class org/jetbrains/dokka/html/DokkaHtml : org/jetbrains/dokka/plugability/DokkaPlugin { + public fun ()V + public final fun getAssetsInstaller ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getBaseSearchbarDataInstaller ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getCustomResourceInstaller ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getDefaultTabSortingStrategy ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getHtmlPreprocessors ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getHtmlRenderer ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getImmediateHtmlCommandConsumer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getNavigationPageInstaller ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getPackageListCreator ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getPathToRootConsumer ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getReplaceVersionConsumer ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getResolveLinkConsumer ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getRootCreator ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getScriptsInstaller ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getSourceLinksTransformer ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getSourcesetDependencyAppender ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getStylesInstaller ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getTabSortingStrategy ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; +} + +public final class org/jetbrains/dokka/html/DokkaHtmlConfiguration : org/jetbrains/dokka/plugability/ConfigurableBlock { + public static final field Companion Lorg/jetbrains/dokka/html/DokkaHtmlConfiguration$Companion; + public static final field mergeImplicitExpectActualDeclarationsDefault Z + public fun ()V + public fun (Ljava/util/List;Ljava/util/List;ZLjava/io/File;)V + public synthetic fun (Ljava/util/List;Ljava/util/List;ZLjava/io/File;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Z + public final fun component4 ()Ljava/io/File; + public final fun copy (Ljava/util/List;Ljava/util/List;ZLjava/io/File;)Lorg/jetbrains/dokka/html/DokkaHtmlConfiguration; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/html/DokkaHtmlConfiguration;Ljava/util/List;Ljava/util/List;ZLjava/io/File;ILjava/lang/Object;)Lorg/jetbrains/dokka/html/DokkaHtmlConfiguration; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomAssets ()Ljava/util/List; + public final fun getCustomStyleSheets ()Ljava/util/List; + public final fun getMergeImplicitExpectActualDeclarations ()Z + public final fun getTemplatesDir ()Ljava/io/File; + public fun hashCode ()I + public final fun setCustomAssets (Ljava/util/List;)V + public final fun setCustomStyleSheets (Ljava/util/List;)V + public final fun setMergeImplicitExpectActualDeclarations (Z)V + public final fun setTemplatesDir (Ljava/io/File;)V + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/html/DokkaHtmlConfiguration$Companion { + public final fun getDefaultCustomAssets ()Ljava/util/List; + public final fun getDefaultCustomStyleSheets ()Ljava/util/List; + public final fun getDefaultTemplatesDir ()Ljava/io/File; +} + +public final class org/jetbrains/dokka/html/renderers/AssetsInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { + public static final field INSTANCE Lorg/jetbrains/dokka/html/renderers/AssetsInstaller; + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/html/renderers/CustomResourceInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public final fun getDokkaContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/html/renderers/DefaultTabSortingStrategy : org/jetbrains/dokka/base/renderers/TabSortingStrategy { + public fun ()V + public fun sort (Ljava/util/Collection;)Ljava/util/List; +} + +public final class org/jetbrains/dokka/html/renderers/HtmlFormatingUtilsKt { + public static final fun buildBreakableDotSeparatedHtml (Lkotlinx/html/FlowContent;Ljava/lang/String;)V + public static final fun buildBreakableText (Lkotlinx/html/FlowContent;Ljava/lang/String;)V + public static final fun buildTextBreakableAfterCapitalLetters (Lkotlinx/html/FlowContent;Ljava/lang/String;Z)V + public static synthetic fun buildTextBreakableAfterCapitalLetters$default (Lkotlinx/html/FlowContent;Ljava/lang/String;ZILjava/lang/Object;)V +} + +public class org/jetbrains/dokka/html/renderers/HtmlRenderer : org/jetbrains/dokka/base/renderers/DefaultRenderer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public final fun buildAnchorCopyButton (Lkotlinx/html/FlowContent;Ljava/lang/String;)V + public synthetic fun buildCodeBlock (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentCodeBlock;Lorg/jetbrains/dokka/pages/ContentPage;)V + public fun buildCodeBlock (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentCodeBlock;Lorg/jetbrains/dokka/pages/ContentPage;)V + public synthetic fun buildCodeInline (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentCodeInline;Lorg/jetbrains/dokka/pages/ContentPage;)V + public fun buildCodeInline (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentCodeInline;Lorg/jetbrains/dokka/pages/ContentPage;)V + public synthetic fun buildDRILink (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentDRILink;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun buildDRILink (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentDRILink;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public final fun buildDefaultTable (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentTable;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public synthetic fun buildDivergent (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentDivergentGroup;Lorg/jetbrains/dokka/pages/ContentPage;)V + public fun buildDivergent (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentDivergentGroup;Lorg/jetbrains/dokka/pages/ContentPage;)V + public fun buildError (Lorg/jetbrains/dokka/pages/ContentNode;)V + public synthetic fun buildHeader (Ljava/lang/Object;ILorg/jetbrains/dokka/pages/ContentHeader;Lkotlin/jvm/functions/Function1;)V + public fun buildHeader (Lkotlinx/html/FlowContent;ILorg/jetbrains/dokka/pages/ContentHeader;Lkotlin/jvm/functions/Function1;)V + public fun buildHtml (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/lang/String; + public synthetic fun buildLineBreak (Ljava/lang/Object;)V + public synthetic fun buildLineBreak (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentBreakLine;Lorg/jetbrains/dokka/pages/ContentPage;)V + public fun buildLineBreak (Lkotlinx/html/FlowContent;)V + public fun buildLineBreak (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentBreakLine;Lorg/jetbrains/dokka/pages/ContentPage;)V + public synthetic fun buildLink (Ljava/lang/Object;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public fun buildLink (Lkotlinx/html/FlowContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public final fun buildLink (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun buildLink$default (Lorg/jetbrains/dokka/html/renderers/HtmlRenderer;Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public synthetic fun buildList (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentList;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun buildList (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentList;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun buildListItems (Lkotlinx/html/OL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun buildListItems (Lkotlinx/html/UL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public static synthetic fun buildListItems$default (Lorg/jetbrains/dokka/html/renderers/HtmlRenderer;Lkotlinx/html/OL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;ILjava/lang/Object;)V + public static synthetic fun buildListItems$default (Lorg/jetbrains/dokka/html/renderers/HtmlRenderer;Lkotlinx/html/UL;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;ILjava/lang/Object;)V + public synthetic fun buildNavigation (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/PageNode;)V + public fun buildNavigation (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/PageNode;)V + public fun buildPage (Lorg/jetbrains/dokka/pages/ContentPage;Lkotlin/jvm/functions/Function2;)Ljava/lang/String; + public synthetic fun buildPlatformDependent (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/PlatformHintedContent;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun buildPlatformDependent (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/PlatformHintedContent;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public synthetic fun buildResource (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;Lorg/jetbrains/dokka/pages/ContentPage;)V + public fun buildResource (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;Lorg/jetbrains/dokka/pages/ContentPage;)V + public synthetic fun buildTable (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentTable;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun buildTable (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentTable;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public synthetic fun buildText (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentText;)V + public fun buildText (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentText;)V + public fun clickableLogo (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/PageNode;Ljava/lang/String;)V + public synthetic fun getPreprocessors ()Ljava/lang/Iterable; + protected fun getPreprocessors ()Ljava/util/List; + public fun render (Lorg/jetbrains/dokka/pages/RootPageNode;)V + public synthetic fun wrapGroup (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentGroup;Lorg/jetbrains/dokka/pages/ContentPage;Lkotlin/jvm/functions/Function1;)V + public fun wrapGroup (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentGroup;Lorg/jetbrains/dokka/pages/ContentPage;Lkotlin/jvm/functions/Function1;)V +} + +public final class org/jetbrains/dokka/html/renderers/HtmlRendererKt { + public static final fun joinAttr (Ljava/util/List;)Ljava/lang/String; +} + +public final class org/jetbrains/dokka/html/renderers/NavigationNode : org/jetbrains/dokka/model/WithChildren { + public fun (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component3 ()Ljava/util/Set; + public final fun component4 ()Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/html/renderers/NavigationNode;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public final fun getIcon ()Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public final fun getName ()Ljava/lang/String; + public final fun getSourceSets ()Ljava/util/Set; + public final fun getStyles ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/html/renderers/NavigationNodeIcon : java/lang/Enum { + public static final field ABSTRACT_CLASS Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field ABSTRACT_CLASS_KT Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field ANNOTATION_CLASS Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field ANNOTATION_CLASS_KT Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field CLASS Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field CLASS_KT Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field ENUM_CLASS Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field ENUM_CLASS_KT Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field EXCEPTION Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field FUNCTION Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field INTERFACE Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field INTERFACE_KT Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field OBJECT Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field VAL Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static final field VAR Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; + public static fun values ()[Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon; +} + +public final class org/jetbrains/dokka/html/renderers/NavigationPage : org/jetbrains/dokka/pages/RendererSpecificPage { + public fun (Lorg/jetbrains/dokka/html/renderers/NavigationNode;Ljava/lang/String;Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun getChildren ()Ljava/util/List; + public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; + public final fun getModuleName ()Ljava/lang/String; + public fun getName ()Ljava/lang/String; + public final fun getRoot ()Lorg/jetbrains/dokka/html/renderers/NavigationNode; + public fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy$Callback; + public synthetic fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/html/renderers/NavigationPage; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; +} + +public class org/jetbrains/dokka/html/renderers/NavigationPageInstaller : org/jetbrains/dokka/base/renderers/html/NavigationDataProvider, org/jetbrains/dokka/transformers/pages/PageTransformer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/html/renderers/NavigationPageKt { + public static final fun transform (Lorg/jetbrains/dokka/html/renderers/NavigationNode;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; + public static final fun transform (Lorg/jetbrains/dokka/html/renderers/NavigationPage;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/html/renderers/NavigationPage; +} + +public class org/jetbrains/dokka/html/renderers/STRIKE : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { + public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V + public fun getConsumer ()Lkotlinx/html/TagConsumer; +} + +public final class org/jetbrains/dokka/html/renderers/ScriptsInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public class org/jetbrains/dokka/html/renderers/SearchbarDataInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun createSearchRecord (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/base/templating/SearchRecord; + public fun generatePagesList (Ljava/util/List;Lorg/jetbrains/dokka/pages/DriResolver;)Ljava/util/List; + public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; + public fun processPage (Lorg/jetbrains/dokka/pages/PageNode;)Ljava/util/List; +} + +public final class org/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets { + public fun (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/util/Set; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;)Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets; + public fun equals (Ljava/lang/Object;)Z + public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public final fun getSourceSet ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/html/renderers/SearchbarDataInstaller$SignatureWithId { + public fun (Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets;Ljava/lang/String;)V + public fun (Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/ContentPage;)V + public final fun component1 ()Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets;Ljava/lang/String;)Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$SignatureWithId; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$SignatureWithId;Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$SignatureWithId; + public fun equals (Ljava/lang/Object;)Z + public final fun getDisplayableSignature ()Ljava/lang/String; + public final fun getDriWithSourceSets ()Lorg/jetbrains/dokka/html/renderers/SearchbarDataInstaller$DRIWithSourceSets; + public final fun getId ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/html/renderers/SourcesetDependencyAppender : org/jetbrains/dokka/transformers/pages/PageTransformer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/html/renderers/StylesInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/html/renderers/TagsKt { + public static final field TEMPLATE_COMMAND_BEGIN_BORDER Ljava/lang/String; + public static final field TEMPLATE_COMMAND_END_BORDER Ljava/lang/String; + public static final field TEMPLATE_COMMAND_SEPARATOR Ljava/lang/String; + public static final fun buildAsInnerHtml (Lkotlin/jvm/functions/Function1;)Ljava/lang/String; + public static final fun strike (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun strike$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public static final fun templateCommand (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V + public static final fun templateCommand (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static synthetic fun templateCommand$default (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public static synthetic fun templateCommand$default (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun templateCommandAsHtmlComment (Ljava/lang/Appendable;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V + public static final fun templateCommandAsHtmlComment (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun templateCommandAsHtmlComment$default (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public static final fun templateCommandFor (Lorg/jetbrains/dokka/base/templating/Command;Lkotlinx/html/TagConsumer;)Lorg/jetbrains/dokka/html/renderers/TemplateCommand; + public static final fun underline (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun underline$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public static final fun wbr (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun wbr$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V +} + +public final class org/jetbrains/dokka/html/renderers/TemplateCommand : kotlinx/html/HTMLTag, kotlinx/html/CommonAttributeGroupFacadeFlowInteractivePhrasingContent { + public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V +} + +public class org/jetbrains/dokka/html/renderers/UNDERLINE : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { + public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V + public fun getConsumer ()Lkotlinx/html/TagConsumer; +} + +public class org/jetbrains/dokka/html/renderers/WBR : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { + public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V +} + +public final class org/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer : kotlinx/html/TagConsumer { + public fun (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun finalize ()Ljava/lang/Object; + public fun onTagAttributeChange (Lkotlinx/html/Tag;Ljava/lang/String;Ljava/lang/String;)V + public fun onTagComment (Ljava/lang/CharSequence;)V + public fun onTagContent (Ljava/lang/CharSequence;)V + public fun onTagContentEntity (Lkotlinx/html/Entities;)V + public fun onTagContentUnsafe (Lkotlin/jvm/functions/Function1;)V + public fun onTagEnd (Lkotlinx/html/Tag;)V + public fun onTagError (Lkotlinx/html/Tag;Ljava/lang/Throwable;)V + public fun onTagEvent (Lkotlinx/html/Tag;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public fun onTagStart (Lkotlinx/html/Tag;)V + public final fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V + public final fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/html/renderers/command/consumers/PathToRootConsumer : org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer { + public static final field INSTANCE Lorg/jetbrains/dokka/html/renderers/command/consumers/PathToRootConsumer; + public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z + public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)V + public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/html/renderers/command/consumers/ReplaceVersionsConsumer : org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z + public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)V + public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/html/renderers/command/consumers/ResolveLinkConsumer : org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer { + public static final field INSTANCE Lorg/jetbrains/dokka/html/renderers/command/consumers/ResolveLinkConsumer; + public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z + public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)V + public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory : org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelFactory { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;ZLjava/lang/String;)Ljava/util/Map; + public fun buildSharedModel ()Ljava/util/Map; + public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; +} + +public final class org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory$SourceSetModel { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory$SourceSetModel; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory$SourceSetModel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory$SourceSetModel; + public fun equals (Ljava/lang/Object;)Z + public final fun getFilter ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getPlatform ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelMerger : org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelMerger { + public fun ()V + public fun invoke (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/util/Map; +} + +public final class org/jetbrains/dokka/html/renderers/innerTemplating/DokkaTemplateTypes : java/lang/Enum { + public static final field BASE Lorg/jetbrains/dokka/html/renderers/innerTemplating/DokkaTemplateTypes; + public final fun getPath ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/html/renderers/innerTemplating/DokkaTemplateTypes; + public static fun values ()[Lorg/jetbrains/dokka/html/renderers/innerTemplating/DokkaTemplateTypes; +} + +public final class org/jetbrains/dokka/html/renderers/innerTemplating/HtmlTemplater { + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public final fun renderFromTemplate (Lorg/jetbrains/dokka/html/renderers/innerTemplating/DokkaTemplateTypes;Lkotlin/jvm/functions/Function0;)Ljava/lang/String; + public final fun setupSharedModel (Ljava/util/Map;)V +} + +public abstract interface class org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelFactory { + public abstract fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;ZLjava/lang/String;)Ljava/util/Map; + public abstract fun buildSharedModel ()Ljava/util/Map; +} + +public abstract interface class org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelMerger { + public abstract fun invoke (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/util/Map; +} + +public abstract interface class org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer { + public abstract fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z + public abstract fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)V + public abstract fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; +} + diff --git a/plugins/html/build.gradle.kts b/plugins/html/build.gradle.kts new file mode 100644 index 0000000000..9a41181868 --- /dev/null +++ b/plugins/html/build.gradle.kts @@ -0,0 +1,73 @@ +import org.jetbrains.registerDokkaArtifactPublication + +dependencies { + implementation(project(":plugins:base")) + + val coroutines_version: String by project + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") + + compileOnly(project(":kotlin-analysis")) + val jsoup_version: String by project + implementation("org.jsoup:jsoup:$jsoup_version") + + val jackson_version: String by project + implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jackson_version") + val jackson_databind_version: String by project + constraints { + implementation("com.fasterxml.jackson.core:jackson-databind:$jackson_databind_version") { + because("CVE-2022-42003") + } + } + + val freemarker_version: String by project + implementation("org.freemarker:freemarker:$freemarker_version") + + testImplementation(project(":plugins:base:base-test-utils")) + testImplementation(project(":core:content-matcher-test-utils")) + + val kotlinx_html_version: String by project + implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:$kotlinx_html_version") + + testImplementation(project(":kotlin-analysis")) +} + +val projectDistDir = project(":plugins:html:frontend").file("dist") +val generateFrontendFiles = tasks.getByPath(":plugins:html:frontend:generateFrontendFiles") + +val copyJsFiles by tasks.registering(Copy::class){ + from(projectDistDir){ + include("*.js") + } + dependsOn(generateFrontendFiles) + destinationDir = File(sourceSets.main.get().resources.sourceDirectories.singleFile, "dokka/scripts") +} + +val copyCssFiles by tasks.registering(Copy::class){ + from(projectDistDir){ + include("*.css") + } + dependsOn(generateFrontendFiles) + destinationDir = File(sourceSets.main.get().resources.sourceDirectories.singleFile, "dokka/styles") +} + +val copyFrontend by tasks.registering { + dependsOn(copyJsFiles, copyCssFiles) +} + +tasks { + processResources { + dependsOn(copyFrontend) + } + + sourcesJar { + dependsOn(processResources) + } + + test { + maxHeapSize = "4G" + } +} + +registerDokkaArtifactPublication("htmlPlugin") { + artifactId = "html-plugin" +} \ No newline at end of file diff --git a/plugins/base/frontend/.gitignore b/plugins/html/frontend/.gitignore similarity index 100% rename from plugins/base/frontend/.gitignore rename to plugins/html/frontend/.gitignore diff --git a/plugins/base/frontend/build.gradle.kts b/plugins/html/frontend/build.gradle.kts similarity index 100% rename from plugins/base/frontend/build.gradle.kts rename to plugins/html/frontend/build.gradle.kts diff --git a/plugins/base/frontend/package-lock.json b/plugins/html/frontend/package-lock.json similarity index 100% rename from plugins/base/frontend/package-lock.json rename to plugins/html/frontend/package-lock.json diff --git a/plugins/base/frontend/package.json b/plugins/html/frontend/package.json similarity index 100% rename from plugins/base/frontend/package.json rename to plugins/html/frontend/package.json diff --git a/plugins/base/frontend/postcss.config.js b/plugins/html/frontend/postcss.config.js similarity index 100% rename from plugins/base/frontend/postcss.config.js rename to plugins/html/frontend/postcss.config.js diff --git a/plugins/base/frontend/src/main/components/app/index.scss b/plugins/html/frontend/src/main/components/app/index.scss similarity index 100% rename from plugins/base/frontend/src/main/components/app/index.scss rename to plugins/html/frontend/src/main/components/app/index.scss diff --git a/plugins/base/frontend/src/main/components/app/index.tsx b/plugins/html/frontend/src/main/components/app/index.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/app/index.tsx rename to plugins/html/frontend/src/main/components/app/index.tsx diff --git a/plugins/base/frontend/src/main/components/assets/clear.svg b/plugins/html/frontend/src/main/components/assets/clear.svg similarity index 100% rename from plugins/base/frontend/src/main/components/assets/clear.svg rename to plugins/html/frontend/src/main/components/assets/clear.svg diff --git a/plugins/base/frontend/src/main/components/assets/searchIcon.svg b/plugins/html/frontend/src/main/components/assets/searchIcon.svg similarity index 100% rename from plugins/base/frontend/src/main/components/assets/searchIcon.svg rename to plugins/html/frontend/src/main/components/assets/searchIcon.svg diff --git a/plugins/base/frontend/src/main/components/root.tsx b/plugins/html/frontend/src/main/components/root.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/root.tsx rename to plugins/html/frontend/src/main/components/root.tsx diff --git a/plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx b/plugins/html/frontend/src/main/components/search/dokkaFuzzyFilter.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx rename to plugins/html/frontend/src/main/components/search/dokkaFuzzyFilter.tsx diff --git a/plugins/base/frontend/src/main/components/search/dokkaSearchAnchor.tsx b/plugins/html/frontend/src/main/components/search/dokkaSearchAnchor.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/search/dokkaSearchAnchor.tsx rename to plugins/html/frontend/src/main/components/search/dokkaSearchAnchor.tsx diff --git a/plugins/base/frontend/src/main/components/search/search.scss b/plugins/html/frontend/src/main/components/search/search.scss similarity index 100% rename from plugins/base/frontend/src/main/components/search/search.scss rename to plugins/html/frontend/src/main/components/search/search.scss diff --git a/plugins/base/frontend/src/main/components/search/search.tsx b/plugins/html/frontend/src/main/components/search/search.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/search/search.tsx rename to plugins/html/frontend/src/main/components/search/search.tsx diff --git a/plugins/base/frontend/src/main/components/search/searchResultRow.tsx b/plugins/html/frontend/src/main/components/search/searchResultRow.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/search/searchResultRow.tsx rename to plugins/html/frontend/src/main/components/search/searchResultRow.tsx diff --git a/plugins/base/frontend/src/main/components/search/types.ts b/plugins/html/frontend/src/main/components/search/types.ts similarity index 100% rename from plugins/base/frontend/src/main/components/search/types.ts rename to plugins/html/frontend/src/main/components/search/types.ts diff --git a/plugins/base/frontend/src/main/components/utils/hotkey.ts b/plugins/html/frontend/src/main/components/utils/hotkey.ts similarity index 100% rename from plugins/base/frontend/src/main/components/utils/hotkey.ts rename to plugins/html/frontend/src/main/components/utils/hotkey.ts diff --git a/plugins/base/frontend/src/main/components/utils/os.ts b/plugins/html/frontend/src/main/components/utils/os.ts similarity index 100% rename from plugins/base/frontend/src/main/components/utils/os.ts rename to plugins/html/frontend/src/main/components/utils/os.ts diff --git a/plugins/base/frontend/src/main/components/utils/requests.tsx b/plugins/html/frontend/src/main/components/utils/requests.tsx similarity index 100% rename from plugins/base/frontend/src/main/components/utils/requests.tsx rename to plugins/html/frontend/src/main/components/utils/requests.tsx diff --git a/plugins/base/frontend/src/main/scss/index.scss b/plugins/html/frontend/src/main/scss/index.scss similarity index 100% rename from plugins/base/frontend/src/main/scss/index.scss rename to plugins/html/frontend/src/main/scss/index.scss diff --git a/plugins/base/frontend/src/main/types/@jetbrains/index.d.ts b/plugins/html/frontend/src/main/types/@jetbrains/index.d.ts similarity index 100% rename from plugins/base/frontend/src/main/types/@jetbrains/index.d.ts rename to plugins/html/frontend/src/main/types/@jetbrains/index.d.ts diff --git a/plugins/base/frontend/stylelint.config.js b/plugins/html/frontend/stylelint.config.js similarity index 100% rename from plugins/base/frontend/stylelint.config.js rename to plugins/html/frontend/stylelint.config.js diff --git a/plugins/base/frontend/tsconfig.json b/plugins/html/frontend/tsconfig.json similarity index 100% rename from plugins/base/frontend/tsconfig.json rename to plugins/html/frontend/tsconfig.json diff --git a/plugins/base/frontend/webpack.config.js b/plugins/html/frontend/webpack.config.js similarity index 100% rename from plugins/base/frontend/webpack.config.js rename to plugins/html/frontend/webpack.config.js diff --git a/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtml.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtml.kt new file mode 100644 index 0000000000..551d72f15f --- /dev/null +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtml.kt @@ -0,0 +1,84 @@ +@file:Suppress("unused", "MemberVisibilityCanBePrivate") + +package org.jetbrains.dokka.html + +import org.jetbrains.dokka.CoreExtensions +import org.jetbrains.dokka.base.renderers.RootCreator +import org.jetbrains.dokka.base.renderers.PackageListCreator +import org.jetbrains.dokka.base.renderers.TabSortingStrategy +import org.jetbrains.dokka.html.renderers.* +import org.jetbrains.dokka.base.resolvers.shared.RecognizedLinkFormat +import org.jetbrains.dokka.html.templating.ImmediateHtmlCommandConsumer +import org.jetbrains.dokka.base.transformers.pages.sourcelinks.SourceLinksTransformer +import org.jetbrains.dokka.html.renderers.command.consumers.* +import org.jetbrains.dokka.plugability.DokkaPlugin +import org.jetbrains.dokka.transformers.pages.PageTransformer + +class DokkaHtml : DokkaPlugin() { + val htmlPreprocessors by extensionPoint() + val tabSortingStrategy by extensionPoint() + val immediateHtmlCommandConsumer by extensionPoint() + + val defaultTabSortingStrategy by extending { + tabSortingStrategy with DefaultTabSortingStrategy() + } + + val htmlRenderer by extending { + CoreExtensions.renderer providing ::HtmlRenderer + } + + val rootCreator by extending { + htmlPreprocessors with RootCreator applyIf { !delayTemplateSubstitution } + } + + val sourceLinksTransformer by extending { + htmlPreprocessors providing ::SourceLinksTransformer order { after(rootCreator) } + } + + val navigationPageInstaller by extending { + htmlPreprocessors providing ::NavigationPageInstaller order { after(rootCreator) } + } + + val scriptsInstaller by extending { + htmlPreprocessors providing ::ScriptsInstaller order { after(rootCreator) } + } + + val stylesInstaller by extending { + htmlPreprocessors providing ::StylesInstaller order { after(rootCreator) } + } + + val assetsInstaller by extending { + htmlPreprocessors with AssetsInstaller order { after(rootCreator) } applyIf { !delayTemplateSubstitution } + } + + val customResourceInstaller by extending { + htmlPreprocessors providing { ctx -> CustomResourceInstaller(ctx) } order { + after(stylesInstaller) + after(scriptsInstaller) + after(assetsInstaller) + } + } + + val packageListCreator by extending { + htmlPreprocessors providing { + PackageListCreator(it, RecognizedLinkFormat.DokkaHtml) + } order { after(rootCreator) } + } + + val sourcesetDependencyAppender by extending { + htmlPreprocessors providing ::SourcesetDependencyAppender order { after(rootCreator) } + } + + val resolveLinkConsumer by extending { + immediateHtmlCommandConsumer with ResolveLinkConsumer + } + val replaceVersionConsumer by extending { + immediateHtmlCommandConsumer providing ::ReplaceVersionsConsumer + } + val pathToRootConsumer by extending { + immediateHtmlCommandConsumer with PathToRootConsumer + } + val baseSearchbarDataInstaller by extending { + htmlPreprocessors providing ::SearchbarDataInstaller order { after(sourceLinksTransformer) } + } +} diff --git a/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtmlConfiguration.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtmlConfiguration.kt new file mode 100644 index 0000000000..0188e9ea25 --- /dev/null +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/DokkaHtmlConfiguration.kt @@ -0,0 +1,18 @@ +package org.jetbrains.dokka.html + +import org.jetbrains.dokka.plugability.ConfigurableBlock +import java.io.File + +data class DokkaHtmlConfiguration( + var customStyleSheets: List = defaultCustomStyleSheets, + var customAssets: List = defaultCustomAssets, + var mergeImplicitExpectActualDeclarations: Boolean = mergeImplicitExpectActualDeclarationsDefault, + var templatesDir: File? = defaultTemplatesDir +) : ConfigurableBlock { + companion object { + val defaultCustomStyleSheets: List = emptyList() + val defaultCustomAssets: List = emptyList() + const val mergeImplicitExpectActualDeclarationsDefault: Boolean = false + val defaultTemplatesDir: File? = null + } +} \ No newline at end of file diff --git a/plugins/base/src/main/kotlin/renderers/DefaultTabSortingStrategy.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/DefaultTabSortingStrategy.kt similarity index 89% rename from plugins/base/src/main/kotlin/renderers/DefaultTabSortingStrategy.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/DefaultTabSortingStrategy.kt index 056e0f93cc..75ece526a8 100644 --- a/plugins/base/src/main/kotlin/renderers/DefaultTabSortingStrategy.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/DefaultTabSortingStrategy.kt @@ -1,5 +1,6 @@ -package org.jetbrains.dokka.base.renderers +package org.jetbrains.dokka.html.renderers +import org.jetbrains.dokka.base.renderers.TabSortingStrategy import org.jetbrains.dokka.pages.ContentKind import org.jetbrains.dokka.pages.ContentNode import org.jetbrains.dokka.pages.Kind diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlContent.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/HtmlContent.kt similarity index 91% rename from plugins/base/src/main/kotlin/renderers/html/HtmlContent.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/HtmlContent.kt index a55323f9f6..d6b97f7114 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlContent.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/HtmlContent.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import org.jetbrains.dokka.pages.ContentBreakLine import org.jetbrains.dokka.pages.Style diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/HtmlRenderer.kt similarity index 97% rename from plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/HtmlRenderer.kt index d949d432eb..b81bd94f59 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/HtmlRenderer.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import kotlinx.html.* import kotlinx.html.stream.createHTML @@ -6,14 +6,18 @@ import org.jetbrains.dokka.DokkaSourceSetID import org.jetbrains.dokka.Platform import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.renderers.* -import org.jetbrains.dokka.base.renderers.html.command.consumers.ImmediateResolutionTagConsumer -import org.jetbrains.dokka.base.renderers.html.innerTemplating.DefaultTemplateModelFactory -import org.jetbrains.dokka.base.renderers.html.innerTemplating.DefaultTemplateModelMerger -import org.jetbrains.dokka.base.renderers.html.innerTemplating.DokkaTemplateTypes -import org.jetbrains.dokka.base.renderers.html.innerTemplating.HtmlTemplater +import org.jetbrains.dokka.html.renderers.command.consumers.ImmediateResolutionTagConsumer import org.jetbrains.dokka.base.resolvers.anchors.SymbolAnchorHint import org.jetbrains.dokka.base.resolvers.local.DokkaBaseLocationProvider -import org.jetbrains.dokka.base.templating.* +import org.jetbrains.dokka.base.templating.InsertTemplateExtra +import org.jetbrains.dokka.base.templating.PathToRootSubstitutionCommand +import org.jetbrains.dokka.base.templating.ProjectNameSubstitutionCommand +import org.jetbrains.dokka.base.templating.ResolveLinkCommand +import org.jetbrains.dokka.html.DokkaHtml +import org.jetbrains.dokka.html.renderers.innerTemplating.DefaultTemplateModelMerger +import org.jetbrains.dokka.html.renderers.innerTemplating.DefaultTemplateModelFactory +import org.jetbrains.dokka.html.renderers.innerTemplating.DokkaTemplateTypes +import org.jetbrains.dokka.html.renderers.innerTemplating.HtmlTemplater import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.* import org.jetbrains.dokka.model.properties.PropertyContainer @@ -25,6 +29,8 @@ import org.jetbrains.kotlin.utils.addIfNotNull internal const val TEMPLATE_REPLACEMENT: String = "###" +private typealias SerializedBeforeAndAfter = Pair + open class HtmlRenderer( context: DokkaContext ) : DefaultRenderer(context) { @@ -43,9 +49,9 @@ open class HtmlRenderer( private var shouldRenderSourceSetBubbles: Boolean = false - override val preprocessors = context.plugin().query { htmlPreprocessors } + override val preprocessors = context.plugin().query { htmlPreprocessors } - private val tabSortingStrategy = context.plugin().querySingle { tabSortingStrategy } + private val tabSortingStrategy = context.plugin().querySingle { tabSortingStrategy } private fun TagConsumer.prepareForTemplates() = if (context.configuration.delayTemplateSubstitution || this is ImmediateResolutionTagConsumer) this diff --git a/plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt similarity index 97% rename from plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt index ecce70e8da..a267db9721 100644 --- a/plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt @@ -6,6 +6,8 @@ import org.jetbrains.dokka.base.transformers.documentables.isDeprecated import org.jetbrains.dokka.base.transformers.documentables.isException import org.jetbrains.dokka.base.translators.documentables.DocumentableLanguage import org.jetbrains.dokka.base.translators.documentables.documentableLanguage +import org.jetbrains.dokka.html.renderers.NavigationNode +import org.jetbrains.dokka.html.renderers.NavigationNodeIcon import org.jetbrains.dokka.model.* import org.jetbrains.dokka.pages.* diff --git a/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationPage.kt similarity index 97% rename from plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationPage.kt index fc17983d62..65a9e0e45b 100644 --- a/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationPage.kt @@ -1,8 +1,7 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import kotlinx.html.* import kotlinx.html.stream.createHTML -import org.jetbrains.dokka.base.renderers.pageId import org.jetbrains.dokka.base.templating.AddToNavigationCommand import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.DisplaySourceSet diff --git a/plugins/base/src/main/kotlin/renderers/html/SearchbarDataInstaller.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/SearchbarDataInstaller.kt similarity index 95% rename from plugins/base/src/main/kotlin/renderers/html/SearchbarDataInstaller.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/SearchbarDataInstaller.kt index b3d40ca030..80666eda1c 100644 --- a/plugins/base/src/main/kotlin/renderers/html/SearchbarDataInstaller.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/SearchbarDataInstaller.kt @@ -1,9 +1,10 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import org.jetbrains.dokka.Platform import org.jetbrains.dokka.base.renderers.sourceSets import org.jetbrains.dokka.base.templating.AddToSearch +import org.jetbrains.dokka.base.templating.SearchRecord import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.DisplaySourceSet import org.jetbrains.dokka.model.dfs @@ -12,15 +13,6 @@ import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.transformers.pages.PageTransformer -data class SearchRecord( - val name: String, - val description: String? = null, - val location: String, - val searchKeys: List = listOf(name) -) { - companion object -} - open class SearchbarDataInstaller(val context: DokkaContext) : PageTransformer { data class DRIWithSourceSets(val dri: DRI, val sourceSet: Set) data class SignatureWithId(val driWithSourceSets: DRIWithSourceSets, val displayableSignature: String) { diff --git a/plugins/base/src/main/kotlin/renderers/html/Tags.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/Tags.kt similarity index 96% rename from plugins/base/src/main/kotlin/renderers/html/Tags.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/Tags.kt index 18a321cc3d..b642703a7f 100644 --- a/plugins/base/src/main/kotlin/renderers/html/Tags.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/Tags.kt @@ -1,10 +1,10 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import kotlinx.html.* import kotlinx.html.stream.createHTML -import org.jetbrains.dokka.base.renderers.html.command.consumers.ImmediateResolutionTagConsumer import org.jetbrains.dokka.base.templating.Command import org.jetbrains.dokka.base.templating.toJsonString +import org.jetbrains.dokka.html.renderers.command.consumers.ImmediateResolutionTagConsumer typealias TemplateBlock = TemplateCommand.() -> Unit diff --git a/plugins/base/src/main/kotlin/renderers/html/command/consumers/ImmediateResolutionTagConsumer.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer.kt similarity index 68% rename from plugins/base/src/main/kotlin/renderers/html/command/consumers/ImmediateResolutionTagConsumer.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer.kt index 68f6dc819a..edecaad006 100644 --- a/plugins/base/src/main/kotlin/renderers/html/command/consumers/ImmediateResolutionTagConsumer.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer.kt @@ -1,12 +1,12 @@ -package org.jetbrains.dokka.base.renderers.html.command.consumers +package org.jetbrains.dokka.html.renderers.command.consumers import kotlinx.html.TagConsumer import kotlinx.html.visit -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.base.renderers.html.TemplateBlock -import org.jetbrains.dokka.base.renderers.html.templateCommand -import org.jetbrains.dokka.base.renderers.html.templateCommandFor +import org.jetbrains.dokka.html.renderers.TemplateBlock +import org.jetbrains.dokka.html.renderers.templateCommand +import org.jetbrains.dokka.html.renderers.templateCommandFor import org.jetbrains.dokka.base.templating.Command +import org.jetbrains.dokka.html.DokkaHtml import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.query @@ -16,14 +16,14 @@ class ImmediateResolutionTagConsumer( private val context: DokkaContext ): TagConsumer by downstream { fun processCommand(command: Command, block: TemplateBlock) { - context.plugin().query { immediateHtmlCommandConsumer } + context.plugin().query { immediateHtmlCommandConsumer } .find { it.canProcess(command) } ?.processCommand(command, block, this) ?: run { templateCommandFor(command, downstream).visit(block) } } fun processCommandAndFinalize(command: Command, block: TemplateBlock): R = - context.plugin().query { immediateHtmlCommandConsumer } + context.plugin().query { immediateHtmlCommandConsumer } .find { it.canProcess(command) } ?.processCommandAndFinalize(command, block, this) ?: downstream.templateCommand(command, block) diff --git a/plugins/base/src/main/kotlin/renderers/html/command/consumers/PathToRootConsumer.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/PathToRootConsumer.kt similarity index 76% rename from plugins/base/src/main/kotlin/renderers/html/command/consumers/PathToRootConsumer.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/PathToRootConsumer.kt index b4649af682..9f3edc235a 100644 --- a/plugins/base/src/main/kotlin/renderers/html/command/consumers/PathToRootConsumer.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/PathToRootConsumer.kt @@ -1,9 +1,9 @@ -package org.jetbrains.dokka.base.renderers.html.command.consumers +package org.jetbrains.dokka.html.renderers.command.consumers -import org.jetbrains.dokka.base.renderers.html.TemplateBlock -import org.jetbrains.dokka.base.renderers.html.buildAsInnerHtml +import org.jetbrains.dokka.html.renderers.TemplateBlock +import org.jetbrains.dokka.html.renderers.buildAsInnerHtml import org.jetbrains.dokka.base.templating.Command -import org.jetbrains.dokka.base.templating.ImmediateHtmlCommandConsumer +import org.jetbrains.dokka.html.templating.ImmediateHtmlCommandConsumer import org.jetbrains.dokka.base.templating.PathToRootSubstitutionCommand object PathToRootConsumer: ImmediateHtmlCommandConsumer { diff --git a/plugins/base/src/main/kotlin/renderers/html/command/consumers/ReplaceVersionsConsumer.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ReplaceVersionsConsumer.kt similarity index 82% rename from plugins/base/src/main/kotlin/renderers/html/command/consumers/ReplaceVersionsConsumer.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ReplaceVersionsConsumer.kt index bbc33164a7..73762df829 100644 --- a/plugins/base/src/main/kotlin/renderers/html/command/consumers/ReplaceVersionsConsumer.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ReplaceVersionsConsumer.kt @@ -1,8 +1,8 @@ -package org.jetbrains.dokka.base.renderers.html.command.consumers +package org.jetbrains.dokka.html.renderers.command.consumers -import org.jetbrains.dokka.base.renderers.html.TemplateBlock +import org.jetbrains.dokka.html.renderers.TemplateBlock import org.jetbrains.dokka.base.templating.Command -import org.jetbrains.dokka.base.templating.ImmediateHtmlCommandConsumer +import org.jetbrains.dokka.html.templating.ImmediateHtmlCommandConsumer import org.jetbrains.dokka.base.templating.ReplaceVersionsCommand import org.jetbrains.dokka.plugability.DokkaContext diff --git a/plugins/base/src/main/kotlin/renderers/html/command/consumers/ResolveLinkConsumer.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ResolveLinkConsumer.kt similarity index 80% rename from plugins/base/src/main/kotlin/renderers/html/command/consumers/ResolveLinkConsumer.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ResolveLinkConsumer.kt index 1c42c3d52b..bbeff0e6de 100644 --- a/plugins/base/src/main/kotlin/renderers/html/command/consumers/ResolveLinkConsumer.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/command/consumers/ResolveLinkConsumer.kt @@ -1,13 +1,13 @@ -package org.jetbrains.dokka.base.renderers.html.command.consumers +package org.jetbrains.dokka.html.renderers.command.consumers import kotlinx.html.SPAN import kotlinx.html.span import kotlinx.html.unsafe import kotlinx.html.visit -import org.jetbrains.dokka.base.renderers.html.TemplateBlock -import org.jetbrains.dokka.base.renderers.html.buildAsInnerHtml +import org.jetbrains.dokka.html.renderers.TemplateBlock +import org.jetbrains.dokka.html.renderers.buildAsInnerHtml import org.jetbrains.dokka.base.templating.Command -import org.jetbrains.dokka.base.templating.ImmediateHtmlCommandConsumer +import org.jetbrains.dokka.html.templating.ImmediateHtmlCommandConsumer import org.jetbrains.dokka.base.templating.ResolveLinkCommand import org.jetbrains.dokka.utilities.htmlEscape diff --git a/plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlFormatingUtils.kt similarity index 97% rename from plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlFormatingUtils.kt index c77a6e94ef..27bcb8918e 100644 --- a/plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlFormatingUtils.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import kotlinx.html.FlowContent import kotlinx.html.span diff --git a/plugins/base/src/main/kotlin/renderers/html/htmlPreprocessors.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt similarity index 89% rename from plugins/base/src/main/kotlin/renderers/html/htmlPreprocessors.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt index e2be3ef025..2a50ae93f0 100644 --- a/plugins/base/src/main/kotlin/renderers/html/htmlPreprocessors.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt @@ -1,9 +1,12 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration +import org.jetbrains.dokka.base.renderers.html.NavigationDataProvider import org.jetbrains.dokka.base.templating.AddToSourcesetDependencies import org.jetbrains.dokka.base.templating.toJsonString +import org.jetbrains.dokka.html.DokkaHtml +import org.jetbrains.dokka.html.DokkaHtmlConfiguration import org.jetbrains.dokka.pages.RendererSpecificResourcePage import org.jetbrains.dokka.pages.RenderingStrategy import org.jetbrains.dokka.pages.RootPageNode @@ -23,14 +26,22 @@ open class NavigationPageInstaller(val context: DokkaContext) : NavigationDataPr } class CustomResourceInstaller(val dokkaContext: DokkaContext) : PageTransformer { - private val configuration = configuration(dokkaContext) + private val configuration = configuration(dokkaContext) + private val oldBaseConfiguration = configuration(dokkaContext) + + @Suppress("DEPRECATION") private val customAssets = configuration?.customAssets?.map { RendererSpecificResourcePage("images/${it.name}", emptyList(), RenderingStrategy.Copy(it.absolutePath)) + }.orEmpty() + oldBaseConfiguration?.customAssets?.map { + RendererSpecificResourcePage("images/${it.name}", emptyList(), RenderingStrategy.Copy(it.absolutePath)) }.orEmpty() + @Suppress("DEPRECATION") private val customStylesheets = configuration?.customStyleSheets?.map { RendererSpecificResourcePage("styles/${it.name}", emptyList(), RenderingStrategy.Copy(it.absolutePath)) + }.orEmpty() + oldBaseConfiguration?.customStyleSheets?.map { + RendererSpecificResourcePage("styles/${it.name}", emptyList(), RenderingStrategy.Copy(it.absolutePath)) }.orEmpty() override fun invoke(input: RootPageNode): RootPageNode { diff --git a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory.kt similarity index 95% rename from plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory.kt index 6c746b3701..2cb7ef3f4b 100644 --- a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelFactory.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html.innerTemplating +package org.jetbrains.dokka.html.renderers.innerTemplating import freemarker.core.Environment import freemarker.template.* @@ -8,16 +8,16 @@ import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration import org.jetbrains.dokka.base.renderers.URIExtension -import org.jetbrains.dokka.base.renderers.html.TEMPLATE_REPLACEMENT -import org.jetbrains.dokka.base.renderers.html.command.consumers.ImmediateResolutionTagConsumer -import org.jetbrains.dokka.base.renderers.html.templateCommand -import org.jetbrains.dokka.base.renderers.html.templateCommandAsHtmlComment +import org.jetbrains.dokka.html.renderers.TEMPLATE_REPLACEMENT +import org.jetbrains.dokka.html.renderers.templateCommand +import org.jetbrains.dokka.html.renderers.templateCommandAsHtmlComment import org.jetbrains.dokka.base.renderers.isImage import org.jetbrains.dokka.base.resolvers.local.LocationProvider import org.jetbrains.dokka.base.templating.PathToRootSubstitutionCommand import org.jetbrains.dokka.base.templating.ProjectNameSubstitutionCommand import org.jetbrains.dokka.base.templating.ReplaceVersionsCommand import org.jetbrains.dokka.base.templating.SubstitutionCommand +import org.jetbrains.dokka.html.renderers.command.consumers.ImmediateResolutionTagConsumer import org.jetbrains.dokka.model.DisplaySourceSet import org.jetbrains.dokka.model.withDescendants import org.jetbrains.dokka.pages.ContentPage diff --git a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelMerger.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelMerger.kt similarity index 87% rename from plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelMerger.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelMerger.kt index 7d5487217f..1b6e0ef9d1 100644 --- a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelMerger.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/DefaultTemplateModelMerger.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html.innerTemplating +package org.jetbrains.dokka.html.renderers.innerTemplating class DefaultTemplateModelMerger : TemplateModelMerger { override fun invoke( diff --git a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/HtmlTemplater.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/HtmlTemplater.kt similarity index 84% rename from plugins/base/src/main/kotlin/renderers/html/innerTemplating/HtmlTemplater.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/HtmlTemplater.kt index e3d16d98f4..7249bb98d5 100644 --- a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/HtmlTemplater.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/HtmlTemplater.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html.innerTemplating +package org.jetbrains.dokka.html.renderers.innerTemplating import freemarker.cache.ClassTemplateLoader import freemarker.cache.FileTemplateLoader @@ -8,6 +8,8 @@ import freemarker.template.Configuration import freemarker.template.TemplateExceptionHandler import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration +import org.jetbrains.dokka.html.DokkaHtml +import org.jetbrains.dokka.html.DokkaHtmlConfiguration import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.configuration import java.io.StringWriter @@ -32,13 +34,16 @@ class HtmlTemplater( ) } - private val configuration = configuration(context) + @Suppress("DEPRECATION") + private val templatesDir = configuration(context)?.templatesDir ?: + configuration(context)?.templatesDir + private val templaterConfiguration = Configuration(Configuration.VERSION_2_3_31).apply { configureTemplateEngine() } private fun Configuration.configureTemplateEngine() { val loaderFromResources = ClassTemplateLoader(javaClass, "/dokka/templates") - templateLoader = configuration?.templatesDir?.let { + templateLoader = templatesDir?.let { MultiTemplateLoader( arrayOf( FileTemplateLoader(it), diff --git a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelFactory.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelFactory.kt similarity index 86% rename from plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelFactory.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelFactory.kt index ceecf201f5..49f226b9a7 100644 --- a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelFactory.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelFactory.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html.innerTemplating +package org.jetbrains.dokka.html.renderers.innerTemplating import org.jetbrains.dokka.base.resolvers.local.LocationProvider import org.jetbrains.dokka.pages.PageNode diff --git a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelMerger.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelMerger.kt similarity index 71% rename from plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelMerger.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelMerger.kt index 7ad96d8f6e..db7beb6fdc 100644 --- a/plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelMerger.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/innerTemplating/TemplateModelMerger.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html.innerTemplating +package org.jetbrains.dokka.html.renderers.innerTemplating fun interface TemplateModelMerger { fun invoke(factories: List, buildModel: TemplateModelFactory.() -> TemplateMap): TemplateMap diff --git a/plugins/base/src/main/kotlin/renderers/pageId.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/pageId.kt similarity index 90% rename from plugins/base/src/main/kotlin/renderers/pageId.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/pageId.kt index d3a9ed7af5..a8f6ccd13e 100644 --- a/plugins/base/src/main/kotlin/renderers/pageId.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/pageId.kt @@ -1,6 +1,6 @@ -package org.jetbrains.dokka.base.renderers +package org.jetbrains.dokka.html.renderers -import org.jetbrains.dokka.base.renderers.html.NavigationNode +import org.jetbrains.dokka.base.renderers.sourceSets import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.DisplaySourceSet import org.jetbrains.dokka.pages.ContentPage diff --git a/plugins/base/src/main/kotlin/renderers/html/shouldRenderSourceSetBubbles.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/shouldRenderSourceSetBubbles.kt similarity index 91% rename from plugins/base/src/main/kotlin/renderers/html/shouldRenderSourceSetBubbles.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/shouldRenderSourceSetBubbles.kt index 3de58870e1..7675eb88ab 100644 --- a/plugins/base/src/main/kotlin/renderers/html/shouldRenderSourceSetBubbles.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/shouldRenderSourceSetBubbles.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import org.jetbrains.dokka.model.withDescendants import org.jetbrains.dokka.pages.ContentPage diff --git a/plugins/base/src/main/kotlin/templating/ImmediateHtmlCommandConsumer.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer.kt similarity index 57% rename from plugins/base/src/main/kotlin/templating/ImmediateHtmlCommandConsumer.kt rename to plugins/html/src/main/kotlin/org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer.kt index 2b721e8ce6..9d2c3f2735 100644 --- a/plugins/base/src/main/kotlin/templating/ImmediateHtmlCommandConsumer.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer.kt @@ -1,7 +1,8 @@ -package org.jetbrains.dokka.base.templating +package org.jetbrains.dokka.html.templating -import org.jetbrains.dokka.base.renderers.html.TemplateBlock -import org.jetbrains.dokka.base.renderers.html.command.consumers.ImmediateResolutionTagConsumer +import org.jetbrains.dokka.base.templating.Command +import org.jetbrains.dokka.html.renderers.TemplateBlock +import org.jetbrains.dokka.html.renderers.command.consumers.ImmediateResolutionTagConsumer interface ImmediateHtmlCommandConsumer { fun canProcess(command: Command): Boolean @@ -9,5 +10,4 @@ interface ImmediateHtmlCommandConsumer { fun processCommand(command: Command, block: TemplateBlock, tagConsumer: ImmediateResolutionTagConsumer) fun processCommandAndFinalize(command: Command, block: TemplateBlock, tagConsumer: ImmediateResolutionTagConsumer): R -} - +} \ No newline at end of file diff --git a/plugins/html/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin b/plugins/html/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin new file mode 100644 index 0000000000..a78199ac01 --- /dev/null +++ b/plugins/html/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin @@ -0,0 +1 @@ +org.jetbrains.dokka.html.DokkaHtml \ No newline at end of file diff --git a/plugins/base/src/main/resources/dokka/images/anchor-copy-button.svg b/plugins/html/src/main/resources/dokka/images/anchor-copy-button.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/anchor-copy-button.svg rename to plugins/html/src/main/resources/dokka/images/anchor-copy-button.svg diff --git a/plugins/base/src/main/resources/dokka/images/arrow_down.svg b/plugins/html/src/main/resources/dokka/images/arrow_down.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/arrow_down.svg rename to plugins/html/src/main/resources/dokka/images/arrow_down.svg diff --git a/plugins/base/src/main/resources/dokka/images/copy-icon.svg b/plugins/html/src/main/resources/dokka/images/copy-icon.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/copy-icon.svg rename to plugins/html/src/main/resources/dokka/images/copy-icon.svg diff --git a/plugins/base/src/main/resources/dokka/images/copy-successful-icon.svg b/plugins/html/src/main/resources/dokka/images/copy-successful-icon.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/copy-successful-icon.svg rename to plugins/html/src/main/resources/dokka/images/copy-successful-icon.svg diff --git a/plugins/base/src/main/resources/dokka/images/footer-go-to-link.svg b/plugins/html/src/main/resources/dokka/images/footer-go-to-link.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/footer-go-to-link.svg rename to plugins/html/src/main/resources/dokka/images/footer-go-to-link.svg diff --git a/plugins/base/src/main/resources/dokka/images/go-to-top-icon.svg b/plugins/html/src/main/resources/dokka/images/go-to-top-icon.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/go-to-top-icon.svg rename to plugins/html/src/main/resources/dokka/images/go-to-top-icon.svg diff --git a/plugins/base/src/main/resources/dokka/images/logo-icon.svg b/plugins/html/src/main/resources/dokka/images/logo-icon.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/logo-icon.svg rename to plugins/html/src/main/resources/dokka/images/logo-icon.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/abstract-class.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/abstract-class.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/annotation.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/annotation.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/annotation.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/annotation.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/class-kotlin.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/class-kotlin.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/class.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/class.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/class.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/class.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/enum.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/enum.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/enum.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/enum.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/exception-class.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/exception-class.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/exception-class.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/exception-class.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/field-value.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/field-value.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/field-value.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/field-value.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/field-variable.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/field-variable.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/field-variable.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/field-variable.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/function.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/function.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/function.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/function.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/interface.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/interface.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/interface.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/interface.svg diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/object.svg b/plugins/html/src/main/resources/dokka/images/nav-icons/object.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/nav-icons/object.svg rename to plugins/html/src/main/resources/dokka/images/nav-icons/object.svg diff --git a/plugins/base/src/main/resources/dokka/images/theme-toggle.svg b/plugins/html/src/main/resources/dokka/images/theme-toggle.svg similarity index 100% rename from plugins/base/src/main/resources/dokka/images/theme-toggle.svg rename to plugins/html/src/main/resources/dokka/images/theme-toggle.svg diff --git a/plugins/base/src/main/resources/dokka/scripts/clipboard.js b/plugins/html/src/main/resources/dokka/scripts/clipboard.js similarity index 100% rename from plugins/base/src/main/resources/dokka/scripts/clipboard.js rename to plugins/html/src/main/resources/dokka/scripts/clipboard.js diff --git a/plugins/base/src/main/resources/dokka/scripts/navigation-loader.js b/plugins/html/src/main/resources/dokka/scripts/navigation-loader.js similarity index 100% rename from plugins/base/src/main/resources/dokka/scripts/navigation-loader.js rename to plugins/html/src/main/resources/dokka/scripts/navigation-loader.js diff --git a/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js b/plugins/html/src/main/resources/dokka/scripts/platform-content-handler.js similarity index 100% rename from plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js rename to plugins/html/src/main/resources/dokka/scripts/platform-content-handler.js diff --git a/plugins/base/src/main/resources/dokka/scripts/prism.js b/plugins/html/src/main/resources/dokka/scripts/prism.js similarity index 100% rename from plugins/base/src/main/resources/dokka/scripts/prism.js rename to plugins/html/src/main/resources/dokka/scripts/prism.js diff --git a/plugins/base/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js b/plugins/html/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js similarity index 100% rename from plugins/base/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js rename to plugins/html/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js diff --git a/plugins/base/src/main/resources/dokka/styles/jetbrains-mono.css b/plugins/html/src/main/resources/dokka/styles/jetbrains-mono.css similarity index 100% rename from plugins/base/src/main/resources/dokka/styles/jetbrains-mono.css rename to plugins/html/src/main/resources/dokka/styles/jetbrains-mono.css diff --git a/plugins/base/src/main/resources/dokka/styles/logo-styles.css b/plugins/html/src/main/resources/dokka/styles/logo-styles.css similarity index 100% rename from plugins/base/src/main/resources/dokka/styles/logo-styles.css rename to plugins/html/src/main/resources/dokka/styles/logo-styles.css diff --git a/plugins/base/src/main/resources/dokka/styles/prism.css b/plugins/html/src/main/resources/dokka/styles/prism.css similarity index 100% rename from plugins/base/src/main/resources/dokka/styles/prism.css rename to plugins/html/src/main/resources/dokka/styles/prism.css diff --git a/plugins/base/src/main/resources/dokka/styles/style.css b/plugins/html/src/main/resources/dokka/styles/style.css similarity index 100% rename from plugins/base/src/main/resources/dokka/styles/style.css rename to plugins/html/src/main/resources/dokka/styles/style.css diff --git a/plugins/base/src/main/resources/dokka/templates/base.ftl b/plugins/html/src/main/resources/dokka/templates/base.ftl similarity index 100% rename from plugins/base/src/main/resources/dokka/templates/base.ftl rename to plugins/html/src/main/resources/dokka/templates/base.ftl diff --git a/plugins/base/src/main/resources/dokka/templates/includes/footer.ftl b/plugins/html/src/main/resources/dokka/templates/includes/footer.ftl similarity index 100% rename from plugins/base/src/main/resources/dokka/templates/includes/footer.ftl rename to plugins/html/src/main/resources/dokka/templates/includes/footer.ftl diff --git a/plugins/base/src/main/resources/dokka/templates/includes/header.ftl b/plugins/html/src/main/resources/dokka/templates/includes/header.ftl similarity index 100% rename from plugins/base/src/main/resources/dokka/templates/includes/header.ftl rename to plugins/html/src/main/resources/dokka/templates/includes/header.ftl diff --git a/plugins/base/src/main/resources/dokka/templates/includes/page_metadata.ftl b/plugins/html/src/main/resources/dokka/templates/includes/page_metadata.ftl similarity index 100% rename from plugins/base/src/main/resources/dokka/templates/includes/page_metadata.ftl rename to plugins/html/src/main/resources/dokka/templates/includes/page_metadata.ftl diff --git a/plugins/base/src/main/resources/dokka/templates/includes/source_set_selector.ftl b/plugins/html/src/main/resources/dokka/templates/includes/source_set_selector.ftl similarity index 100% rename from plugins/base/src/main/resources/dokka/templates/includes/source_set_selector.ftl rename to plugins/html/src/main/resources/dokka/templates/includes/source_set_selector.ftl diff --git a/plugins/base/src/test/kotlin/renderers/html/BasicTest.kt b/plugins/html/src/test/kotlin/html/BasicTest.kt similarity index 84% rename from plugins/base/src/test/kotlin/renderers/html/BasicTest.kt rename to plugins/html/src/test/kotlin/html/BasicTest.kt index fbcdf70e0a..3ca7e401ca 100644 --- a/plugins/base/src/test/kotlin/renderers/html/BasicTest.kt +++ b/plugins/html/src/test/kotlin/html/BasicTest.kt @@ -1,6 +1,6 @@ -package renderers.html +package html -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jetbrains.dokka.links.DRI import org.junit.jupiter.api.Test import renderers.testPage diff --git a/plugins/base/src/test/kotlin/renderers/html/BreadcrumbsTest.kt b/plugins/html/src/test/kotlin/html/BreadcrumbsTest.kt similarity index 99% rename from plugins/base/src/test/kotlin/renderers/html/BreadcrumbsTest.kt rename to plugins/html/src/test/kotlin/html/BreadcrumbsTest.kt index bebc41dcde..36b67331c7 100644 --- a/plugins/base/src/test/kotlin/renderers/html/BreadcrumbsTest.kt +++ b/plugins/html/src/test/kotlin/html/BreadcrumbsTest.kt @@ -1,4 +1,4 @@ -package renderers.html +package html import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest import org.jsoup.nodes.Element diff --git a/plugins/base/src/test/kotlin/renderers/html/CoverPageTest.kt b/plugins/html/src/test/kotlin/html/CoverPageTest.kt similarity index 98% rename from plugins/base/src/test/kotlin/renderers/html/CoverPageTest.kt rename to plugins/html/src/test/kotlin/html/CoverPageTest.kt index 0e1f53ecec..c0287b09df 100644 --- a/plugins/base/src/test/kotlin/renderers/html/CoverPageTest.kt +++ b/plugins/html/src/test/kotlin/html/CoverPageTest.kt @@ -1,4 +1,4 @@ -package renderers.html +package html import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest import org.junit.jupiter.api.Test diff --git a/plugins/base/src/test/kotlin/renderers/html/CustomFooterTest.kt b/plugins/html/src/test/kotlin/html/CustomFooterTest.kt similarity index 94% rename from plugins/base/src/test/kotlin/renderers/html/CustomFooterTest.kt rename to plugins/html/src/test/kotlin/html/CustomFooterTest.kt index c1ef612159..cee9ad5402 100644 --- a/plugins/base/src/test/kotlin/renderers/html/CustomFooterTest.kt +++ b/plugins/html/src/test/kotlin/html/CustomFooterTest.kt @@ -1,12 +1,12 @@ -package renderers.html +package html import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.DokkaConfigurationImpl import org.jetbrains.dokka.PluginConfigurationImpl import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer import org.jetbrains.dokka.base.templating.toJsonString +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jsoup.Jsoup import org.jsoup.nodes.Element import org.junit.jupiter.api.Test diff --git a/plugins/base/src/test/kotlin/renderers/html/DivergentTest.kt b/plugins/html/src/test/kotlin/html/DivergentTest.kt similarity index 99% rename from plugins/base/src/test/kotlin/renderers/html/DivergentTest.kt rename to plugins/html/src/test/kotlin/html/DivergentTest.kt index f9dd92daf3..33cdbe7238 100644 --- a/plugins/base/src/test/kotlin/renderers/html/DivergentTest.kt +++ b/plugins/html/src/test/kotlin/html/DivergentTest.kt @@ -1,6 +1,6 @@ -package renderers.html +package html -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.pages.ContentDivergentGroup import org.junit.jupiter.api.Test diff --git a/plugins/base/src/test/kotlin/renderers/html/FooterMessageTest.kt b/plugins/html/src/test/kotlin/html/FooterMessageTest.kt similarity index 90% rename from plugins/base/src/test/kotlin/renderers/html/FooterMessageTest.kt rename to plugins/html/src/test/kotlin/html/FooterMessageTest.kt index d91c402ef6..9ce329ae0b 100644 --- a/plugins/base/src/test/kotlin/renderers/html/FooterMessageTest.kt +++ b/plugins/html/src/test/kotlin/html/FooterMessageTest.kt @@ -1,7 +1,7 @@ -package renderers.html +package html import org.jetbrains.dokka.base.DokkaBaseConfiguration.Companion.defaultFooterMessage -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jsoup.Jsoup import org.jsoup.nodes.Element import org.junit.jupiter.api.Test diff --git a/plugins/base/src/test/kotlin/renderers/html/FormattingUtilsTest.kt b/plugins/html/src/test/kotlin/html/FormattingUtilsTest.kt similarity index 96% rename from plugins/base/src/test/kotlin/renderers/html/FormattingUtilsTest.kt rename to plugins/html/src/test/kotlin/html/FormattingUtilsTest.kt index 3e5ceb75ba..a3a113ccd2 100644 --- a/plugins/base/src/test/kotlin/renderers/html/FormattingUtilsTest.kt +++ b/plugins/html/src/test/kotlin/html/FormattingUtilsTest.kt @@ -1,9 +1,9 @@ -package renderers.html +package html import kotlinx.html.body import kotlinx.html.html import kotlinx.html.stream.createHTML -import org.jetbrains.dokka.base.renderers.html.buildBreakableText +import org.jetbrains.dokka.html.renderers.buildBreakableText import org.junit.jupiter.api.Test import kotlin.test.assertEquals diff --git a/plugins/base/src/test/kotlin/renderers/html/GroupWrappingTest.kt b/plugins/html/src/test/kotlin/html/GroupWrappingTest.kt similarity index 95% rename from plugins/base/src/test/kotlin/renderers/html/GroupWrappingTest.kt rename to plugins/html/src/test/kotlin/html/GroupWrappingTest.kt index 244163eca3..0c532b150f 100644 --- a/plugins/base/src/test/kotlin/renderers/html/GroupWrappingTest.kt +++ b/plugins/html/src/test/kotlin/html/GroupWrappingTest.kt @@ -1,6 +1,6 @@ -package renderers.html +package html -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jetbrains.dokka.pages.TextStyle import org.junit.jupiter.api.Test import renderers.* diff --git a/plugins/base/src/test/kotlin/renderers/html/HtmlRenderingOnlyTestBase.kt b/plugins/html/src/test/kotlin/html/HtmlRenderingOnlyTestBase.kt similarity index 89% rename from plugins/base/src/test/kotlin/renderers/html/HtmlRenderingOnlyTestBase.kt rename to plugins/html/src/test/kotlin/html/HtmlRenderingOnlyTestBase.kt index 94fcd5bf09..7b71df1e38 100644 --- a/plugins/base/src/test/kotlin/renderers/html/HtmlRenderingOnlyTestBase.kt +++ b/plugins/html/src/test/kotlin/html/HtmlRenderingOnlyTestBase.kt @@ -1,18 +1,17 @@ -package renderers.html +package html import org.jetbrains.dokka.DokkaConfigurationImpl import org.jetbrains.dokka.Platform import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.base.renderers.DefaultTabSortingStrategy +import org.jetbrains.dokka.html.renderers.DefaultTabSortingStrategy import org.jetbrains.dokka.base.renderers.RootCreator import org.jetbrains.dokka.base.resolvers.external.DefaultExternalLocationProviderFactory import org.jetbrains.dokka.base.resolvers.external.javadoc.JavadocExternalLocationProviderFactory import org.jetbrains.dokka.base.resolvers.local.DokkaLocationProviderFactory +import org.jetbrains.dokka.html.DokkaHtml import org.jetbrains.dokka.testApi.context.MockContext import org.jsoup.Jsoup import org.jsoup.nodes.Element -import org.jsoup.nodes.Node -import org.jsoup.nodes.TextNode import renderers.RenderingOnlyTestBase import utils.TestOutputWriter import testApi.testRunner.defaultSourceSet @@ -50,10 +49,10 @@ abstract class HtmlRenderingOnlyTestBase : RenderingOnlyTestBase() { override val context = MockContext( DokkaBase().outputWriter to { files }, DokkaBase().locationProviderFactory to ::DokkaLocationProviderFactory, - DokkaBase().htmlPreprocessors to { RootCreator }, + DokkaHtml().htmlPreprocessors to { RootCreator }, DokkaBase().externalLocationProviderFactory to ::JavadocExternalLocationProviderFactory, DokkaBase().externalLocationProviderFactory to ::DefaultExternalLocationProviderFactory, - DokkaBase().tabSortingStrategy to { DefaultTabSortingStrategy() }, + DokkaHtml().tabSortingStrategy to { DefaultTabSortingStrategy() }, testConfiguration = configuration ) diff --git a/plugins/base/src/test/kotlin/renderers/html/ListStylesTest.kt b/plugins/html/src/test/kotlin/html/ListStylesTest.kt similarity index 92% rename from plugins/base/src/test/kotlin/renderers/html/ListStylesTest.kt rename to plugins/html/src/test/kotlin/html/ListStylesTest.kt index 8b11dad1d5..275b75a116 100644 --- a/plugins/base/src/test/kotlin/renderers/html/ListStylesTest.kt +++ b/plugins/html/src/test/kotlin/html/ListStylesTest.kt @@ -1,6 +1,6 @@ -package renderers.html +package html -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jetbrains.dokka.pages.ListStyle import org.junit.jupiter.api.Test import renderers.testPage diff --git a/plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt b/plugins/html/src/test/kotlin/html/NavigationIconTest.kt similarity index 99% rename from plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt rename to plugins/html/src/test/kotlin/html/NavigationIconTest.kt index a7a7bacf62..62f5b5b067 100644 --- a/plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt +++ b/plugins/html/src/test/kotlin/html/NavigationIconTest.kt @@ -1,4 +1,4 @@ -package renderers.html +package html import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest import org.junit.jupiter.api.Test diff --git a/plugins/base/src/test/kotlin/renderers/html/NavigationTest.kt b/plugins/html/src/test/kotlin/html/NavigationTest.kt similarity index 99% rename from plugins/base/src/test/kotlin/renderers/html/NavigationTest.kt rename to plugins/html/src/test/kotlin/html/NavigationTest.kt index 13a9e71147..305d274616 100644 --- a/plugins/base/src/test/kotlin/renderers/html/NavigationTest.kt +++ b/plugins/html/src/test/kotlin/html/NavigationTest.kt @@ -1,7 +1,7 @@ -package renderers.html +package html -import org.jetbrains.dokka.base.renderers.html.NavigationNodeIcon import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest +import org.jetbrains.dokka.html.renderers.NavigationNodeIcon import org.jsoup.nodes.Element import org.junit.jupiter.api.Test import utils.TestOutputWriterPlugin diff --git a/plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt b/plugins/html/src/test/kotlin/html/SourceSetDependentHintTest.kt similarity index 98% rename from plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt rename to plugins/html/src/test/kotlin/html/SourceSetDependentHintTest.kt index 633a59a7fa..6973a74d42 100644 --- a/plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt +++ b/plugins/html/src/test/kotlin/html/SourceSetDependentHintTest.kt @@ -1,7 +1,7 @@ -package renderers.html +package html import org.jetbrains.dokka.Platform -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jetbrains.dokka.pages.TextStyle import org.junit.jupiter.api.Test import renderers.testPage diff --git a/plugins/base/src/test/kotlin/renderers/html/TextStylesTest.kt b/plugins/html/src/test/kotlin/html/TextStylesTest.kt similarity index 97% rename from plugins/base/src/test/kotlin/renderers/html/TextStylesTest.kt rename to plugins/html/src/test/kotlin/html/TextStylesTest.kt index 507f1779fb..1171ce3160 100644 --- a/plugins/base/src/test/kotlin/renderers/html/TextStylesTest.kt +++ b/plugins/html/src/test/kotlin/html/TextStylesTest.kt @@ -1,6 +1,6 @@ -package renderers.html +package html -import org.jetbrains.dokka.base.renderers.html.HtmlRenderer +import org.jetbrains.dokka.html.renderers.HtmlRenderer import org.jetbrains.dokka.pages.TextStyle import org.jetbrains.dokka.pages.TokenStyle import org.jsoup.Jsoup diff --git a/plugins/base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt b/plugins/html/src/test/kotlin/resourceLinks/ResourceLinksTest.kt similarity index 95% rename from plugins/base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt rename to plugins/html/src/test/kotlin/resourceLinks/ResourceLinksTest.kt index 989b82eff1..5ea155d03c 100644 --- a/plugins/base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt +++ b/plugins/html/src/test/kotlin/resourceLinks/ResourceLinksTest.kt @@ -2,11 +2,11 @@ package resourceLinks import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.PluginConfigurationImpl -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.base.DokkaBaseConfiguration -import org.jetbrains.dokka.base.renderers.html.TEMPLATE_REPLACEMENT import org.jetbrains.dokka.base.templating.toJsonString import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest +import org.jetbrains.dokka.html.DokkaHtml +import org.jetbrains.dokka.html.DokkaHtmlConfiguration +import org.jetbrains.dokka.html.renderers.TEMPLATE_REPLACEMENT import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaPlugin import org.jetbrains.dokka.transformers.pages.PageTransformer @@ -30,7 +30,7 @@ class ResourceLinksTest : BaseAbstractTest() { } val appender by extending { - plugin().htmlPreprocessors with TestResourcesAppender(resources) + plugin().htmlPreprocessors with TestResourcesAppender(resources) } } @@ -92,10 +92,10 @@ class ResourceLinksTest : BaseAbstractTest() { delayTemplateSubstitution = isMultiModule pluginsConfigurations = mutableListOf( PluginConfigurationImpl( - DokkaBase::class.java.canonicalName, + DokkaHtml::class.java.canonicalName, DokkaConfiguration.SerializationFormat.JSON, toJsonString( - DokkaBaseConfiguration( + DokkaHtmlConfiguration( customStyleSheets = listOf(File("test/customStyle.css")), customAssets = listOf(File("test/customImage.svg")) ) diff --git a/plugins/base/src/test/kotlin/utils/HtmlUtils.kt b/plugins/html/src/test/kotlin/utils/HtmlUtils.kt similarity index 100% rename from plugins/base/src/test/kotlin/utils/HtmlUtils.kt rename to plugins/html/src/test/kotlin/utils/HtmlUtils.kt diff --git a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/JavadocPlugin.kt b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/JavadocPlugin.kt index 19dfb5c0e3..3443fba6c2 100644 --- a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/JavadocPlugin.kt +++ b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/JavadocPlugin.kt @@ -25,7 +25,7 @@ class JavadocPlugin : DokkaPlugin() { val javadocPreprocessors by extensionPoint() val dokkaJavadocPlugin by extending { - CoreExtensions.renderer providing { ctx -> KorteJavadocRenderer(ctx, "views") } override dokkaBasePlugin.htmlRenderer + CoreExtensions.renderer providing { ctx -> KorteJavadocRenderer(ctx, "views") } } val javadocMultiplatformCheck by extending { diff --git a/plugins/kotlin-as-java/build.gradle.kts b/plugins/kotlin-as-java/build.gradle.kts index fb20d659d5..e2b5543577 100644 --- a/plugins/kotlin-as-java/build.gradle.kts +++ b/plugins/kotlin-as-java/build.gradle.kts @@ -9,6 +9,7 @@ dependencies { val jsoup_version: String by project testImplementation("org.jsoup:jsoup:$jsoup_version") testImplementation(project(":kotlin-analysis")) + testImplementation(project(":plugins:html")) } registerDokkaArtifactPublication("kotlinAsJavaPlugin") { diff --git a/plugins/mathjax/build.gradle.kts b/plugins/mathjax/build.gradle.kts index 0b69a03827..52413ca21a 100644 --- a/plugins/mathjax/build.gradle.kts +++ b/plugins/mathjax/build.gradle.kts @@ -9,6 +9,7 @@ dependencies { testImplementation(project(":core:content-matcher-test-utils")) testImplementation(kotlin("test-junit")) testImplementation(project(":kotlin-analysis")) + testImplementation(project(":plugins:html")) } registerDokkaArtifactPublication("mathjaxPlugin") { diff --git a/plugins/templating/api/templating.api b/plugins/templating/api/templating.api index aedd8ef39b..c7e6d0748a 100644 --- a/plugins/templating/api/templating.api +++ b/plugins/templating/api/templating.api @@ -66,6 +66,12 @@ public final class org/jetbrains/dokka/templates/DirectiveBasedHtmlTemplateProce public fun process (Ljava/io/File;Ljava/io/File;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaModuleDescription;)Z } +public final class org/jetbrains/dokka/templates/DirectiveBasedTemplateProcessingKt { + public static final field TEMPLATE_COMMAND_BEGIN_BORDER Ljava/lang/String; + public static final field TEMPLATE_COMMAND_END_BORDER Ljava/lang/String; + public static final field TEMPLATE_COMMAND_SEPARATOR Ljava/lang/String; +} + public final class org/jetbrains/dokka/templates/FallbackTemplateProcessingStrategy : org/jetbrains/dokka/templates/TemplateProcessingStrategy { public fun ()V public fun finish (Ljava/io/File;)V diff --git a/plugins/templating/build.gradle.kts b/plugins/templating/build.gradle.kts index ee1067efa4..9b4212f409 100644 --- a/plugins/templating/build.gradle.kts +++ b/plugins/templating/build.gradle.kts @@ -7,6 +7,8 @@ registerDokkaArtifactPublication("templating-plugin") { dependencies { implementation(project(":plugins:base")) + testImplementation(project(":plugins:html")) + val coroutines_version: String by project implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") val jackson_version: String by project diff --git a/plugins/templating/src/main/kotlin/templates/DirectiveBasedTemplateProcessing.kt b/plugins/templating/src/main/kotlin/templates/DirectiveBasedTemplateProcessing.kt index 07f808832a..eb032bf565 100644 --- a/plugins/templating/src/main/kotlin/templates/DirectiveBasedTemplateProcessing.kt +++ b/plugins/templating/src/main/kotlin/templates/DirectiveBasedTemplateProcessing.kt @@ -1,9 +1,6 @@ package org.jetbrains.dokka.templates import org.jetbrains.dokka.DokkaConfiguration -import org.jetbrains.dokka.base.renderers.html.TEMPLATE_COMMAND_BEGIN_BORDER -import org.jetbrains.dokka.base.renderers.html.TEMPLATE_COMMAND_END_BORDER -import org.jetbrains.dokka.base.renderers.html.TEMPLATE_COMMAND_SEPARATOR import org.jetbrains.dokka.base.templating.Command import org.jetbrains.dokka.base.templating.parseJson import org.jetbrains.dokka.plugability.DokkaContext @@ -17,6 +14,10 @@ import org.jsoup.nodes.TextNode import java.io.File import java.nio.file.Files +const val TEMPLATE_COMMAND_SEPARATOR = ":" +const val TEMPLATE_COMMAND_BEGIN_BORDER = "[+]cmd" +const val TEMPLATE_COMMAND_END_BORDER = "[-]cmd" + class DirectiveBasedHtmlTemplateProcessingStrategy(private val context: DokkaContext) : TemplateProcessingStrategy { private val directiveBasedCommandHandlers = diff --git a/plugins/templating/src/main/kotlin/templates/JsonElementBasedTemplateProcessingStrategy.kt b/plugins/templating/src/main/kotlin/templates/JsonElementBasedTemplateProcessingStrategy.kt index 533c12f600..660bb36572 100644 --- a/plugins/templating/src/main/kotlin/templates/JsonElementBasedTemplateProcessingStrategy.kt +++ b/plugins/templating/src/main/kotlin/templates/JsonElementBasedTemplateProcessingStrategy.kt @@ -1,8 +1,8 @@ package org.jetbrains.dokka.allModulesPage.templates import org.jetbrains.dokka.DokkaConfiguration.DokkaModuleDescription -import org.jetbrains.dokka.base.renderers.html.SearchRecord import org.jetbrains.dokka.base.templating.AddToSearch +import org.jetbrains.dokka.base.templating.SearchRecord import org.jetbrains.dokka.base.templating.parseJson import org.jetbrains.dokka.base.templating.toJsonString import org.jetbrains.dokka.plugability.DokkaContext diff --git a/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToNavigationCommandResolutionTest.kt b/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToNavigationCommandResolutionTest.kt index 81d397522f..1fa79a476e 100644 --- a/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToNavigationCommandResolutionTest.kt +++ b/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToNavigationCommandResolutionTest.kt @@ -6,8 +6,8 @@ import kotlinx.html.id import kotlinx.html.span import kotlinx.html.stream.createHTML import org.jetbrains.dokka.DokkaModuleDescriptionImpl -import org.jetbrains.dokka.base.renderers.html.templateCommand import org.jetbrains.dokka.base.templating.AddToNavigationCommand +import org.jetbrains.dokka.html.renderers.templateCommand import org.jetbrains.dokka.plugability.DokkaContext import org.junit.Rule import org.junit.jupiter.api.Test diff --git a/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToSearchCommandResolutionTest.kt b/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToSearchCommandResolutionTest.kt index 45c704694d..72667a4e28 100644 --- a/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToSearchCommandResolutionTest.kt +++ b/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/AddToSearchCommandResolutionTest.kt @@ -1,8 +1,8 @@ package org.jetbrains.dokka.templates import org.jetbrains.dokka.DokkaModuleDescriptionImpl -import org.jetbrains.dokka.base.renderers.html.SearchRecord import org.jetbrains.dokka.base.templating.AddToSearch +import org.jetbrains.dokka.base.templating.SearchRecord import org.jetbrains.dokka.base.templating.parseJson import org.jetbrains.dokka.base.templating.toJsonString import org.junit.Rule diff --git a/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/SubstitutionCommandResolutionTest.kt b/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/SubstitutionCommandResolutionTest.kt index c31f63c7f6..4bea32f510 100644 --- a/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/SubstitutionCommandResolutionTest.kt +++ b/plugins/templating/src/test/kotlin/org/jetbrains/dokka/templates/SubstitutionCommandResolutionTest.kt @@ -6,9 +6,9 @@ import kotlinx.html.id import kotlinx.html.span import kotlinx.html.stream.createHTML import org.jetbrains.dokka.DokkaModuleDescriptionImpl -import org.jetbrains.dokka.base.renderers.html.templateCommand -import org.jetbrains.dokka.base.renderers.html.templateCommandAsHtmlComment import org.jetbrains.dokka.base.templating.PathToRootSubstitutionCommand +import org.jetbrains.dokka.html.renderers.templateCommand +import org.jetbrains.dokka.html.renderers.templateCommandAsHtmlComment import org.junit.Rule import org.junit.jupiter.api.Test import org.junit.rules.TemporaryFolder diff --git a/plugins/versioning/api/versioning.api b/plugins/versioning/api/versioning.api index b163fd4abe..da041307ce 100644 --- a/plugins/versioning/api/versioning.api +++ b/plugins/versioning/api/versioning.api @@ -46,11 +46,11 @@ public final class org/jetbrains/dokka/versioning/NotFoundPageInstaller : org/je public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; } -public final class org/jetbrains/dokka/versioning/ReplaceVersionCommandConsumer : org/jetbrains/dokka/base/templating/ImmediateHtmlCommandConsumer { +public final class org/jetbrains/dokka/versioning/ReplaceVersionCommandConsumer : org/jetbrains/dokka/html/templating/ImmediateHtmlCommandConsumer { public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V public fun canProcess (Lorg/jetbrains/dokka/base/templating/Command;)Z - public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)V - public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/base/renderers/html/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; + public fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)V + public fun processCommandAndFinalize (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;Lorg/jetbrains/dokka/html/renderers/command/consumers/ImmediateResolutionTagConsumer;)Ljava/lang/Object; } public final class org/jetbrains/dokka/versioning/ReplaceVersionCommandHandler : org/jetbrains/dokka/templates/CommandHandler { diff --git a/plugins/versioning/build.gradle.kts b/plugins/versioning/build.gradle.kts index 7d585a449d..9629dd9f8e 100644 --- a/plugins/versioning/build.gradle.kts +++ b/plugins/versioning/build.gradle.kts @@ -6,6 +6,7 @@ registerDokkaArtifactPublication("versioning-plugin") { dependencies { implementation(project(":plugins:base")) + implementation(project(":plugins:html")) implementation(project(":plugins:templating")) val coroutines_version: String by project diff --git a/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/ReplaceVersionCommandConsumer.kt b/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/ReplaceVersionCommandConsumer.kt index ea524c52a1..c357996b88 100644 --- a/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/ReplaceVersionCommandConsumer.kt +++ b/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/ReplaceVersionCommandConsumer.kt @@ -3,17 +3,17 @@ package org.jetbrains.dokka.versioning import kotlinx.html.unsafe import kotlinx.html.visit import kotlinx.html.visitAndFinalize -import org.jetbrains.dokka.base.renderers.html.TemplateBlock -import org.jetbrains.dokka.base.renderers.html.command.consumers.ImmediateResolutionTagConsumer -import org.jetbrains.dokka.base.renderers.html.templateCommandFor import org.jetbrains.dokka.base.templating.Command -import org.jetbrains.dokka.base.templating.ImmediateHtmlCommandConsumer import org.jetbrains.dokka.base.templating.ReplaceVersionsCommand +import org.jetbrains.dokka.html.renderers.TemplateBlock +import org.jetbrains.dokka.html.renderers.command.consumers.ImmediateResolutionTagConsumer +import org.jetbrains.dokka.html.renderers.templateCommandFor import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.querySingle -class ReplaceVersionCommandConsumer(context: DokkaContext) : ImmediateHtmlCommandConsumer { +class ReplaceVersionCommandConsumer(context: DokkaContext) : + org.jetbrains.dokka.html.templating.ImmediateHtmlCommandConsumer { private val versionsNavigationCreator = context.plugin().querySingle { versionsNavigationCreator } diff --git a/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersioningPlugin.kt b/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersioningPlugin.kt index e4e8bbae63..966e1f6ad8 100644 --- a/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersioningPlugin.kt +++ b/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersioningPlugin.kt @@ -1,7 +1,7 @@ package org.jetbrains.dokka.versioning import org.jetbrains.dokka.CoreExtensions.postActions -import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.html.DokkaHtml import org.jetbrains.dokka.plugability.DokkaPlugin import org.jetbrains.dokka.plugability.configuration import org.jetbrains.dokka.templates.TemplatingPlugin @@ -12,7 +12,7 @@ class VersioningPlugin : DokkaPlugin() { val versionsNavigationCreator by extensionPoint() val versionsOrdering by extensionPoint() - private val dokkaBase by lazy { plugin() } + private val dokkaHtml by lazy { plugin() } private val templatingPlugin by lazy { plugin() } val defaultVersioningStorage by extending { @@ -25,18 +25,18 @@ class VersioningPlugin : DokkaPlugin() { templatingPlugin.directiveBasedCommandHandlers providing ::ReplaceVersionCommandHandler override templatingPlugin.replaceVersionCommandHandler } val resolveLinkConsumer by extending { - dokkaBase.immediateHtmlCommandConsumer providing ::ReplaceVersionCommandConsumer override dokkaBase.replaceVersionConsumer + dokkaHtml.immediateHtmlCommandConsumer providing ::ReplaceVersionCommandConsumer override dokkaHtml.replaceVersionConsumer } val cssStyleInstaller by extending { - dokkaBase.htmlPreprocessors providing ::MultiModuleStylesInstaller order { - after(dokkaBase.assetsInstaller) - before(dokkaBase.customResourceInstaller) + dokkaHtml.htmlPreprocessors providing ::MultiModuleStylesInstaller order { + after(dokkaHtml.assetsInstaller) + before(dokkaHtml.customResourceInstaller) } } val notFoundPageInstaller by extending { - dokkaBase.htmlPreprocessors providing ::NotFoundPageInstaller order { - after(dokkaBase.assetsInstaller) - before(dokkaBase.customResourceInstaller) + dokkaHtml.htmlPreprocessors providing ::NotFoundPageInstaller order { + after(dokkaHtml.assetsInstaller) + before(dokkaHtml.customResourceInstaller) } applyIf { !delayTemplateSubstitution } } val versionsDefaultOrdering by extending { diff --git a/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt b/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt index 719d2cf91f..8154f0b7e2 100644 --- a/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt +++ b/plugins/versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt @@ -3,7 +3,6 @@ package org.jetbrains.dokka.versioning import kotlinx.html.a import kotlinx.html.div import kotlinx.html.stream.appendHTML -import org.jetbrains.dokka.base.renderers.html.strike import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.configuration import org.jetbrains.dokka.plugability.plugin diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaArtifacts.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaArtifacts.kt index 184e61bb37..4a30a0af3f 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaArtifacts.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaArtifacts.kt @@ -14,6 +14,7 @@ internal class DokkaArtifacts(private val project: Project) { val allModulesPage get() = fromModuleName("all-modules-page-plugin") val dokkaCore get() = fromModuleName("dokka-core") val dokkaBase get() = fromModuleName("dokka-base") + val htmlPlugin get() = fromModuleName("html-plugin") val javadocPlugin get() = fromModuleName("javadoc-plugin") val gfmPlugin get() = fromModuleName("gfm-plugin") val gfmTemplateProcessing get() = fromModuleName("gfm-template-processing-plugin") diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaPlugin.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaPlugin.kt index 691d9f6d70..5103851660 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaPlugin.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaPlugin.kt @@ -14,6 +14,7 @@ open class DokkaPlugin : Plugin { } project.setupDokkaTasks("dokkaHtml") { + plugins.dependencies.add(project.dokkaArtifacts.htmlPlugin) description = "Generates documentation in 'html' format" } diff --git a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt index 581d4c9e61..8c64a0da6c 100644 --- a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt +++ b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt @@ -319,13 +319,18 @@ abstract class AbstractDokkaMojo(private val defaultDokkaPlugins: List Date: Wed, 23 Nov 2022 16:17:27 +0200 Subject: [PATCH 2/8] Dispose `AnalysisEnvironment` --- .../org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt | 5 +++-- .../src/main/kotlin/testRunner/baseTestApi.kt | 1 + .../src/main/kotlin/generation/SingleModuleGeneration.kt | 5 +++++ .../kotlin/transformers/pages/samples/SamplesTransformer.kt | 3 +-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt index b946c5bd3c..5c59c3cfb5 100644 --- a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt +++ b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt @@ -30,7 +30,7 @@ internal fun createEnvironmentAndFacade( val environment = createCoreEnvironment() val (facade, _) = createResolutionFacade(environment, analysisConfiguration.ignoreCommonBuiltIns) - EnvironmentAndFacade(environment, facade) + EnvironmentAndFacade(environment, facade, this) } class DokkaMessageCollector(private val logger: DokkaLogger) : MessageCollector { @@ -51,7 +51,8 @@ class DokkaMessageCollector(private val logger: DokkaLogger) : MessageCollector } // It is not data class due to ill-defined equals -class EnvironmentAndFacade(val environment: KotlinCoreEnvironment, val facade: DokkaResolutionFacade) { +class EnvironmentAndFacade(val environment: KotlinCoreEnvironment, val facade: DokkaResolutionFacade, val analysisEnvironment: AnalysisEnvironment) { operator fun component1() = environment operator fun component2() = facade + operator fun component3() = analysisEnvironment } diff --git a/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt b/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt index 2dbd5cce5d..d2751eeb7f 100644 --- a/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt +++ b/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt @@ -58,6 +58,7 @@ class BaseDokkaTestGenerator( singleModuleGeneration.reportAfterRendering() + singleModuleGeneration.disposeAnalysis() } } diff --git a/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt b/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt index 64d9c76d78..37c88ab7d5 100644 --- a/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt +++ b/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt @@ -14,6 +14,7 @@ import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.query +import org.jetbrains.dokka.plugability.querySingle import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator import org.jetbrains.dokka.utilities.parallelMap import org.jetbrains.dokka.utilities.report @@ -62,6 +63,10 @@ class SingleModuleGeneration(private val context: DokkaContext) : Generation { .also { modules -> if (modules.isEmpty()) exitGenerationGracefully("Nothing to document") } } + fun disposeAnalysis() { + context.plugin().querySingle { kotlinAnalysis }.values.forEach { it.analysisEnvironment.dispose() } + } + fun transformDocumentationModelBeforeMerge(modulesFromPlatforms: List) = context.plugin().query { preMergeDocumentableTransformer } .fold(modulesFromPlatforms) { acc, t -> t(acc) } diff --git a/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt b/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt index 9c78972adf..0864de93a0 100644 --- a/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt +++ b/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.idea.kdoc.resolveKDocLink import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils -import org.jetbrains.kotlin.utils.PathUtil abstract class SamplesTransformer(val context: DokkaContext) : PageTransformer { @@ -65,7 +64,7 @@ abstract class SamplesTransformer(val context: DokkaContext) : PageTransformer { val environment = createCoreEnvironment() val (facade, _) = createResolutionFacade(environment) - EnvironmentAndFacade(environment, facade) + EnvironmentAndFacade(environment, facade, this) } } From 608f854b8649cbb17922074925b89445960b29d1 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 23 Nov 2022 17:00:56 +0200 Subject: [PATCH 3/8] Dispose `AnalysisEnvironment` --- .../org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt | 4 ++++ .../src/main/kotlin/testRunner/baseTestApi.kt | 2 -- .../src/main/kotlin/generation/SingleModuleGeneration.kt | 5 ----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt index 5c59c3cfb5..2e140ba6ad 100644 --- a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt +++ b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt @@ -55,4 +55,8 @@ class EnvironmentAndFacade(val environment: KotlinCoreEnvironment, val facade: D operator fun component1() = environment operator fun component2() = facade operator fun component3() = analysisEnvironment + + protected fun finalize() { + analysisEnvironment.dispose() + } } diff --git a/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt b/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt index d2751eeb7f..2e1c26838d 100644 --- a/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt +++ b/plugins/base/base-test-utils/src/main/kotlin/testRunner/baseTestApi.kt @@ -57,8 +57,6 @@ class BaseDokkaTestGenerator( } singleModuleGeneration.reportAfterRendering() - - singleModuleGeneration.disposeAnalysis() } } diff --git a/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt b/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt index 37c88ab7d5..64d9c76d78 100644 --- a/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt +++ b/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt @@ -14,7 +14,6 @@ import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.query -import org.jetbrains.dokka.plugability.querySingle import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator import org.jetbrains.dokka.utilities.parallelMap import org.jetbrains.dokka.utilities.report @@ -63,10 +62,6 @@ class SingleModuleGeneration(private val context: DokkaContext) : Generation { .also { modules -> if (modules.isEmpty()) exitGenerationGracefully("Nothing to document") } } - fun disposeAnalysis() { - context.plugin().querySingle { kotlinAnalysis }.values.forEach { it.analysisEnvironment.dispose() } - } - fun transformDocumentationModelBeforeMerge(modulesFromPlatforms: List) = context.plugin().query { preMergeDocumentableTransformer } .fold(modulesFromPlatforms) { acc, t -> t(acc) } From badb71048ff357390e2f4a6b8566e1b52c23ce7a Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 23 Nov 2022 18:19:31 +0200 Subject: [PATCH 4/8] Fix integration test of CLI --- integration-tests/cli/build.gradle.kts | 16 ++++++++++++ .../dokka/it/cli/CliIntegrationTest.kt | 26 +++++++++++++------ .../it/cli/AbstractCliIntegrationTest.kt | 12 +++++++++ 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/integration-tests/cli/build.gradle.kts b/integration-tests/cli/build.gradle.kts index 33c2b827d7..8e08a56cd0 100644 --- a/integration-tests/cli/build.gradle.kts +++ b/integration-tests/cli/build.gradle.kts @@ -8,6 +8,7 @@ plugins { val dokka_version: String by project evaluationDependsOn(":runners:cli") evaluationDependsOn(":plugins:base") +evaluationDependsOn(":plugins:html") dependencies { implementation(kotlin("stdlib")) @@ -21,22 +22,37 @@ val basePluginShadow: Configuration by configurations.creating { } } +val htmlPluginShadow: Configuration by configurations.creating { + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage::class.java, "java-runtime")) + } +} + dependencies { basePluginShadow(project(":plugins:base")) basePluginShadow(project(":kotlin-analysis")) // compileOnly in base plugin + htmlPluginShadow(project(":plugins:html")) } + val basePluginShadowJar by tasks.register("basePluginShadowJar", ShadowJar::class) { configurations = listOf(basePluginShadow) archiveFileName.set("fat-base-plugin-$dokka_version.jar") archiveClassifier.set("") } +val htmlPluginShadowJar by tasks.register("htmlPluginShadowJar", ShadowJar::class) { + configurations = listOf(htmlPluginShadow) + archiveFileName.set("fat-html-plugin-$dokka_version.jar") + archiveClassifier.set("") +} tasks.integrationTest { inputs.dir(file("projects")) val cliJar = tasks.getByPath(":runners:cli:shadowJar") as ShadowJar environment("CLI_JAR_PATH", cliJar.archiveFile.get()) + environment("HTML_PLUGIN_JAR_PATH", htmlPluginShadowJar.archiveFile.get()) environment("BASE_PLUGIN_JAR_PATH", basePluginShadowJar.archiveFile.get()) dependsOn(cliJar) dependsOn(basePluginShadowJar) + dependsOn(htmlPluginShadowJar) } diff --git a/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/CliIntegrationTest.kt b/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/CliIntegrationTest.kt index 424c229cbe..28628e16e1 100644 --- a/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/CliIntegrationTest.kt +++ b/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/CliIntegrationTest.kt @@ -8,6 +8,10 @@ import kotlin.test.* class CliIntegrationTest : AbstractCliIntegrationTest() { + val pluginClasspath by lazy { + listOf(basePluginJarFile, htmlPluginJarFile).joinToString(separator = ";") { it.path } + } + @BeforeTest fun copyProject() { val templateProjectDir = File("projects", "it-cli") @@ -32,7 +36,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { val process = ProcessBuilder( "java", "-jar", cliJarFile.path, "-outputDir", dokkaOutputDir.path, - "-pluginsClasspath", basePluginJarFile.path, + "-pluginsClasspath", pluginClasspath, "-moduleName", "Basic Project", "-sourceSet", buildString { @@ -107,7 +111,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { val process = ProcessBuilder( "java", "-jar", cliJarFile.path, "-outputDir", dokkaOutputDir.path, - "-pluginsClasspath", basePluginJarFile.path, + "-pluginsClasspath", pluginClasspath, "-moduleName", "Basic Project", "-failOnWarning", "-sourceSet", @@ -135,7 +139,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { val process = ProcessBuilder( "java", "-jar", cliJarFile.path, "-outputDir", dokkaOutputDir.path, - "-pluginsClasspath", basePluginJarFile.path, + "-pluginsClasspath", pluginClasspath, "-moduleName", "Basic Project", "-sourceSet", buildString { @@ -166,7 +170,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { "java", "-jar", cliJarFile.path, "-outputDir", dokkaOutputDir.path, "-loggingLevel", "DEBUG", - "-pluginsClasspath", basePluginJarFile.path, + "-pluginsClasspath", pluginClasspath, "-sourceSet", buildString { append(" -src ${File(projectDir, "src").path}") @@ -202,7 +206,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { "java", "-jar", cliJarFile.path, "-outputDir", dokkaOutputDir.path, "-loggingLevel", "WARN", - "-pluginsClasspath", basePluginJarFile.path, + "-pluginsClasspath", pluginClasspath, "-sourceSet", buildString { append(" -src ${File(projectDir, "src").path}") @@ -223,7 +227,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { val process = ProcessBuilder( "java", "-jar", cliJarFile.path, "-outputDir", dokkaOutputDir.path, - "-pluginsClasspath", basePluginJarFile.path, + "-pluginsClasspath", pluginClasspath, "-moduleName", "Basic Project", "-sourceSet", buildString { @@ -270,7 +274,13 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { val resourcePath = javaClass.getResource("/my-file.json")?.toURI() ?: throw IllegalStateException("No JSON found!") val jsonPath = File(resourcePath).absolutePath PrintWriter(jsonPath).run { - write(jsonBuilder(dokkaOutputDir.invariantSeparatorsPath, basePluginJarFile.invariantSeparatorsPath, File(projectDir, "src").invariantSeparatorsPath, reportUndocumented = true)) + write( + jsonBuilder( + outputPath = dokkaOutputDir.invariantSeparatorsPath, + pluginsClasspath = "\"${basePluginJarFile.invariantSeparatorsPath}\", \"${htmlPluginJarFile.invariantSeparatorsPath}\"", + projectPath = File(projectDir, "src").invariantSeparatorsPath, reportUndocumented = true + ) + ) close() } @@ -313,7 +323,7 @@ class CliIntegrationTest : AbstractCliIntegrationTest() { write( jsonBuilder( outputPath = dokkaOutputDir.invariantSeparatorsPath, - pluginsClasspath = basePluginJarFile.invariantSeparatorsPath, + pluginsClasspath = "\"${basePluginJarFile.invariantSeparatorsPath}\", \"${htmlPluginJarFile.invariantSeparatorsPath}\"", projectPath = File(projectDir, "src").invariantSeparatorsPath, globalSourceLinks = """ { diff --git a/integration-tests/cli/src/main/kotlin/org/jetbrains/dokka/it/cli/AbstractCliIntegrationTest.kt b/integration-tests/cli/src/main/kotlin/org/jetbrains/dokka/it/cli/AbstractCliIntegrationTest.kt index 7f6f9433c9..3bf54deffc 100644 --- a/integration-tests/cli/src/main/kotlin/org/jetbrains/dokka/it/cli/AbstractCliIntegrationTest.kt +++ b/integration-tests/cli/src/main/kotlin/org/jetbrains/dokka/it/cli/AbstractCliIntegrationTest.kt @@ -15,6 +15,10 @@ abstract class AbstractCliIntegrationTest : AbstractIntegrationTest() { File(temporaryTestFolder.root, "base-plugin.jar") } + protected val htmlPluginJarFile: File by lazy { + File(temporaryTestFolder.root, "html-plugin.jar") + } + @BeforeTest fun copyJarFiles() { val cliJarPathEnvironmentKey = "CLI_JAR_PATH" @@ -32,5 +36,13 @@ abstract class AbstractCliIntegrationTest : AbstractIntegrationTest() { "Missing path to base plugin jar System.getenv($basePluginPathEnvironmentKey)" ) basePluginJarFile.copyTo(this.basePluginJarFile) + + val htmlPluginPathEnvironmentKey = "HTML_PLUGIN_JAR_PATH" + val htmlPluginJarFile = File(System.getenv(htmlPluginPathEnvironmentKey)) + assertTrue( + htmlPluginJarFile.exists() && htmlPluginJarFile.isFile, + "Missing path to html plugin jar System.getenv($htmlPluginPathEnvironmentKey)" + ) + htmlPluginJarFile.copyTo(this.htmlPluginJarFile) } } From 65c932940ecb6ad45dc1fc317c0874f762517138 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 23 Nov 2022 21:38:10 +0200 Subject: [PATCH 5/8] Disable `dokka-samples-transformer-plugin` in StdLib integration test --- integration-tests/gradle/projects/stdlib/stdlib.diff | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-tests/gradle/projects/stdlib/stdlib.diff b/integration-tests/gradle/projects/stdlib/stdlib.diff index dcd5bb7032..167b3ebe9f 100644 --- a/integration-tests/gradle/projects/stdlib/stdlib.diff +++ b/integration-tests/gradle/projects/stdlib/stdlib.diff @@ -76,7 +76,7 @@ index aa8f21b..dd6a2ae 100644 dependencies { - dokka "org.jetbrains.dokka:dokka-fatjar:$dokka_version" -+ dokkaPlugin project(":plugins:dokka-samples-transformer-plugin") ++ // dokkaPlugin project(":plugins:dokka-samples-transformer-plugin") uncomment after upgrade StdLib Gradle + dokkaPlugin project(":plugins:dokka-stdlib-configuration-plugin") } From 4e873da6349c572e02332188f51e7b3d91a49e05 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 23 Nov 2022 22:33:50 +0200 Subject: [PATCH 6/8] Fix import and `jsonBuilder` --- .../kotlin/org/jetbrains/dokka/it/cli/jsonBuilder.kt | 2 +- .../jetbrains/dokka/html/renderers/NavigationDataProvider.kt | 4 +--- .../org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/jsonBuilder.kt b/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/jsonBuilder.kt index d5d1df82e6..54b5174ecf 100644 --- a/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/jsonBuilder.kt +++ b/integration-tests/cli/src/integrationTest/kotlin/org/jetbrains/dokka/it/cli/jsonBuilder.kt @@ -14,7 +14,7 @@ fun jsonBuilder( "moduleName": "Dokka Example", "moduleVersion": null, "outputDir": "$outputPath", - "pluginsClasspath": ["$pluginsClasspath"], + "pluginsClasspath": [$pluginsClasspath], "cacheRoot": null, "offlineMode": false, "sourceLinks": [$globalSourceLinks], diff --git a/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt index a267db9721..603f76c571 100644 --- a/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/NavigationDataProvider.kt @@ -1,4 +1,4 @@ -package org.jetbrains.dokka.base.renderers.html +package org.jetbrains.dokka.html.renderers import org.jetbrains.dokka.base.renderers.sourceSets import org.jetbrains.dokka.base.signatures.KotlinSignatureUtils.annotations @@ -6,8 +6,6 @@ import org.jetbrains.dokka.base.transformers.documentables.isDeprecated import org.jetbrains.dokka.base.transformers.documentables.isException import org.jetbrains.dokka.base.translators.documentables.DocumentableLanguage import org.jetbrains.dokka.base.translators.documentables.documentableLanguage -import org.jetbrains.dokka.html.renderers.NavigationNode -import org.jetbrains.dokka.html.renderers.NavigationNodeIcon import org.jetbrains.dokka.model.* import org.jetbrains.dokka.pages.* diff --git a/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt index 2a50ae93f0..1429433a7b 100644 --- a/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt +++ b/plugins/html/src/main/kotlin/org/jetbrains/dokka/html/renderers/htmlPreprocessors.kt @@ -2,7 +2,6 @@ package org.jetbrains.dokka.html.renderers import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration -import org.jetbrains.dokka.base.renderers.html.NavigationDataProvider import org.jetbrains.dokka.base.templating.AddToSourcesetDependencies import org.jetbrains.dokka.base.templating.toJsonString import org.jetbrains.dokka.html.DokkaHtml From 10e70436d496cd0f40f3502b4a7305e7b38644d4 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 23 Nov 2022 22:35:05 +0200 Subject: [PATCH 7/8] Fix StdLib integration test --- .../plugins/dokka-stdlib-configuration-plugin/build.gradle | 6 +++--- integration-tests/gradle/projects/stdlib/stdlib.diff | 3 ++- .../dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle b/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle index ddf84a2fb9..ea8ef5f43d 100644 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle +++ b/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle @@ -9,9 +9,9 @@ repositories { } dependencies { - implementation "org.jetbrains.dokka:dokka-base:${dokka_it_version}" - compileOnly "org.jetbrains.dokka:dokka-core:${dokka_it_version}" - compileOnly "org.jetbrains.dokka:dokka-analysis:${dokka_it_version}" + implementation "org.jetbrains.dokka:dokka-base:1.5.0" // ${dokka_it_version} - old Gradle does not support latest Dokka + compileOnly "org.jetbrains.dokka:dokka-core:1.5.0"// ${dokka_it_version} + compileOnly "org.jetbrains.dokka:dokka-analysis:1.5.0" // ${dokka_it_version} } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) { diff --git a/integration-tests/gradle/projects/stdlib/stdlib.diff b/integration-tests/gradle/projects/stdlib/stdlib.diff index 167b3ebe9f..fc03f1d5d1 100644 --- a/integration-tests/gradle/projects/stdlib/stdlib.diff +++ b/integration-tests/gradle/projects/stdlib/stdlib.diff @@ -37,7 +37,7 @@ diff --git a/build.gradle b/build.gradle index aa8f21b..dd6a2ae 100644 --- a/build.gradle +++ b/build.gradle -@@ -1,80 +1,445 @@ +@@ -1,80 +1,446 @@ +import org.jetbrains.dokka.Platform + plugins { @@ -78,6 +78,7 @@ index aa8f21b..dd6a2ae 100644 - dokka "org.jetbrains.dokka:dokka-fatjar:$dokka_version" + // dokkaPlugin project(":plugins:dokka-samples-transformer-plugin") uncomment after upgrade StdLib Gradle + dokkaPlugin project(":plugins:dokka-stdlib-configuration-plugin") ++ dokkaPlugin "org.jetbrains.dokka:html-plugin:$dokka_it_version" } -final File dokkaHome = new File(buildDir, "dokka-home") diff --git a/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt b/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt index fc3ed66fa9..8029035f88 100644 --- a/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt +++ b/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt @@ -24,7 +24,7 @@ class StdlibGradleIntegrationTest(override val versions: BuildVersions) : Abstra override val projectOutputLocation: File by lazy { File(projectDir, "build/dokka/kotlin-stdlib") } - private val currentDokkaVersion: String = "1.5.0"//checkNotNull(System.getenv("DOKKA_VERSION")) // uncomment after updating of StdLib + private val currentDokkaVersion: String = checkNotNull(System.getenv("DOKKA_VERSION")) @BeforeTest fun prepareProjectFiles() { From 18e06de5df05015df088393ff2ca38956ad93c0a Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 23 Nov 2022 22:36:20 +0200 Subject: [PATCH 8/8] Fix Api --- plugins/html/api/html.api | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/html/api/html.api b/plugins/html/api/html.api index de16382838..d24ddb82e4 100644 --- a/plugins/html/api/html.api +++ b/plugins/html/api/html.api @@ -1,9 +1,3 @@ -public abstract class org/jetbrains/dokka/base/renderers/html/NavigationDataProvider { - public fun ()V - public fun navigableChildren (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; - public fun visit (Lorg/jetbrains/dokka/pages/ContentPage;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; -} - public final class org/jetbrains/dokka/html/DokkaHtml : org/jetbrains/dokka/plugability/DokkaPlugin { public fun ()V public final fun getAssetsInstaller ()Lorg/jetbrains/dokka/plugability/Extension; @@ -133,6 +127,12 @@ public final class org/jetbrains/dokka/html/renderers/HtmlRendererKt { public static final fun joinAttr (Ljava/util/List;)Ljava/lang/String; } +public abstract class org/jetbrains/dokka/html/renderers/NavigationDataProvider { + public fun ()V + public fun navigableChildren (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; + public fun visit (Lorg/jetbrains/dokka/pages/ContentPage;)Lorg/jetbrains/dokka/html/renderers/NavigationNode; +} + public final class org/jetbrains/dokka/html/renderers/NavigationNode : org/jetbrains/dokka/model/WithChildren { public fun (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;)V public synthetic fun (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/html/renderers/NavigationNodeIcon;Ljava/util/Set;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -188,7 +188,7 @@ public final class org/jetbrains/dokka/html/renderers/NavigationPage : org/jetbr public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; } -public class org/jetbrains/dokka/html/renderers/NavigationPageInstaller : org/jetbrains/dokka/base/renderers/html/NavigationDataProvider, org/jetbrains/dokka/transformers/pages/PageTransformer { +public class org/jetbrains/dokka/html/renderers/NavigationPageInstaller : org/jetbrains/dokka/html/renderers/NavigationDataProvider, org/jetbrains/dokka/transformers/pages/PageTransformer { public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode;