@mapbox/jsxtreme-markdown
Version:
Transform Markdown into JSX or React component modules
38 lines (27 loc) • 686 B
JavaScript
;
module.exports = indentation;
var tab = '\t';
var space = ' ';
var spaceSize = 1;
var tabSize = 4;
// Gets indentation information for a line.
function indentation(value) {
var index = 0;
var indent = 0;
var character = value.charAt(index);
var stops = {};
var size;
var lastIndent = 0;
while (character === tab || character === space) {
size = character === tab ? tabSize : spaceSize;
indent += size;
if (size > 1) {
indent = Math.floor(indent / size) * size;
}
while (lastIndent < indent) {
stops[++lastIndent] = index;
}
character = value.charAt(++index);
}
return { indent: indent, stops: stops };
}