diff options
author | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2016-11-01 20:31:16 +0300 |
---|---|---|
committer | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2016-11-01 20:31:16 +0300 |
commit | 7922e2a940f91b587c70dfb3d41e0048bc93a19e (patch) | |
tree | 28055ed18f6eac89419e75f3e6fd18f05ba0bcf1 /core/src/main/kotlin | |
parent | ee824b90249fd1d6d868af998c6826df31ab557b (diff) | |
download | dokka-7922e2a940f91b587c70dfb3d41e0048bc93a19e.tar.gz dokka-7922e2a940f91b587c70dfb3d41e0048bc93a19e.tar.bz2 dokka-7922e2a940f91b587c70dfb3d41e0048bc93a19e.zip |
Fix for GH #97 : Preserve language name of fenced code block for highlight
Diffstat (limited to 'core/src/main/kotlin')
-rw-r--r-- | core/src/main/kotlin/Formats/HtmlFormatService.kt | 8 | ||||
-rw-r--r-- | core/src/main/kotlin/Kotlin/ContentBuilder.kt | 5 |
2 files changed, 11 insertions, 2 deletions
diff --git a/core/src/main/kotlin/Formats/HtmlFormatService.kt b/core/src/main/kotlin/Formats/HtmlFormatService.kt index de41d4c6..d73e4e62 100644 --- a/core/src/main/kotlin/Formats/HtmlFormatService.kt +++ b/core/src/main/kotlin/Formats/HtmlFormatService.kt @@ -31,7 +31,13 @@ open class HtmlOutputBuilder(to: StringBuilder, to.append("<span class=\"identifier\"$id>${text.htmlEscape()}</span>") } - override fun appendBlockCode(language: String, body: () -> Unit) = wrap("<pre><code>", "</code></pre>", body) + override fun appendBlockCode(language: String, body: () -> Unit) { + val openTags = if (language.isNotBlank()) + "<pre><code class=\"lang-$language\">" + else + "<pre><code>" + wrap(openTags, "</code></pre>", body) + } override fun appendHeader(level: Int, body: () -> Unit) = wrapInTag("h$level", body, newlineBeforeOpen = true, newlineAfterClose = true) diff --git a/core/src/main/kotlin/Kotlin/ContentBuilder.kt b/core/src/main/kotlin/Kotlin/ContentBuilder.kt index 61c67787..53afebaf 100644 --- a/core/src/main/kotlin/Kotlin/ContentBuilder.kt +++ b/core/src/main/kotlin/Kotlin/ContentBuilder.kt @@ -51,7 +51,10 @@ fun buildContentTo(tree: MarkdownNode, target: ContentBlock, linkResolver: (Stri } } MarkdownElementTypes.CODE_BLOCK, - MarkdownElementTypes.CODE_FENCE -> appendNodeWithChildren(ContentBlockCode()) + MarkdownElementTypes.CODE_FENCE -> { + val language = node.child(MarkdownTokenTypes.FENCE_LANG)?.text?.trim() ?: "" + appendNodeWithChildren(ContentBlockCode(language)) + } MarkdownElementTypes.PARAGRAPH -> appendNodeWithChildren(ContentParagraph()) MarkdownElementTypes.INLINE_LINK -> { |