js-markdown
Version:
A markdown language js compiler.
76 lines (59 loc) • 1.68 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _Str = _interopRequireDefault(require("./Str"));
function preOrderTraverse(node, callback) {
var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
if (!callback.call(this, node, deep)) {
return;
}
if (node.children && node.children.length > 0) {
for (var i = 0, len = node.children.length; i < len; i++) {
preOrderTraverse.call(this, node.children[i], callback, deep + 1);
}
}
}
/**
* a tree traverse method
* @param node
* @param callback
* @param deep
*/
function postOrderTraverse(node, callback) {
var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
if (node.children && node.children.length > 0) {
for (var i = 0, len = node.children.length; i < len; i++) {
postOrderTraverse.call(this, node.children[i], callback, deep + 1);
}
}
callback.call(this, node, deep);
}
/**
* remove blank(or only includes space and tab) item in array
* @param array
* @returns {*}
*/
function trimEndBlankLines(array) {
if (!array || array.length < 1) {
return array;
}
var temp;
while (array.length > 0) {
temp = array[array.length - 1];
if (temp === '' || _Str["default"].trim(temp, ' \t') === '') {
array.pop();
} else {
break;
}
}
return array;
}
var _default = {
preOrderTraverse: preOrderTraverse,
postOrderTraverse: postOrderTraverse,
trimEndBlankLines: trimEndBlankLines
};
exports["default"] = _default;