public ConvertToBlockVisitor(IMdSpanFactory spanFactory) { m_SpanFactory = spanFactory ?? throw new ArgumentNullException(nameof(spanFactory)); Result = new MdContainerBlock(); m_Blocks = new Stack <MdContainerBlockBase>(); m_Blocks.Push(Result); }
public static MdBlock ConvertToBlock(TextBlock text, IMdSpanFactory spanFactory) { if (text.IsEmpty) { return(MdEmptyBlock.Instance); } var visitor = new ConvertToBlockVisitor(spanFactory); text.Accept(visitor); return(visitor.Result); }
public static MdSpan ConvertToSpan(TextBlock text, IMdSpanFactory spanFactory) { if (text.IsEmpty) { return(MdEmptySpan.Instance); } var visitor = new ConvertToSpanVisitor(spanFactory); text.Accept(visitor); // flatten composite span if there is only a single item in it if (visitor.Result.Spans.Count == 1) { return(visitor.Result.Spans[0]); } return(visitor.Result); }
public ConvertToSpanVisitor(IMdSpanFactory spanFactory) { m_SpanFactory = spanFactory ?? throw new ArgumentNullException(nameof(spanFactory)); }