Dependencies/Pixie/Pixie.Terminal/Render/ParagraphRenderer.cs
using WasmBox.Pixie.Markup;
using WasmBox.Pixie.Terminal.Devices;
namespace WasmBox.Pixie.Terminal.Render {
/// <summary>
/// A renderer for paragraph nodes.
/// </summary>
public sealed class ParagraphRenderer : NodeRenderer {
private ParagraphRenderer() { }
/// <summary>
/// An instance of a paragraph node renderer.
/// </summary>
public static readonly ParagraphRenderer Instance = new ParagraphRenderer();
/// <inheritdoc/>
public override bool CanRender(MarkupNode node) {
return node is Paragraph;
}
/// <inheritdoc/>
public override void Render(MarkupNode node, RenderState state) {
var para = (Paragraph)node;
state.Terminal.WriteSeparator(2);
state.Render(para.Contents);
state.Terminal.WriteSeparator(2);
}
}
/// <summary>
/// A renderer for box nodes.
/// </summary>
public sealed class BoxRenderer : NodeRenderer {
private BoxRenderer() { }
/// <summary>
/// An instance of a box node renderer.
/// </summary>
public static readonly BoxRenderer Instance = new BoxRenderer();
/// <inheritdoc/>
public override bool CanRender(MarkupNode node) {
return node is Box;
}
/// <inheritdoc/>
public override void Render(MarkupNode node, RenderState state) {
var para = (Box)node;
state.Terminal.WriteSeparator(1);
state.Render(para.Contents);
state.Terminal.WriteSeparator(1);
}
}
}