diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2024-08-17 20:02:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-17 20:02:36 +0800 |
commit | 253fafb30500fb871404767c436fd4c081ffc854 (patch) | |
tree | 421232cf14fb67ed82bae1f246d766e5b2d08bbc | |
parent | e96fad1eed5c87a5a0b13bb39d1e5da176e488e1 (diff) | |
download | Nim-253fafb30500fb871404767c436fd4c081ffc854.tar.gz |
fixes docgen regression: don't add newLine for code if it's the first line (#23154)
Before (devel) ![image](https://github.com/nim-lang/Nim/assets/43030857/cde37109-027a-46c1-a37e-1d6062e6c609) After (this PR and stable) ![image](https://github.com/nim-lang/Nim/assets/43030857/3366877c-7223-4749-a584-fe93f731281f) It now keeps the same behavior as before
-rw-r--r-- | lib/packages/docutils/rst.nim | 5 | ||||
-rw-r--r-- | nimdoc/test_doctype/expected/test_doctype.html | 3 | ||||
-rw-r--r-- | tests/stdlib/trst.nim | 15 | ||||
-rw-r--r-- | tests/stdlib/trstgen.nim | 2 |
4 files changed, 11 insertions, 14 deletions
diff --git a/lib/packages/docutils/rst.nim b/lib/packages/docutils/rst.nim index 9af163e15..a51ee49a6 100644 --- a/lib/packages/docutils/rst.nim +++ b/lib/packages/docutils/rst.nim @@ -1603,6 +1603,7 @@ proc parseMarkdownCodeblock(p: var RstParser): PRstNode = else: args = nil var n = newLeaf("") + var isFirstLine = true while true: if currentTok(p).kind == tkEof: rstMessage(p, meMissingClosing, @@ -1614,7 +1615,8 @@ proc parseMarkdownCodeblock(p: var RstParser): PRstNode = inc p.idx, 2 break elif currentTok(p).kind == tkIndent: - n.text.add "\n" + if not isFirstLine: + n.text.add "\n" if currentTok(p).ival > baseCol: n.text.add " ".repeat(currentTok(p).ival - baseCol) elif currentTok(p).ival < baseCol: @@ -1624,6 +1626,7 @@ proc parseMarkdownCodeblock(p: var RstParser): PRstNode = else: n.text.add(currentTok(p).symbol) inc p.idx + isFirstLine = false result.sons[0] = args if result.sons[2] == nil: var lb = newRstNode(rnLiteralBlock) diff --git a/nimdoc/test_doctype/expected/test_doctype.html b/nimdoc/test_doctype/expected/test_doctype.html index 659aec5e3..2cbf6ec0f 100644 --- a/nimdoc/test_doctype/expected/test_doctype.html +++ b/nimdoc/test_doctype/expected/test_doctype.html @@ -62,8 +62,7 @@ <div id="tocRoot"></div> <p class="module-desc"><p>Check</p> -<p><pre class="listing"> -<span class="Identifier">text</span></pre></p> +<p><pre class="listing"><span class="Identifier">text</span></pre></p> <h1><a class="toc-backref" id="check" href="#check">Check</a></h1> <h1><a class="toc-backref" id="text" href="#text">text</a></h1></p> diff --git a/tests/stdlib/trst.nim b/tests/stdlib/trst.nim index e39eae9c1..2a7f0d3a4 100644 --- a/tests/stdlib/trst.nim +++ b/tests/stdlib/trst.nim @@ -526,8 +526,7 @@ suite "RST parsing": rnFieldBody rnLeaf 'Nim' rnLiteralBlock - rnLeaf ' - let a = 1 + rnLeaf 'let a = 1 ```' """ @@ -637,8 +636,7 @@ suite "RST parsing": rnLeaf 'test' rnFieldBody rnLiteralBlock - rnLeaf ' - let a = 1' + rnLeaf 'let a = 1' """) check(dedent""" @@ -661,8 +659,7 @@ suite "RST parsing": rnFieldBody rnLeaf '1' rnLiteralBlock - rnLeaf ' - let a = 1' + rnLeaf 'let a = 1' """) test "additional indentation < 4 spaces is handled fine": @@ -682,8 +679,7 @@ suite "RST parsing": rnLeaf 'nim' [nil] rnLiteralBlock - rnLeaf ' - let a = 1' + rnLeaf ' let a = 1' """) # | | # | \ indentation of exactly two spaces before 'let a = 1' @@ -717,8 +713,7 @@ suite "RST parsing": rnFieldBody rnLeaf 'Nim' rnLiteralBlock - rnLeaf ' - CodeBlock()' + rnLeaf 'CodeBlock()' rnLeaf ' ' rnLeaf 'Other' rnLeaf ' ' diff --git a/tests/stdlib/trstgen.nim b/tests/stdlib/trstgen.nim index 934403665..6253e7146 100644 --- a/tests/stdlib/trstgen.nim +++ b/tests/stdlib/trstgen.nim @@ -1246,7 +1246,7 @@ Test1 "input(8, 4) Warning: language 'anotherLang' not supported" ]) check(output == "<pre class = \"listing\">anything</pre>" & - "<p><pre class = \"listing\">\nsomeCode</pre> </p>") + "<p><pre class = \"listing\">someCode</pre> </p>") test "RST admonitions": # check that all admonitions are implemented |