From 90cf2ebccd12073a55ff6f187e5a378a2e96e23b Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Mon, 23 Nov 2015 19:21:08 +0100 Subject: Copy style.css to the output directory when doing HTML and use relative paths. Fixes the code so that the relative path to root is always available, breaking the requirement to use a local web server. --- src/Formats/HtmlFormatService.kt | 7 +++++-- src/Formats/HtmlTemplateService.kt | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'src/Formats') diff --git a/src/Formats/HtmlFormatService.kt b/src/Formats/HtmlFormatService.kt index e810ef7f..2c461905 100644 --- a/src/Formats/HtmlFormatService.kt +++ b/src/Formats/HtmlFormatService.kt @@ -3,6 +3,7 @@ package org.jetbrains.dokka import com.google.inject.Inject import com.google.inject.name.Named import java.io.File +import java.nio.file.Paths public open class HtmlFormatService @Inject constructor(@Named("folders") locationService: LocationService, signatureGenerator: LanguageService, @@ -113,17 +114,19 @@ public open class HtmlFormatService @Inject constructor(@Named("folders") locati override fun appendNodes(location: Location, to: StringBuilder, nodes: Iterable) { - templateService.appendHeader(to, getPageTitle(nodes)) + templateService.appendHeader(to, getPageTitle(nodes), calcPathToRoot(location)) super.appendNodes(location, to, nodes) templateService.appendFooter(to) } override fun appendOutline(location: Location, to: StringBuilder, nodes: Iterable) { - templateService.appendHeader(to, "Module Contents") + templateService.appendHeader(to, "Module Contents", calcPathToRoot(location)) super.appendOutline(location, to, nodes) templateService.appendFooter(to) } + private fun calcPathToRoot(location: Location) = Paths.get(location.path).parent.relativize(Paths.get(locationService.root.path + '/')) + override fun getOutlineFileName(location: Location): File { return File("${location.path}-outline.html") } diff --git a/src/Formats/HtmlTemplateService.kt b/src/Formats/HtmlTemplateService.kt index b9900757..ae42a31b 100644 --- a/src/Formats/HtmlTemplateService.kt +++ b/src/Formats/HtmlTemplateService.kt @@ -1,7 +1,9 @@ package org.jetbrains.dokka +import java.nio.file.Path + public interface HtmlTemplateService { - fun appendHeader(to: StringBuilder, title: String?) + fun appendHeader(to: StringBuilder, title: String?, basePath: Path) fun appendFooter(to: StringBuilder) companion object { @@ -11,14 +13,15 @@ public interface HtmlTemplateService { to.appendln("") to.appendln("") } - override fun appendHeader(to: StringBuilder, title: String?) { + override fun appendHeader(to: StringBuilder, title: String?, basePath: Path) { to.appendln("") to.appendln("") if (title != null) { to.appendln("$title") } if (css != null) { - to.appendln("") + val cssPath = basePath.resolve(css) + to.appendln("") } to.appendln("") to.appendln("") -- cgit