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/Extensions/IncreaseHeaderDepthsAfterFi...

38 lines
1.1 KiB
C#

using Markdig;
using Markdig.Renderers;
using MfGames.Markdown.Gemtext.Renderers;
using MfGames.Markdown.Gemtext.Renderers.Gemtext.Blocks;
namespace MfGames.Markdown.Gemtext.Extensions
{
/// <summary>
/// Extension method to control the depth of the headers in a file so that
/// the first one (maybe a header) is H1 but the others are decreased to
/// H2 or lower depending on their initial level.
/// </summary>
/// <seealso cref="IMarkdownExtension" />
public class IncreaseHeaderDepthsAfterFirst : IMarkdownExtension
{
/// <inheritdoc />
public void Setup(MarkdownPipelineBuilder pipeline)
{
}
/// <inheritdoc />
public void Setup(MarkdownPipeline pipeline, IMarkdownRenderer renderer)
{
if (renderer is not GemtextRenderer gemtext)
{
return;
}
var heading = gemtext.ObjectRenderers.Find<HeadingRenderer>();
if (heading != null)
{
heading.IncreaseHeaderDepthAfterFirst = true;
}
}
}
}