Sha256: fcbdc8912f89fc8e9da241a76db0a39504fcd733b90256af103b53c4e7d8d1c0
Contents?: true
Size: 1.7 KB
Versions: 23
Compression:
Stored size: 1.7 KB
Contents
'use strict' var trim = require('trim') var word = require('is-word-character') var whitespace = require('is-whitespace-character') var locate = require('../locate/emphasis') module.exports = emphasis emphasis.locator = locate var asterisk = '*' var underscore = '_' var backslash = '\\' function emphasis(eat, value, silent) { var self = this var index = 0 var character = value.charAt(index) var now var pedantic var marker var queue var subvalue var length var previous if (character !== asterisk && character !== underscore) { return } pedantic = self.options.pedantic subvalue = character marker = character length = value.length index++ queue = '' character = '' if (pedantic && whitespace(value.charAt(index))) { return } while (index < length) { previous = character character = value.charAt(index) if (character === marker && (!pedantic || !whitespace(previous))) { character = value.charAt(++index) if (character !== marker) { if (!trim(queue) || previous === marker) { return } if (!pedantic && marker === underscore && word(character)) { queue += marker continue } /* istanbul ignore if - never used (yet) */ if (silent) { return true } now = eat.now() now.column++ now.offset++ return eat(subvalue + queue + marker)({ type: 'emphasis', children: self.tokenizeInline(queue, now) }) } queue += marker } if (!pedantic && character === backslash) { queue += character character = value.charAt(++index) } queue += character index++ } }
Version data entries
23 entries across 23 versions & 1 rubygems