Upstream xoofx/markdig state of the touched files before 0a17da190a
This commit is contained in:
1 parent
83afc8fa26
commit
b022656629
2 files changed
-91
No files matched your search
@@ -419,27 +419,6 @@ public class EmphasisInlineParser : InlineParser, IPostInlineProcessor
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// The closer could not be fully consumed and still holds leftover delimiter
|
||||
// characters that cannot match any opener. When the closer was embraced as the
|
||||
// closing side of an emphasis, the inlines that follow the closer belong after
|
||||
// that emphasis, not nested inside it. This is already handled when the opener is
|
||||
// fully consumed, but not when the opener also keeps leftover characters. Move the
|
||||
// trailing content out to the outermost enclosing emphasis so it keeps its original
|
||||
// position; otherwise it is rendered before the closing delimiters, which corrupts
|
||||
// round-tripped output when EnableTrackTrivia() is used (for example a grid table
|
||||
// separator, #743). The closer itself keeps its position, matching the behaviour
|
||||
// for a leftover closer that has no trailing content.
|
||||
if (closeDelimiter.DelimiterCount > 0 && closeDelimiter.Parent is EmphasisInline closerParentEmphasis)
|
||||
{
|
||||
var outermostEmphasis = closerParentEmphasis;
|
||||
while (outermostEmphasis.Parent is EmphasisInline ancestorEmphasis)
|
||||
{
|
||||
outermostEmphasis = ancestorEmphasis;
|
||||
}
|
||||
|
||||
closeDelimiter.MoveChildrenAfter(outermostEmphasis);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user