diff options
author | Andrey Makarov <ph.makarov@gmail.com> | 2020-12-29 05:32:11 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-29 03:32:11 +0100 |
commit | e70ac0f34c9f195f6e423b3ac7e54b912e62c71d (patch) | |
tree | 52db4b97a36fdebcebf17f47e9820a5d7c996bcc | |
parent | 6d442a40a6f89572052d61aeb73ec26d1f3451ce (diff) | |
download | Nim-e70ac0f34c9f195f6e423b3ac7e54b912e62c71d.tar.gz |
RST: fix directive with fields (#16490) (#16493)
* RST: fix directive with fields (#16490) * Update tests/stdlib/trstgen.nim Co-authored-by: Clyybber <darkmine956@gmail.com>
-rw-r--r-- | lib/packages/docutils/rst.nim | 3 | ||||
-rw-r--r-- | tests/stdlib/trstgen.nim | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/packages/docutils/rst.nim b/lib/packages/docutils/rst.nim index 7dbcaf482..698d76da1 100644 --- a/lib/packages/docutils/rst.nim +++ b/lib/packages/docutils/rst.nim @@ -1737,7 +1737,8 @@ proc parseDirective(p: var RstParser, flags: DirFlags, ## ## .. warning:: Any of the 3 children may be nil. result = parseDirective(p, flags) - if not isNil(contentParser): + if not isNil(contentParser) and + (currentTok(p).kind != tkIndent or indFollows(p)): var nextIndent = p.tok[tokenAfterNewline(p)-1].ival if nextIndent <= currInd(p): # parse only this line nextIndent = currentTok(p).col diff --git a/tests/stdlib/trstgen.nim b/tests/stdlib/trstgen.nim index c3388ab7d..54a3db202 100644 --- a/tests/stdlib/trstgen.nim +++ b/tests/stdlib/trstgen.nim @@ -535,6 +535,17 @@ Test1 doAssert count(output1, "<ul ") == 1 doAssert count(output1, "</ul>") == 1 + test "Nim (RST extension) code-block": + # check that presence of fields doesn't consume the following text as + # its code (which is a literal block) + let input0 = dedent """ + .. code-block:: nim + :number-lines: 0 + + Paragraph1""" + let output0 = rstToHtml(input0, {roSupportMarkdown}, defaultConfig()) + doAssert "<p>Paragraph1</p>" in output0 + test "RST admonitions": # check that all admonitions are implemented let input0 = dedent """ |