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>
This commit is contained in:
Andrey Makarov
2020-12-29 05:32:11 +03:00
committed by GitHub
parent 6d442a40a6
commit e70ac0f34c
2 changed files with 13 additions and 1 deletions

View File

@@ -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

View File

@@ -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 """