Merge pull request #879 from stylefish/issue878

Fixes #878: RoundtripRenderer: render indent and 0 blocks for ordered lists
This commit is contained in:
Alexandre Mutel
2025-06-19 08:41:10 +02:00
committed by GitHub
2 changed files with 11 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ public class TestUnorderedList
[TestCase("-\ti1")]
[TestCase("-\ti1\n-\ti2")]
[TestCase("-\ti1\n- i2\n-\ti3")]
[TestCase("- 1.\n- 2.")]
public void Test(string value)
{
RoundTrip(value);

View File

@@ -1,5 +1,5 @@
// Copyright (c) Alexandre Mutel. All rights reserved.
// This file is licensed under the BSD-Clause 2 license.
// This file is licensed under the BSD-Clause 2 license.
// See the license.txt file in the project root for more information.
using Markdig.Helpers;
@@ -28,7 +28,15 @@ public class ListRenderer : RoundtripObjectRenderer<ListBlock>
var bullet = listItem.SourceBullet.ToString();
var delimiter = listBlock.OrderedDelimiter;
renderer.PushIndent(new string[] { $"{bws}{bullet}{delimiter}" });
renderer.WriteChildren(listItem);
if (listItem.Count == 0)
{
renderer.Write(""); // trigger writing of indent
}
else
{
renderer.WriteChildren(listItem);
}
renderer.PopIndent();
renderer.RenderLinesAfter(listItem);
}
}