var getBemjson = function(str) { var path = str.replace('bemhtml', 'bemjson'); return BEM.util.readFile(path) .then(function(c) { return VM.runInThisContext(c, path); }); };
getJson: function(prefix) { var path = this.getPath(prefix, 'json.js'); return BEM.util.readFile(path) .then(function(c) { return VM.runInThisContext(c, path); }); },
getBemtree: function(prefix) { var path = this.getPath(prefix, 'bemtree.js'); return BEM.util.readFile(path) .then(function(c) { /** @name BEMHTML variable appears after runInThisContext() call */ VM.runInThisContext(c, path); return BEMHTML; }); },
getBemhtml: function(prefix) { var path = this.getPath(prefix, 'bemhtml.js'); return BEM.util.readFile(path) .then(function(c) { var ctx = VM.createContext({ require: require, console: console }); VM.runInContext(c, ctx, path); return ctx.BEMHTML; }); },
var getBemhtml = function(str) { var path = str; return BEM.util.readFile(path) .then(function(c) { /** @name BEMHTML variable appears after runInThisContext() call */ VM.runInThisContext(c, path); return BEMHTML; }); };
getBemjson: function(prefix) { var path = this.getPath(prefix, 'bemjson.js'); return BEM.util.readFile(path) .then(function(c) { return VM.runInNewContext( c, { require: require, console: console }, path); }); }
exports.getBuildResultChunk = function(relPath, path, suffix) { return BEM.util.readFile(path) .then(function(c) { return [ '/* ' + path + ': start */', c, '/* ' + path + ': end */', '\n' ].join('\n'); }); };
getBemhtml: function(prefix, i18n) { var path = this.getPath(prefix, 'bemhtml.js'); return Q.all([BEM.util.readFile(path), i18n]) .spread(function(bemhtml, i18n) { return VM.runInThisContext([ '(function(){', // make local var BEM to prevent global assignment in i18n code 'var BEM = {};', i18n, bemhtml, 'return BEMHTML;', '})()' ].join('\n'), path); }); },
.map(function(item) { var suffix = item.suffix.substr(1), lang = suffix.split('.').shift(), page = { block: source.split('/').shift() + '-' + item.block + '-' + lang }, srcPath = PATH.join(level.getPathByObj(item, suffix)), outPath = PATH.join(bundlesLevel.getPathByObj(page, 'bemjson.js')); // return BEM.util.isFileValid(outPath, srcPath) // .then(function(valid) { // if (valid && !ctx.force) return; return BEM.util.readFile(srcPath) .then(function(src) { var pageContent = _this.getTemplateBemJson(item.block, source, lang), content = item.tech === 'wiki'? shmakowiki.shmakowikiToBemjson(src) : { block: 'b-text', mods: { 'type': 'global' }, content: processMarkdown(src) }; pageContent.content[1].content.push(content); mkdirp.sync('pages-desktop/' + page.block); var outContent = '(' + JSON.stringify(pageContent, null, 1) + ')'; return BEM.util.writeFile(outPath, outContent); }); // }); }, _this));
var getBemjson = function(str, options) { var path, pathArr = str.replace('bemhtml', 'priv').split('/'); pathArr[pathArr.length - 1] = '_' + pathArr[pathArr.length - 1]; path = pathArr.join('/'); return BEM.util.readFile(path) .then(function(c) { var blocks = {}, res; try { eval(c); res = blocks['b-page'] ? blocks['b-page'](options) : { block: 'b-page', content: ["blocks['b-page'] not found in ", path] }; } catch (err) { res = { block: 'b-page', content: ['Exception in ', path, err.toString()] }; } return res; }); };