From 62cb509a1a5adf0e5f9ba8d8e7545a93eb8516b2 Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Tue, 15 Jul 2014 15:54:05 +0400 Subject: Refactor formatting service to detach grouping logic from markup --- src/Formats/HtmlFormatService.kt | 94 +++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 54 deletions(-) (limited to 'src/Formats/HtmlFormatService.kt') diff --git a/src/Formats/HtmlFormatService.kt b/src/Formats/HtmlFormatService.kt index f3d71215..6c004509 100644 --- a/src/Formats/HtmlFormatService.kt +++ b/src/Formats/HtmlFormatService.kt @@ -1,64 +1,50 @@ package org.jetbrains.dokka -public class HtmlFormatService(val locationService: LocationService, - val signatureGenerator: SignatureGenerator) : FormatService { +public open class HtmlFormatService(locationService: LocationService, signatureGenerator: SignatureGenerator) +: StructuredFormatService(locationService, signatureGenerator) { override val extension: String = "html" - override fun format(nodes: Iterable, to: StringBuilder) { - for (node in nodes) { - with (to) { - appendln("

") - appendln("Summary for ${node.name}") - appendln("

") - appendln("") - appendln(signatureGenerator.render(node)) - appendln("") - appendln() - appendln("

") - appendln(node.doc.summary) - appendln("

") - appendln("
") - for (section in node.doc.sections) { - appendln("

") - appendln(section.label) - appendln("

") - appendln("

") - appendln(section.text) - appendln("

") - } + override fun appendBlockCode(to: StringBuilder, line: String) { + to.appendln("") + to.appendln(line) + to.appendln("") + } + + override fun appendBlockCode(to: StringBuilder, lines: Iterable) { + to.appendln("") + to.appendln(lines.join("\n")) + to.appendln("") + } + + override fun appendHeader(to: StringBuilder, text: String, level: Int) { + to.appendln("$text") + } + + override fun appendText(to: StringBuilder, text: String) { + to.appendln("

$text

") + } - appendln("

") - appendln("Members") - appendln("

") - appendln("") + override fun appendLine(to: StringBuilder, text: String) { + to.appendln("$text
") + } + + override fun appendLine(to: StringBuilder) { + to.appendln("
") + } - appendln("") - appendln("") - appendln("") - appendln("") - appendln("") - appendln("") - appendln("") + override fun formatLink(link: FormatLink): String { + return "${link.text}" + } - appendln("") - for (member in node.members.sortBy { it.name }) { - val relativePath = locationService.relativeLocation(node, member, extension) - appendln("") - appendln("") - appendln("") - appendln("") - appendln("") - } - appendln("") - appendln("
MemberSignatureSummary
") - append("${member.name}") - appendln("") - append("${signatureGenerator.render(member)}") - appendln("") - append("${member.doc.summary}") - appendln("
") + override fun formatBold(text: String): String { + return "$text" + } + + override fun formatCode(code: String): String { + return "$code" + } - } - } + override fun formatBreadcrumbs(items: Iterable): String { + return items.map { formatLink(it) }.joinToString(" / ") } } \ No newline at end of file -- cgit