Esempio n. 1
0
 public void Visit(MdListItem listItem)
 {
     foreach (var block in listItem)
     {
         block.Accept(this);
     }
 }
Esempio n. 2
0
        public void Visit(ListElement listElement)
        {
            // end the current paragraph
            EndParagraph();

            if (listElement.Type == ListType.Table)
            {
                MdTableRow CreateRow(ListItemElement?itemElement)
                {
                    if (itemElement == null)
                    {
                        return(new MdTableRow("", ""));
                    }

                    var term = itemElement.Term.IsEmpty
                        ? MdEmptySpan.Instance
                        : TextBlockToMarkdownConverter.ConvertToSpan(itemElement.Term, m_SpanFactory);

                    var description = itemElement.Description.IsEmpty
                        ? MdEmptySpan.Instance
                        : TextBlockToMarkdownConverter.ConvertToSpan(itemElement.Description, m_SpanFactory);

                    return(new MdTableRow(term, description));
                }

                var table = new MdTable(
                    CreateRow(listElement.ListHeader),
                    listElement.Items.Select(CreateRow)
                    );

                CurrentBlock.Add(table);
            }
            else
            {
                var list = listElement.Type == ListType.Number ? new MdOrderedList() : (MdList) new MdBulletList();

                // add list to current block
                CurrentBlock.Add(list);

                foreach (var listItemElement in listElement.Items)
                {
                    // create a new list item and add it to the list
                    var listItem = new MdListItem();
                    list.Add(listItem);

                    // make the list item the new current block
                    m_Blocks.Push(listItem);

                    // visit list item
                    listItemElement.Accept(this);

                    // end the current paragraph and restore previous current block
                    EndParagraph();
                    m_Blocks.Pop();
                }
            }
        }
Esempio n. 3
0
        public void DeepEquals_returns_expected_value()
        {
            var instance1 = new MdListItem(new MdParagraph());
            var instance2 = new MdListItem(new MdParagraph());
            var instance3 = new MdListItem(new MdParagraph(new MdTextSpan("Text")));

            Assert.True(instance1.DeepEquals(instance1));
            Assert.True(instance1.DeepEquals(instance2));

            Assert.False(instance1.DeepEquals(null));
            Assert.False(instance1.DeepEquals(instance3));
            Assert.False(instance1.DeepEquals(new MdParagraph()));
        }
Esempio n. 4
0
        public void MdListItem_can_be_initialized_with_string_content_01()
        {
            var listItem = new MdListItem("Content");

            Assert.Single(listItem.Blocks);
            Assert.IsType <MdParagraph>(listItem.Blocks.Single());

            var paragraph = (MdParagraph)listItem.Blocks.Single();

            Assert.IsType <MdTextSpan>(paragraph.Text);

            var textSpan = (MdTextSpan)paragraph.Text;

            Assert.Equal("Content", textSpan.Text);
        }
Esempio n. 5
0
        public void Initialization_of_MdListItem_using_constructor()
        {
            _ = new MdListItem();

            _ = new MdListItem(new MdContainerBlock());
            _ = new MdListItem(new MdContainerBlock(), new MdContainerBlock());

            _ = new MdListItem(new MdListItem());
            _ = new MdListItem(new MdListItem(), new MdListItem());

            _ = new MdListItem(new MdBlockQuote());
            _ = new MdListItem(new MdBlockQuote(), new MdBlockQuote());

            _ = new MdListItem(new MdBulletList());
            _ = new MdListItem(new MdOrderedList());

            _ = new MdListItem(new MdAdmonition("note"));
        }
Esempio n. 6
0
        public void MdListItem_can_be_initialized_with_string_content_02()
        {
            var listItem = new MdListItem("Content1", "Content2");

            Assert.Single(listItem.Blocks);
            Assert.IsType <MdParagraph>(listItem.Blocks.Single());

            var paragraph = (MdParagraph)listItem.Blocks.Single();

            Assert.IsType <MdCompositeSpan>(paragraph.Text);

            var compositeSpan = (MdCompositeSpan)paragraph.Text;

            Assert.Equal(2, compositeSpan.Spans.Count);
            var textSpan1 = Assert.IsType <MdTextSpan>(compositeSpan.Spans[0]);
            var textSpan2 = Assert.IsType <MdTextSpan>(compositeSpan.Spans[1]);

            Assert.Equal("Content1", textSpan1.Text);
            Assert.Equal("Content2", textSpan2.Text);
        }