package org.jetbrains.dokka.allModulesPage import org.jetbrains.dokka.CoreExtensions import org.jetbrains.dokka.allModulesPage.templates.* import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.resolvers.local.DokkaLocationProviderFactory import org.jetbrains.dokka.base.resolvers.local.LocationProviderFactory import org.jetbrains.dokka.plugability.DokkaPlugin import org.jetbrains.dokka.transformers.pages.PageCreator import org.jetbrains.dokka.transformers.pages.PageTransformer class AllModulesPagePlugin : DokkaPlugin() { val templateProcessor by extensionPoint() val templateProcessingStrategy by extensionPoint() val partialLocationProviderFactory by extensionPoint() val allModulesPageCreator by extensionPoint() val allModulesPageTransformer by extensionPoint() val externalModuleLinkResolver by extensionPoint() val substitutor by extensionPoint() val allModulesPageCreators by extending { allModulesPageCreator providing ::MultimodulePageCreator } val multimoduleLocationProvider by extending { (plugin().locationProviderFactory providing MultimoduleLocationProvider::Factory override plugin().locationProvider) } val baseLocationProviderFactory by extending { partialLocationProviderFactory providing ::DokkaLocationProviderFactory } val allModulesPageGeneration by extending { (CoreExtensions.generation providing ::AllModulesPageGeneration override plugin().singleGeneration) } val defaultTemplateProcessor by extending { templateProcessor providing ::DefaultTemplateProcessor } val directiveBasedHtmlTemplateProcessingStrategy by extending { templateProcessingStrategy providing ::DirectiveBasedHtmlTemplateProcessingStrategy order { before(fallbackProcessingStrategy) } } val fallbackProcessingStrategy by extending { templateProcessingStrategy providing ::FallbackTemplateProcessingStrategy } val navigationSearchTemplateStrategy by extending { templateProcessingStrategy providing ::NavigationSearchTemplateStrategy order { before(fallbackProcessingStrategy) } } val pagesSearchTemplateStrategy by extending { templateProcessingStrategy providing ::PagesSearchTemplateStrategy order { before(fallbackProcessingStrategy) } } val pathToRootSubstitutor by extending { substitutor providing ::PathToRootSubstitutor } val multiModuleLinkResolver by extending { externalModuleLinkResolver providing ::DefaultExternalModuleLinkResolver } }