public void Visit(MdListItem listItem) { foreach (var block in listItem) { block.Accept(this); } }
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(); } } }
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())); }
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); }
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")); }
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); }