Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/fourtyone11/origin-hugo-theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/node_modules/remark-parse/lib/tokenize/list.js')
-rw-r--r--assets/node_modules/remark-parse/lib/tokenize/list.js452
1 files changed, 0 insertions, 452 deletions
diff --git a/assets/node_modules/remark-parse/lib/tokenize/list.js b/assets/node_modules/remark-parse/lib/tokenize/list.js
deleted file mode 100644
index 8cdefdc..0000000
--- a/assets/node_modules/remark-parse/lib/tokenize/list.js
+++ /dev/null
@@ -1,452 +0,0 @@
-'use strict'
-
-/* eslint-disable max-params */
-
-var trim = require('trim')
-var repeat = require('repeat-string')
-var decimal = require('is-decimal')
-var getIndent = require('../util/get-indentation')
-var removeIndent = require('../util/remove-indentation')
-var interrupt = require('../util/interrupt')
-
-module.exports = list
-
-var asterisk = '*'
-var underscore = '_'
-var plusSign = '+'
-var dash = '-'
-var dot = '.'
-var space = ' '
-var lineFeed = '\n'
-var tab = '\t'
-var rightParenthesis = ')'
-var lowercaseX = 'x'
-
-var tabSize = 4
-var looseListItemExpression = /\n\n(?!\s*$)/
-var taskItemExpression = /^\[([ \t]|x|X)][ \t]/
-var bulletExpression = /^([ \t]*)([*+-]|\d+[.)])( {1,4}(?! )| |\t|$|(?=\n))([^\n]*)/
-var pedanticBulletExpression = /^([ \t]*)([*+-]|\d+[.)])([ \t]+)/
-var initialIndentExpression = /^( {1,4}|\t)?/gm
-
-function list(eat, value, silent) {
- var self = this
- var commonmark = self.options.commonmark
- var pedantic = self.options.pedantic
- var tokenizers = self.blockTokenizers
- var interuptors = self.interruptList
- var index = 0
- var length = value.length
- var start = null
- var size = 0
- var queue
- var ordered
- var character
- var marker
- var nextIndex
- var startIndex
- var prefixed
- var currentMarker
- var content
- var line
- var prevEmpty
- var empty
- var items
- var allLines
- var emptyLines
- var item
- var enterTop
- var exitBlockquote
- var spread = false
- var node
- var now
- var end
- var indented
-
- while (index < length) {
- character = value.charAt(index)
-
- if (character === tab) {
- size += tabSize - (size % tabSize)
- } else if (character === space) {
- size++
- } else {
- break
- }
-
- index++
- }
-
- if (size >= tabSize) {
- return
- }
-
- character = value.charAt(index)
-
- if (character === asterisk || character === plusSign || character === dash) {
- marker = character
- ordered = false
- } else {
- ordered = true
- queue = ''
-
- while (index < length) {
- character = value.charAt(index)
-
- if (!decimal(character)) {
- break
- }
-
- queue += character
- index++
- }
-
- character = value.charAt(index)
-
- if (
- !queue ||
- !(character === dot || (commonmark && character === rightParenthesis))
- ) {
- return
- }
-
- start = parseInt(queue, 10)
- marker = character
- }
-
- character = value.charAt(++index)
-
- if (
- character !== space &&
- character !== tab &&
- (pedantic || (character !== lineFeed && character !== ''))
- ) {
- return
- }
-
- if (silent) {
- return true
- }
-
- index = 0
- items = []
- allLines = []
- emptyLines = []
-
- while (index < length) {
- nextIndex = value.indexOf(lineFeed, index)
- startIndex = index
- prefixed = false
- indented = false
-
- if (nextIndex === -1) {
- nextIndex = length
- }
-
- end = index + tabSize
- size = 0
-
- while (index < length) {
- character = value.charAt(index)
-
- if (character === tab) {
- size += tabSize - (size % tabSize)
- } else if (character === space) {
- size++
- } else {
- break
- }
-
- index++
- }
-
- if (size >= tabSize) {
- indented = true
- }
-
- if (item && size >= item.indent) {
- indented = true
- }
-
- character = value.charAt(index)
- currentMarker = null
-
- if (!indented) {
- if (
- character === asterisk ||
- character === plusSign ||
- character === dash
- ) {
- currentMarker = character
- index++
- size++
- } else {
- queue = ''
-
- while (index < length) {
- character = value.charAt(index)
-
- if (!decimal(character)) {
- break
- }
-
- queue += character
- index++
- }
-
- character = value.charAt(index)
- index++
-
- if (
- queue &&
- (character === dot || (commonmark && character === rightParenthesis))
- ) {
- currentMarker = character
- size += queue.length + 1
- }
- }
-
- if (currentMarker) {
- character = value.charAt(index)
-
- if (character === tab) {
- size += tabSize - (size % tabSize)
- index++
- } else if (character === space) {
- end = index + tabSize
-
- while (index < end) {
- if (value.charAt(index) !== space) {
- break
- }
-
- index++
- size++
- }
-
- if (index === end && value.charAt(index) === space) {
- index -= tabSize - 1
- size -= tabSize - 1
- }
- } else if (character !== lineFeed && character !== '') {
- currentMarker = null
- }
- }
- }
-
- if (currentMarker) {
- if (!pedantic && marker !== currentMarker) {
- break
- }
-
- prefixed = true
- } else {
- if (!commonmark && !indented && value.charAt(startIndex) === space) {
- indented = true
- } else if (commonmark && item) {
- indented = size >= item.indent || size > tabSize
- }
-
- prefixed = false
- index = startIndex
- }
-
- line = value.slice(startIndex, nextIndex)
- content = startIndex === index ? line : value.slice(index, nextIndex)
-
- if (
- currentMarker === asterisk ||
- currentMarker === underscore ||
- currentMarker === dash
- ) {
- if (tokenizers.thematicBreak.call(self, eat, line, true)) {
- break
- }
- }
-
- prevEmpty = empty
- empty = !prefixed && !trim(content).length
-
- if (indented && item) {
- item.value = item.value.concat(emptyLines, line)
- allLines = allLines.concat(emptyLines, line)
- emptyLines = []
- } else if (prefixed) {
- if (emptyLines.length !== 0) {
- spread = true
- item.value.push('')
- item.trail = emptyLines.concat()
- }
-
- item = {
- value: [line],
- indent: size,
- trail: []
- }
-
- items.push(item)
- allLines = allLines.concat(emptyLines, line)
- emptyLines = []
- } else if (empty) {
- if (prevEmpty && !commonmark) {
- break
- }
-
- emptyLines.push(line)
- } else {
- if (prevEmpty) {
- break
- }
-
- if (interrupt(interuptors, tokenizers, self, [eat, line, true])) {
- break
- }
-
- item.value = item.value.concat(emptyLines, line)
- allLines = allLines.concat(emptyLines, line)
- emptyLines = []
- }
-
- index = nextIndex + 1
- }
-
- node = eat(allLines.join(lineFeed)).reset({
- type: 'list',
- ordered: ordered,
- start: start,
- spread: spread,
- children: []
- })
-
- enterTop = self.enterList()
- exitBlockquote = self.enterBlock()
- index = -1
- length = items.length
-
- while (++index < length) {
- item = items[index].value.join(lineFeed)
- now = eat.now()
-
- eat(item)(listItem(self, item, now), node)
-
- item = items[index].trail.join(lineFeed)
-
- if (index !== length - 1) {
- item += lineFeed
- }
-
- eat(item)
- }
-
- enterTop()
- exitBlockquote()
-
- return node
-}
-
-function listItem(ctx, value, position) {
- var offsets = ctx.offset
- var fn = ctx.options.pedantic ? pedanticListItem : normalListItem
- var checked = null
- var task
- var indent
-
- value = fn.apply(null, arguments)
-
- if (ctx.options.gfm) {
- task = value.match(taskItemExpression)
-
- if (task) {
- indent = task[0].length
- checked = task[1].toLowerCase() === lowercaseX
- offsets[position.line] += indent
- value = value.slice(indent)
- }
- }
-
- return {
- type: 'listItem',
- spread: looseListItemExpression.test(value),
- checked: checked,
- children: ctx.tokenizeBlock(value, position)
- }
-}
-
-// Create a list-item using overly simple mechanics.
-function pedanticListItem(ctx, value, position) {
- var offsets = ctx.offset
- var line = position.line
-
- // Remove the list-item’s bullet.
- value = value.replace(pedanticBulletExpression, replacer)
-
- // The initial line was also matched by the below, so we reset the `line`.
- line = position.line
-
- return value.replace(initialIndentExpression, replacer)
-
- // A simple replacer which removed all matches, and adds their length to
- // `offset`.
- function replacer($0) {
- offsets[line] = (offsets[line] || 0) + $0.length
- line++
-
- return ''
- }
-}
-
-// Create a list-item using sane mechanics.
-function normalListItem(ctx, value, position) {
- var offsets = ctx.offset
- var line = position.line
- var max
- var bullet
- var rest
- var lines
- var trimmedLines
- var index
- var length
-
- // Remove the list-item’s bullet.
- value = value.replace(bulletExpression, replacer)
-
- lines = value.split(lineFeed)
-
- trimmedLines = removeIndent(value, getIndent(max).indent).split(lineFeed)
-
- // We replaced the initial bullet with something else above, which was used
- // to trick `removeIndentation` into removing some more characters when
- // possible. However, that could result in the initial line to be stripped
- // more than it should be.
- trimmedLines[0] = rest
-
- offsets[line] = (offsets[line] || 0) + bullet.length
- line++
-
- index = 0
- length = lines.length
-
- while (++index < length) {
- offsets[line] =
- (offsets[line] || 0) + lines[index].length - trimmedLines[index].length
- line++
- }
-
- return trimmedLines.join(lineFeed)
-
- function replacer($0, $1, $2, $3, $4) {
- bullet = $1 + $2 + $3
- rest = $4
-
- // Make sure that the first nine numbered list items can indent with an
- // extra space. That is, when the bullet did not receive an extra final
- // space.
- if (Number($2) < 10 && bullet.length % 2 === 1) {
- $2 = space + $2
- }
-
- max = $1 + repeat(space, $2.length) + $3
-
- return max + rest
- }
-}