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