Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
https://markdown-it.github.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
// Common functions for lexers
|
|
|
|
'use strict';
|
|
|
|
|
|
function isWhiteSpace(ch) {
|
|
return ch === 0x20;
|
|
}
|
|
|
|
// Check if line has zero length or contains spaces only
|
|
function isEmpty(state, line) {
|
|
return state.bMarks[line] + state.tShift[line] >= state.eMarks[line];
|
|
}
|
|
|
|
// Scan lines from given one and return first not empty
|
|
function skipEmptyLines(state, from) {
|
|
for (var max = state.lineMax; from < max; from++) {
|
|
if (state.bMarks[from] + state.tShift[from] < state.eMarks[from]) {
|
|
break;
|
|
}
|
|
}
|
|
return from;
|
|
}
|
|
|
|
// Skip spaces from given position.
|
|
function skipSpaces(state, pos) {
|
|
for (var max = state.src.length; pos < max; pos++) {
|
|
if (!isWhiteSpace(state.src.charCodeAt(pos))) { break; }
|
|
}
|
|
return pos;
|
|
}
|
|
|
|
// Skip char codes from given position
|
|
function skipChars(state, pos, code) {
|
|
for (var max = state.src.length; pos < max; pos++) {
|
|
if (state.src.charCodeAt(pos) !== code) { break; }
|
|
}
|
|
return pos;
|
|
}
|
|
|
|
// Skip char codes reverse from given position
|
|
/*function skipCharsBack(state, pos, code, min) {
|
|
for (; pos >= min; pos--) {
|
|
if (code !== state.src.charCodeAt(pos)) { break; }
|
|
}
|
|
return pos;
|
|
}*/
|
|
|
|
|
|
exports.isWhiteSpace = isWhiteSpace;
|
|
exports.isEmpty = isEmpty;
|
|
exports.skipEmptyLines = skipEmptyLines;
|
|
exports.skipSpaces = skipSpaces;
|
|
exports.skipChars = skipChars;
|