/** * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @module remark:parse:tokenize:newline * @fileoverview Tokenise a newline. */ 'use strict'; var whitespace = require('is-whitespace-character'); module.exports = newline; /* Tokenise newline. */ function newline(eat, value, silent) { var character = value.charAt(0); var length; var subvalue; var queue; var index; if (character !== '\n') { return; } /* istanbul ignore if - never used (yet) */ if (silent) { return true; } index = 1; length = value.length; subvalue = character; queue = ''; while (index < length) { character = value.charAt(index); if (!whitespace(character)) { break; } queue += character; if (character === '\n') { subvalue += queue; queue = ''; } index++; } eat(subvalue); }