aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitry Jemerov <yole@jetbrains.com>2015-01-16 13:04:09 +0100
committerDmitry Jemerov <yole@jetbrains.com>2015-01-16 13:04:09 +0100
commit4b75751845b6d63a642cac1017ada30f2549bf14 (patch)
treee593a81f00eda469eb5b0dfa05af60455bc467ea /src
parentd75cc63e9b1edc229fad225956ba44fa433e2d0e (diff)
downloaddokka-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.kt19
-rw-r--r--src/Formats/HtmlTemplateService.kt7
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\">")
}