This commit is contained in:
70
node_modules/remark-parse/lib/tokenize/thematic-break.js
generated
vendored
Normal file
70
node_modules/remark-parse/lib/tokenize/thematic-break.js
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
'use strict'
|
||||
|
||||
module.exports = thematicBreak
|
||||
|
||||
var tab = '\t'
|
||||
var lineFeed = '\n'
|
||||
var space = ' '
|
||||
var asterisk = '*'
|
||||
var dash = '-'
|
||||
var underscore = '_'
|
||||
|
||||
var maxCount = 3
|
||||
|
||||
function thematicBreak(eat, value, silent) {
|
||||
var index = -1
|
||||
var length = value.length + 1
|
||||
var subvalue = ''
|
||||
var character
|
||||
var marker
|
||||
var markerCount
|
||||
var queue
|
||||
|
||||
while (++index < length) {
|
||||
character = value.charAt(index)
|
||||
|
||||
if (character !== tab && character !== space) {
|
||||
break
|
||||
}
|
||||
|
||||
subvalue += character
|
||||
}
|
||||
|
||||
if (
|
||||
character !== asterisk &&
|
||||
character !== dash &&
|
||||
character !== underscore
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
marker = character
|
||||
subvalue += character
|
||||
markerCount = 1
|
||||
queue = ''
|
||||
|
||||
while (++index < length) {
|
||||
character = value.charAt(index)
|
||||
|
||||
if (character === marker) {
|
||||
markerCount++
|
||||
subvalue += queue + marker
|
||||
queue = ''
|
||||
} else if (character === space) {
|
||||
queue += character
|
||||
} else if (
|
||||
markerCount >= maxCount &&
|
||||
(!character || character === lineFeed)
|
||||
) {
|
||||
subvalue += queue
|
||||
|
||||
if (silent) {
|
||||
return true
|
||||
}
|
||||
|
||||
return eat(subvalue)({type: 'thematicBreak'})
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user