Skip to main content

Lists

Generates a list of inputs.

Accepted types of list are:

  • Ordered (1., 2., 3.)
  • Unordered (bullet points)
  • Todo (checkboxes/tickboxes)

The list must have at least one input, it can't be an empty list.

Ordered List​

While each list item starts with "1.", this is valid markdown and the rendering engine manages the correct numbering

var list = 
new MdList(MdListType.Ordered)
.AddItem(new MdPlainText("First Item")
.AddItem(new MdPlainText("Second Item"));

// Output:
// 1. First Item
// 1. Second Item

Unordered List​

var list = 
new MdList(MdListType.Unordered)
.AddItem(new MdPlainText("First Item")
.AddItem(new MdPlainText("Second Item"));

// Output:
// - First Item
// - Second Item

Todo's​

var list = 
new MdList(MdListType.Todo)
.AddItem(new MdPlainText("First Item")
.AddItem(new MdPlainText("Second Item"));

// Output:
// - [ ] First Item
// - [ ] Second Item

Hierarchical Lists​

Hierarchical lists of supported. There is no enforced number of child levels supported.

var list = 
new MdList(MdListType.Ordered)
.AddItem("Item 1")
.AddItem("Item 2")
.AddChildList(
new MdList(MdListType.Ordered)
.AddItem("Sub-Item 1")
.AddItem("Sub-Item 2"))
.AddItem("Item 3");

// Output:
// 1. Item 1
// 1. Item 2
// 1. Sub-Item 1
// 1. Sub-Item 2
// 1. Item 3

Different list types can be used at different levels

var list = 
new MdList(MdListType.Ordered)
.AddItem("Item 1")
.AddItem("Item 2")
.AddChildList(
new MdList(MdListType.Unordered)
.AddItem("Child 1, Item 1")
.AddItem("Child 1, Item 2"))
.AddItem("Item 3")
.AddChildList(
new MdList(MdListType.Unordered)
.AddItem("Child 2, Item 1")
.AddChildList(
new MdList(MdListType.Ordered)
.AddItem("Grandchild 1, Item 1")
.AddItem("Grandchild 1, Item 2")
)
.AddItem("Child 2, Item 2")
.AddChildList(
new MdList(MdListType.Todo)
.AddItem("Grandchild 2, Item 1")
.AddItem("Grandchild 2, Item 2")
)
)
.AddItem("Item 4");

// Output:
// 1. Item 1
// 1. Item 2
// - Child 1, Item 1
// - Child 1, Item 2
// 1. Item 3
// - Child 2, Item 1
// 1. Grandchild 1, Item 1
// 1. Grandchild 1, Item 2
// - Child 2, Item 2
// - [ ] Grandchild 2, Item 1
// - [ ] Grandchild 2, Item 2
// 1. Item 4

Convert List<string> to MdList​

There is also an extension method to convert a List<string> to MdList markdown.

var unorderedList = 
new List<string> {"one", "two", "three"}
.ToMdList(MdListType.Unordered);

// Output:
// - one
// - two
// - three

var orderedList =
new List<string> {"one", "two", "three"}
.ToMdList(MdListType.Ordered);

// Output:
// 1. one
// 1. two
// 1. three