Class
Sealed
public sealed class AdmonitionRenderer : HtmlObjectRenderer<Moka.Docs.Parsing.Markdown.AdmonitionBlock>
Namespace: Moka.Docs.Parsing.Markdown
Renders admonition blocks as styled HTML.
Inheritance
Inherits from: HtmlObjectRenderer<Moka.Docs.Parsing.Markdown.AdmonitionBlock>
Methods
| Name | Description |
|---|---|
Write(HtmlRenderer renderer, AdmonitionBlock block) override |
Type Relationships
classDiagram
style AdmonitionRenderer fill:#f9f,stroke:#333,stroke-width:2px
AdmonitionRenderer --|> AdmonitionBlock~ : inherits
View Source
/// <summary>
/// Renders admonition blocks as styled HTML.
/// </summary>
public sealed class AdmonitionRenderer : HtmlObjectRenderer<AdmonitionBlock>
{
private static readonly Dictionary<string, string> _icons = new(StringComparer.OrdinalIgnoreCase)
{
["note"] = "📝",
["tip"] = "💡",
["warning"] = "⚠️",
["danger"] = "🚨",
["info"] = "ℹ️",
["caution"] = "⚠️",
["important"] = "❗"
};
/// <inheritdoc/>
protected override void Write(HtmlRenderer renderer, AdmonitionBlock block)
{
string type = block.AdmonitionType;
string title = block.Title ?? char.ToUpper(type[0]) + type[1..];
string icon = _icons.GetValueOrDefault(type, "📝");
renderer.EnsureLine();
renderer.Write($"<div class=\"admonition admonition-{type}\">");
renderer.WriteLine();
renderer.Write($"<div class=\"admonition-title\"><span class=\"admonition-icon\">{icon}</span>{title}</div>");
renderer.WriteLine();
renderer.Write("<div class=\"admonition-content\">");
renderer.WriteLine();
renderer.WriteChildren(block);
renderer.Write("</div>");
renderer.WriteLine();
renderer.Write("</div>");
renderer.WriteLine();
}
}