in Sources/Markdown/Walker/Walkers/MarkupFormatter.swift [402:448]
func linePrefix(for element: Markup) -> String {
var prefix = formattingOptions.customLinePrefix
var unorderedListCount = 0
var orderedListCount = 0
for element in element.parentalChain {
if element is BlockQuote {
prefix += "> "
} else if element is UnorderedList {
if unorderedListCount > 0 {
prefix += " "
}
unorderedListCount += 1
} else if element is OrderedList {
if orderedListCount > 0 {
prefix += " "
}
orderedListCount += 1
} else if !(element is ListItem),
let parentListItem = element.parent as? ListItem {
/*
Align contents with list item markers.
Example, unordered lists:
- First line
Second line, aligned.
Example, ordered lists:
1. First line
Second line, aligned.
1000. First line
Second line, aligned.
*/
if parentListItem.parent is UnorderedList {
// Unordered list markers are of fixed length.
prefix += " "
} else if let numeralPrefix = numeralPrefix(for: parentListItem) {
prefix += String(repeating: " ", count: numeralPrefix.count)
}
} else if element is BlockDirective {
prefix += " "
}
}
return prefix
}