Example #1
0
    var getBemjson = function(str) {

        var path = str.replace('bemhtml', 'bemjson');
        return BEM.util.readFile(path)
            .then(function(c) {
                return VM.runInThisContext(c, path);
            });

    };
Example #2
0
    getJson: function(prefix) {

        var path = this.getPath(prefix, 'json.js');
        return BEM.util.readFile(path)
            .then(function(c) {
                return VM.runInThisContext(c, path);
            });

    },
Example #3
0
    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;
            });

    },
Example #4
0
    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;
            });

    },
Example #5
0
    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;
            });

    };
Example #6
0
    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);
            });

    }
Example #7
0
exports.getBuildResultChunk = function(relPath, path, suffix) {

    return BEM.util.readFile(path)
        .then(function(c) {

            return [
                '/* ' + path + ': start */',
                c,
                '/* ' + path + ': end */',
                '\n'
            ].join('\n');

        });

};
Example #8
0
    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);
            });

    },
Example #9
0
                .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));
Example #10
0
    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;
            });

    };