aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/Formats
diff options
context:
space:
mode:
authorSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2016-11-08 20:21:15 +0300
committerSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2016-11-14 14:06:29 +0300
commitaf81d5a311125fc30dcf9c14fc9bd9c8680e532b (patch)
treec4e299cddad96b00880a9f31f2969f4f7ed2a964 /core/src/main/kotlin/Formats
parentd8be364a89ab7d9f38196ef17d0d4eb1d9659b48 (diff)
downloaddokka-af81d5a311125fc30dcf9c14fc9bd9c8680e532b.tar.gz
dokka-af81d5a311125fc30dcf9c14fc9bd9c8680e532b.tar.bz2
dokka-af81d5a311125fc30dcf9c14fc9bd9c8680e532b.zip
Now all sample blocks in kotlin-website wrapped in <div class="sample" markdown="1">...</div>
And small refactoring
Diffstat (limited to 'core/src/main/kotlin/Formats')
-rw-r--r--core/src/main/kotlin/Formats/KotlinWebsiteFormatService.kt26
-rw-r--r--core/src/main/kotlin/Formats/StructuredFormatService.kt20
2 files changed, 32 insertions, 14 deletions
diff --git a/core/src/main/kotlin/Formats/KotlinWebsiteFormatService.kt b/core/src/main/kotlin/Formats/KotlinWebsiteFormatService.kt
index bc9358ac..edae9976 100644
--- a/core/src/main/kotlin/Formats/KotlinWebsiteFormatService.kt
+++ b/core/src/main/kotlin/Formats/KotlinWebsiteFormatService.kt
@@ -30,11 +30,13 @@ class KotlinWebsiteOutputBuilder(to: StringBuilder,
override fun appendStrikethrough(body: () -> Unit) = wrapInTag("s", body)
- private fun div(to: StringBuilder, cssClass: String, block: () -> Unit) {
- to.append("<div class=\"$cssClass\">")
- insideDiv++
+ private fun div(to: StringBuilder, cssClass: String, markdown: Boolean = false, block: () -> Unit) {
+ to.append("<div class=\"$cssClass\"")
+ if (markdown) to.append(" markdown=\"1\"")
+ to.append(">")
+ if (!markdown) insideDiv++
block()
- insideDiv--
+ if (!markdown) insideDiv--
to.append("</div>\n")
}
@@ -51,12 +53,18 @@ class KotlinWebsiteOutputBuilder(to: StringBuilder,
}
}
+ override fun appendSampleBlockCode(language: String, body: () -> Unit) {
+ div(to, "sample", true) {
+ appendBlockCode(language, body)
+ }
+ }
+
override fun appendAsOverloadGroup(to: StringBuilder, block: () -> Unit) {
- to.append("<div class=\"overload-group\" markdown=\"1\">")
- ensureParagraph()
- block()
- ensureParagraph()
- to.append("</div>")
+ div(to, "overload-group", true) {
+ ensureParagraph()
+ block()
+ ensureParagraph()
+ }
}
override fun appendLink(href: String, body: () -> Unit) = wrap("<a href=\"$href\">", "</a>", body)
diff --git a/core/src/main/kotlin/Formats/StructuredFormatService.kt b/core/src/main/kotlin/Formats/StructuredFormatService.kt
index f24c9c2d..3bd06130 100644
--- a/core/src/main/kotlin/Formats/StructuredFormatService.kt
+++ b/core/src/main/kotlin/Formats/StructuredFormatService.kt
@@ -47,6 +47,7 @@ abstract class StructuredOutputBuilder(val to: StringBuilder,
protected abstract fun ensureParagraph()
+ open fun appendSampleBlockCode(language: String, body: () -> Unit) = appendBlockCode(language, body)
abstract fun appendBlockCode(language: String, body: () -> Unit)
abstract fun appendHeader(level: Int = 1, body: () -> Unit)
abstract fun appendParagraph(body: () -> Unit)
@@ -143,13 +144,22 @@ abstract class StructuredOutputBuilder(val to: StringBuilder,
}
}
- is ContentBlockCode -> appendBlockCode(content.language) {
- for ((index, contentNode) in content.children.withIndex()) {
- appendContent(contentNode)
- if (index < content.children.size - 1) {
- to.append("\n")
+ is ContentBlockSampleCode, is ContentBlockCode -> {
+ content as ContentBlockCode
+ fun appendBlockCodeContent() {
+ for ((index, contentNode) in content.children.withIndex()) {
+ appendContent(contentNode)
+ if (index < content.children.size - 1) {
+ to.append("\n")
+ }
}
}
+ when (content) {
+ is ContentBlockSampleCode ->
+ appendSampleBlockCode(content.language, ::appendBlockCodeContent)
+ is ContentBlockCode ->
+ appendBlockCode(content.language, ::appendBlockCodeContent)
+ }
}
is ContentHeading -> appendHeader(content.level) { appendContent(content.children) }
is ContentBlock -> appendContent(content.children)