From 3fb60bc74a4ed4e4c795f2f14fa112321a3c94cc Mon Sep 17 00:00:00 2001 From: Don Cross Date: Wed, 4 May 2022 12:33:21 -0400 Subject: Support code blocks and inline code for GFM format (#2485) Fixes #2477. Inline code, text that is nested within a pair of backquotes, is now converted into GitHub Flavored Markdown (gfm) without stripping out the backquotes. For example: The parameter `sum` must be a non-negative real number. Code blocks, which are any number of lines of literal text between triple-backquotes, and an optional programming language name, are now preserved. If absent, the programming language is assumed to be "kotlin". This follows the behavior of the html renderer. For example: Here is an example of calling the function: ```kotlin val sum = addThemUp(left, right) ``` --- .../test/kotlin/renderers/gfm/CodeWrappingTest.kt | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/gfm/src/test/kotlin/renderers/gfm/CodeWrappingTest.kt (limited to 'plugins/gfm/src/test') diff --git a/plugins/gfm/src/test/kotlin/renderers/gfm/CodeWrappingTest.kt b/plugins/gfm/src/test/kotlin/renderers/gfm/CodeWrappingTest.kt new file mode 100644 index 00000000..ce0c3d0c --- /dev/null +++ b/plugins/gfm/src/test/kotlin/renderers/gfm/CodeWrappingTest.kt @@ -0,0 +1,48 @@ +package renderers.gfm + +import org.jetbrains.dokka.gfm.renderer.CommonmarkRenderer +import org.jetbrains.dokka.pages.TextStyle +import org.junit.jupiter.api.Test +import kotlin.test.assertEquals +import renderers.* + +class CodeWrappingTest : GfmRenderingOnlyTestBase() { + @Test + fun wrappedCodeBlock() { + val page = testPage { + codeBlock { + text("fun myCode(): String") + } + } + val expect = """|//[testPage](test-page.md) + | + |```kotlin + |fun myCode(): String + |```""".trimMargin() + + CommonmarkRenderer(context).render(page) + assertEquals(expect, renderedContent) + } + + @Test + fun wrappedInlineCode() { + val page = testPage { + text("This function adds the values of ") + codeInline("") { + text("left") + } + text(" and ") + codeInline("") { + text("right") + } + text(".\nBoth numbers must be finite, or an exception occurs.\n") + } + val expect = """|//[testPage](test-page.md) + | + |This function adds the values of `left` and `right`. + |Both numbers must be finite, or an exception occurs.""".trimMargin() + + CommonmarkRenderer(context).render(page) + assertEquals(expect, renderedContent) + } +} -- cgit