diff options
author | Dmitry Jemerov <yole@jetbrains.com> | 2015-01-16 13:04:09 +0100 |
---|---|---|
committer | Dmitry Jemerov <yole@jetbrains.com> | 2015-01-16 13:04:09 +0100 |
commit | 4b75751845b6d63a642cac1017ada30f2549bf14 (patch) | |
tree | e593a81f00eda469eb5b0dfa05af60455bc467ea /src | |
parent | d75cc63e9b1edc229fad225956ba44fa433e2d0e (diff) | |
download | dokka-4b75751845b6d63a642cac1017ada30f2549bf14.tar.gz dokka-4b75751845b6d63a642cac1017ada30f2549bf14.tar.bz2 dokka-4b75751845b6d63a642cac1017ada30f2549bf14.zip |
generate page titles in HTML output
Diffstat (limited to 'src')
-rw-r--r-- | src/Formats/HtmlFormatService.kt | 19 | ||||
-rw-r--r-- | src/Formats/HtmlTemplateService.kt | 7 |
2 files changed, 23 insertions, 3 deletions
diff --git a/src/Formats/HtmlFormatService.kt b/src/Formats/HtmlFormatService.kt index f76693dc..a50f2c8b 100644 --- a/src/Formats/HtmlFormatService.kt +++ b/src/Formats/HtmlFormatService.kt @@ -115,7 +115,7 @@ public open class HtmlFormatService(locationService: LocationService, override fun appendNodes(location: Location, to: StringBuilder, nodes: Iterable<DocumentationNode>) { - templateService.appendHeader(to) + templateService.appendHeader(to, getPageTitle(nodes)) super<StructuredFormatService>.appendNodes(location, to, nodes) templateService.appendFooter(to) } @@ -124,4 +124,21 @@ public open class HtmlFormatService(locationService: LocationService, } override fun appendOutlineHeader(to: StringBuilder, node: DocumentationNode) { } + + fun getPageTitle(nodes: Iterable<DocumentationNode>): String? { + val breakdownByLocation = nodes.groupBy { node -> formatPageTitle(node) } + return breakdownByLocation.keySet().singleOrNull() + } + + fun formatPageTitle(node: DocumentationNode): String { + val path = node.path + if (path.size() == 1) { + return path.first().name + } + val qualifiedName = path.drop(1).map { it.name }.filter { it.length() > 0 }.join(".") + if (qualifiedName.length() == 0 && path.size() == 2) { + return path.first().name + " / root package" + } + return path.first().name + " / " + qualifiedName + } }
\ No newline at end of file diff --git a/src/Formats/HtmlTemplateService.kt b/src/Formats/HtmlTemplateService.kt index 5bb03fbd..54bfa300 100644 --- a/src/Formats/HtmlTemplateService.kt +++ b/src/Formats/HtmlTemplateService.kt @@ -1,7 +1,7 @@ package org.jetbrains.dokka public trait HtmlTemplateService { - fun appendHeader(to: StringBuilder) + fun appendHeader(to: StringBuilder, title: String?) fun appendFooter(to: StringBuilder) class object { @@ -11,9 +11,12 @@ public trait HtmlTemplateService { to.appendln("</BODY>") to.appendln("</HTML>") } - override fun appendHeader(to: StringBuilder) { + override fun appendHeader(to: StringBuilder, title: String?) { to.appendln("<HTML>") to.appendln("<HEAD>") + if (title != null) { + to.appendln("<title>$title</title>") + } if (css != null) { to.appendln("<link rel=\"stylesheet\" href=\"$css\">") } |