Exemple #1
0
        public ConvertToBlockVisitor(IMdSpanFactory spanFactory)
        {
            m_SpanFactory = spanFactory ?? throw new ArgumentNullException(nameof(spanFactory));

            Result = new MdContainerBlock();

            m_Blocks = new Stack <MdContainerBlockBase>();
            m_Blocks.Push(Result);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public ConvertToSpanVisitor(IMdSpanFactory spanFactory)
 {
     m_SpanFactory = spanFactory ?? throw new ArgumentNullException(nameof(spanFactory));
 }