UNPKG

@awesome-fe/translate

Version:
70 lines 2.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.emphasisTokenizer = void 0; const word = require('is-word-character'); const whitespace = require('is-whitespace-character'); function emphasisTokenizer(eat, value, silent) { let index = 0; let character = value.charAt(index); if (character !== '*' && character !== '_') { return; } const pedantic = this.options.pedantic; const subvalue = character; const marker = character; const length = value.length; index++; let queue = ''; character = ''; if (pedantic && whitespace(value.charAt(index))) { return; } while (index < length) { const prev = character; character = value.charAt(index); if (character === marker && (!pedantic || !whitespace(prev))) { character = value.charAt(++index); if (character !== marker) { if (!queue.trim() || prev === marker) { return; } if (!pedantic && marker === '_' && word(character)) { queue += marker; continue; } /* istanbul ignore if - never used (yet) */ if (silent) { return true; } const now = eat.now(); now.column++; now.offset++; return eat(subvalue + queue + marker)({ type: 'emphasis', marker, children: this.tokenizeInline(queue, now), }); } queue += marker; } if (!pedantic && character === '\\') { queue += character; character = value.charAt(++index); } queue += character; index++; } } exports.emphasisTokenizer = emphasisTokenizer; emphasisTokenizer.locator = function (value, fromIndex) { const asterisk = value.indexOf('*', fromIndex); const underscore = value.indexOf('_', fromIndex); if (underscore === -1) { return asterisk; } if (asterisk === -1) { return underscore; } return underscore < asterisk ? underscore : asterisk; }; //# sourceMappingURL=emphasis-tokenizer.js.map