Open Tooa opened 2 years ago
Thanks for reporting this! This one in particular is a known issue, and has the same root cause as your other issue: when parsing a list continuation, we should first check to see if the line can start a new block, and if so, allow that to interrupt the list (provided that the indentation is not sufficient to contain the block in the list).
Worth noting that we can't support all of CommonMark's precedence rules (particularly for inlines) with Parsedown's parsing technique, and that Parsedown's parsing method is going to need to be special cased a little to deal with this. I think that on balance it is probably worth doing for resolving this ambiguity in block precedence, and so I'll aim to fix this in the v2 branch.
See #707 for the more general issue. I'd originally closed this as a won't fix, but I have reconsidered and think that this can be implemented without introducing an unreasonable amount of complexity.
Description
Parsedown splits a code block in multiple parts when having a markdown file like the following:
Actual Behavior
Steps to reproduce
Reproduce with Parsedown 1.7.4
Reproduce with Parsedown 2.0.0 Beta 1
Setup
demo.php
EOD;
$state = new State([ new Breaks(true), new SafeMode(true), new StrictMode(false) ]);
$Parsedown = new Parsedown($state); echo $Parsedown->toHtml($markdown); ?>