3 var trim = require('trim');
4 var word = require('is-word-character');
5 var whitespace = require('is-whitespace-character');
6 var locate = require('../locate/emphasis');
8 module.exports = emphasis;
9 emphasis.locator = locate;
12 var C_UNDERSCORE = '_';
14 function emphasis(eat, value, silent) {
17 var character = value.charAt(index);
26 if (character !== C_ASTERISK && character !== C_UNDERSCORE) {
30 pedantic = self.options.pedantic;
33 length = value.length;
38 if (pedantic && whitespace(value.charAt(index))) {
42 while (index < length) {
44 character = value.charAt(index);
46 if (character === marker && (!pedantic || !whitespace(prev))) {
47 character = value.charAt(++index);
49 if (character !== marker) {
50 if (!trim(queue) || prev === marker) {
54 if (!pedantic && marker === C_UNDERSCORE && word(character)) {
59 /* istanbul ignore if - never used (yet) */
68 return eat(subvalue + queue + marker)({
70 children: self.tokenizeInline(queue, now)
77 if (!pedantic && character === '\\') {
79 character = value.charAt(++index);