From 3677db515029c5be1a0953a2ace08336ad267789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Wed, 19 Jul 2023 22:31:02 +0200 Subject: [PATCH] Check if indented line is blank Definition list are composed by a term and a definition block. The term and the definition block may not be separated by a blank line. Lines with only whitespace are considered blank. --- lib/Parser/DocumentParser.php | 2 +- .../tests/render/definition-list/definition-list.html | 10 ++++++++++ .../tests/render/definition-list/definition-list.rst | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/Parser/DocumentParser.php b/lib/Parser/DocumentParser.php index 459df2e6..342c97c9 100644 --- a/lib/Parser/DocumentParser.php +++ b/lib/Parser/DocumentParser.php @@ -309,7 +309,7 @@ private function parseLine(string $line): bool return true; } - if ($this->lineChecker->isIndented($this->lines->getNextLine())) { + if (trim($this->lines->getNextLine()) !== '' && $this->lineChecker->isIndented($this->lines->getNextLine())) { $this->setState(State::DEFINITION_LIST); $this->buffer->push($line); diff --git a/tests/Functional/tests/render/definition-list/definition-list.html b/tests/Functional/tests/render/definition-list/definition-list.html index d88e1e30..25f21426 100644 --- a/tests/Functional/tests/render/definition-list/definition-list.html +++ b/tests/Functional/tests/render/definition-list/definition-list.html @@ -94,3 +94,13 @@

+
+

+ Not a definition list +

+

Single line followed by a blank line

+
+

This line is indented, but because of the blank line, it should +not be considered a term. It is a blockquote.

+
+
diff --git a/tests/Functional/tests/render/definition-list/definition-list.rst b/tests/Functional/tests/render/definition-list/definition-list.rst index 0635e7d1..95ae9e20 100644 --- a/tests/Functional/tests/render/definition-list/definition-list.rst +++ b/tests/Functional/tests/render/definition-list/definition-list.rst @@ -84,3 +84,11 @@ term 1 .. note:: directive in definition list + +Not a definition list +===================== + +Single line followed by a blank line + + This line is indented, but because of the blank line, it should + not be considered a term. It is a blockquote.