This repository has been archived on 2023-02-02. You can view files and clone it, but cannot push or open issues or pull requests.
mfgames-markdown-cil/src/MfGames.Markdown.Gemtext/Renderers/Gemtext/Blocks/ListRenderer.cs

36 lines
1.0 KiB
C#

using Markdig.Syntax;
namespace MfGames.Markdown.Gemtext.Renderers.Gemtext.Blocks
{
/// <summary>
/// A Gemtext renderer for a <see cref="ListBlock" />.
/// </summary>
/// <seealso cref="GemtextObjectRenderer{ListBlock}" />
public class ListRenderer : GemtextObjectRenderer<ListBlock>
{
protected override void Write(
GemtextRenderer renderer,
ListBlock listBlock)
{
// Lists need to be separated from the rest.
renderer.EnsureTwoLines();
// Go through each list item and write them out.
foreach (var item in listBlock)
{
// If the list only contains a link, then we just render the
// link instead.
var listItem = (ListItemBlock)item;
if (!listItem.OnlyHasSingleLink())
{
renderer.EnsureLine();
renderer.Write("* ");
}
renderer.WriteChildren(listItem);
}
}
}
}