44 lines
932 B
JavaScript
44 lines
932 B
JavaScript
'use strict'
|
|
|
|
module.exports = orderedItems
|
|
|
|
var lineFeed = '\n'
|
|
var dot = '.'
|
|
|
|
var blank = lineFeed + lineFeed
|
|
|
|
// Visit ordered list items.
|
|
//
|
|
// Starts the list with
|
|
// `node.start` and increments each following list item
|
|
// bullet by one:
|
|
//
|
|
// 2. foo
|
|
// 3. bar
|
|
//
|
|
// In `incrementListMarker: false` mode, does not increment
|
|
// each marker and stays on `node.start`:
|
|
//
|
|
// 1. foo
|
|
// 1. bar
|
|
function orderedItems(node) {
|
|
var self = this
|
|
var fn = self.visitors.listItem
|
|
var increment = self.options.incrementListMarker
|
|
var values = []
|
|
var start = node.start
|
|
var children = node.children
|
|
var length = children.length
|
|
var index = -1
|
|
var bullet
|
|
|
|
start = start == null ? 1 : start
|
|
|
|
while (++index < length) {
|
|
bullet = (increment ? start + index : start) + dot
|
|
values[index] = fn.call(self, children[index], node, index, bullet)
|
|
}
|
|
|
|
return values.join(node.spread ? blank : lineFeed)
|
|
}
|