aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin')
-rw-r--r--core/src/main/kotlin/Formats/HtmlFormatService.kt8
-rw-r--r--core/src/main/kotlin/Kotlin/ContentBuilder.kt5
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 -> {