From c6acfddb02308e0dec1be6804069b341d9f7d2d5 Mon Sep 17 00:00:00 2001 From: pahaz Date: Sat, 10 Jan 2015 02:00:51 +0500 Subject: [PATCH 1/4] rm build --- build/index/index.bemdecl.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 build/index/index.bemdecl.js diff --git a/build/index/index.bemdecl.js b/build/index/index.bemdecl.js deleted file mode 100644 index 1738c6c..0000000 --- a/build/index/index.bemdecl.js +++ /dev/null @@ -1 +0,0 @@ -module.exports.deps = ['index-page']; From 45cdcbf34f25df4efb630dc89fc620508ab63250 Mon Sep 17 00:00:00 2001 From: pahaz Date: Sat, 10 Jan 2015 02:44:17 +0500 Subject: [PATCH 2/4] change description and name --- package.json | 4 ++-- server/config.js | 2 +- server/page.js | 2 +- test/chai.js | 1 - test/mocha.css | 1 - test/mocha.js | 1 - test/sinon.js | 1 - 7 files changed, 4 insertions(+), 8 deletions(-) delete mode 120000 test/chai.js delete mode 120000 test/mocha.css delete mode 120000 test/mocha.js delete mode 120000 test/sinon.js diff --git a/package.json b/package.json index cb1fb2d..1a0f0d2 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "bevis-stub", + "name": "bevis-todo", "private": true, "version": "0.0.0", - "description": "Project stub based on BEViS", + "description": "based on BEViS", "scripts": { "test": "make test" }, diff --git a/server/config.js b/server/config.js index 8138e0b..5e67e51 100644 --- a/server/config.js +++ b/server/config.js @@ -1,3 +1,3 @@ exports.get = function (name) { - return require('../configs/current/' + name); + return require('../configs/development/' + name); }; diff --git a/server/page.js b/server/page.js index 40f8885..7c8d00f 100644 --- a/server/page.js +++ b/server/page.js @@ -121,7 +121,7 @@ var Page = inherit({ */ createHandler: function (pageName) { return function (req, res, next) { - new Page('build/' + pageName, pageName + '-page', req, res) + new Page('test', 'test', req, res) .handle() .then( function (html) { diff --git a/test/chai.js b/test/chai.js deleted file mode 120000 index 99a70cd..0000000 --- a/test/chai.js +++ /dev/null @@ -1 +0,0 @@ -../node_modules/chai/chai.js \ No newline at end of file diff --git a/test/mocha.css b/test/mocha.css deleted file mode 120000 index 50e6102..0000000 --- a/test/mocha.css +++ /dev/null @@ -1 +0,0 @@ -../node_modules/mocha/mocha.css \ No newline at end of file diff --git a/test/mocha.js b/test/mocha.js deleted file mode 120000 index 39d77e7..0000000 --- a/test/mocha.js +++ /dev/null @@ -1 +0,0 @@ -../node_modules/mocha/mocha.js \ No newline at end of file diff --git a/test/sinon.js b/test/sinon.js deleted file mode 120000 index 87d998e..0000000 --- a/test/sinon.js +++ /dev/null @@ -1 +0,0 @@ -../node_modules/sinon/pkg/sinon.js \ No newline at end of file From 0b2edfe042f29a42c36a0c7459bf61d1fc739230 Mon Sep 17 00:00:00 2001 From: pahaz Date: Sat, 10 Jan 2015 06:12:00 +0500 Subject: [PATCH 3/4] up form stub --- .enb/lib/i18n.js | 76 ----------------------- .enb/make.js | 121 +++++++++---------------------------- .enb/techs/i18n-lang-js.js | 105 -------------------------------- .enb/techs/page.js | 2 +- package.json | 20 +++--- server/app.js | 9 ++- server/config.js | 2 +- server/page.js | 10 +-- tools/make-block.sh | 24 ++++++++ tools/make-page.sh | 37 ++++++++++++ 10 files changed, 112 insertions(+), 294 deletions(-) delete mode 100644 .enb/lib/i18n.js delete mode 100644 .enb/techs/i18n-lang-js.js create mode 100644 tools/make-page.sh diff --git a/.enb/lib/i18n.js b/.enb/lib/i18n.js deleted file mode 100644 index 00fdd34..0000000 --- a/.enb/lib/i18n.js +++ /dev/null @@ -1,76 +0,0 @@ -(function() { - -function createI18nInstance() { - /** - * Возвращает локализованное значение ключа для переданного кейсета. - * - * @param {String} keysetName - * @param {String} keyName - * @param {Object} [options] - */ - var i18n = function (keysetName, keyName, options) { - var keyset = i18n._keysets[keysetName]; - if (!keyset) { - throw new Error('Keyset "' + keysetName + '" was not found.'); - } - var value = keyset[keyName]; - if (value === undefined) { - throw new Error('Key "' + keyName + '" in keyset "' + keysetName + '" was not found.'); - } - if (typeof value === 'function') { - return value.call(this, options); - } else { - return value; - } - }; - - /** - * Хранилище кейсетов. - * - * @type {Object} - */ - i18n._keysets = {}; - - /** - * Текущий язык. - * - * @type {String} - */ - i18n._language = 'ru'; - - /** - * Добавляет кейсет в хранилище. - * - * @param {String} keysetName - * @param {String} keysetData - */ - i18n.add = function (keysetName, keysetData) { - i18n._keysets[keysetName] = keysetData; - return i18n; - }; - - /** - * Устанавливает текущий язык. - * - * @param {String} language - */ - i18n.setLanguage = function (language) { - this._language = language; - return this; - }; - - /** - * Возвращает текущий язык. - * - * @returns {String} - */ - i18n.getLanguage = function () { - return this._language; - }; - - return i18n; -} - -return createI18nInstance(); - -})(); diff --git a/.enb/make.js b/.enb/make.js index 6f8be2f..ac0f70e 100644 --- a/.enb/make.js +++ b/.enb/make.js @@ -1,101 +1,36 @@ +var fs = require('fs'); +var path = require('path'); + module.exports = function (config) { - config.setLanguages(['ru', 'en']); - config.nodes('build/*'); + config.setLanguages(['ru']); - config.nodeMask(/^build\/.*$/, function (nodeConfig) { - nodeConfig.addTechs([ - [require('enb/techs/file-provider'), {target: '?.bemdecl.js'}], - [require('enb/techs/levels'), {levels: getLevels()}], - require('enb-modules/techs/deps-with-modules'), - require('enb/techs/files'), - require('enb-stylus/techs/css-stylus-with-autoprefixer'), - [require('enb/techs/browser-js'), {target: '?.pre.js'}], - require('enb-bt/techs/bt-server'), - [require('enb-bt/techs/bt-client-module'), {target: '?.client.bt.js'}], - [require('enb/techs/pub-js-i18n') , { - target: '?.pre.{lang}.js', - jsTarget: '?.pre.js', - bemhtmlTarget: '?.client.bt.js', - lang: '{lang}' - }], - [require('enb-modules/techs/prepend-modules'), {source : '?.pre.{lang}.js', target: '?.{lang}.js'}], - [require('enb/techs/i18n-merge-keysets'), {lang: 'all'}], - [require('enb/techs/i18n-merge-keysets'), {lang: '{lang}'}], - [require('./techs/i18n-lang-js'), {lang: 'all' }], - [require('./techs/i18n-lang-js'), {lang: '{lang}'}], - [require('./techs/page')] - ]); - nodeConfig.addTargets(['_?.{lang}.js', '_?.css']); + config.includeConfig('enb-bevis-helper'); - nodeConfig.mode('development', function(nodeConfig) { - nodeConfig.addTechs([ - [require('enb/techs/file-copy'), {sourceTarget: '?.{lang}.js', destTarget: '_?.{lang}.js'}], - [require('enb/techs/file-copy'), {sourceTarget: '?.css', destTarget: '_?.css'}] - ]); - }); - nodeConfig.mode('production', function(nodeConfig) { - nodeConfig.addTechs([ - [require('enb/techs/borschik'), {sourceTarget: '?.{lang}.js', destTarget: '_?.{lang}.js'}], - [require('enb/techs/borschik'), {sourceTarget: '?.css', destTarget: '_?.css', freeze: 'yes'}] - ]); - }); - }); + var bevisHelper = config.module('enb-bevis-helper') + .browserSupport([ + 'IE >= 9', + 'Safari >= 5', + 'Chrome >= 33', + 'Opera >= 12.16', + 'Firefox >= 28' + ]) + .useAutopolyfiller(); - config.node('test', function (nodeConfig) { - nodeConfig.addTechs([ - [require('enb/techs/files')], - [require('enb/techs/levels'), {levels: getLevels()}], - [require('enb/techs/bemdecl-test'), {target: 'test.bemdecl.js'}], - [require('enb/techs/js-test'), {fileMask: getTestFileMask()}], - require('enb-modules/techs/deps-with-modules'), - [require('enb/techs/i18n-merge-keysets'), {lang: 'all'}], - [require('enb/techs/i18n-merge-keysets'), {lang: 'ru'}], - [require('./techs/i18n-lang-js'), {lang: 'all' }], - [require('./techs/i18n-lang-js'), {lang: 'ru'}], - [require('enb/techs/js'), {target: '?.source.js'}], - [require('enb-bt/techs/bt-client-module'), {target: '?.bt.client.js'}], - [require('enb/techs/pub-js-i18n'), { - target: '?.pre.js', - jsTarget: '?.source.js', - bemhtmlTarget: '?.bt.client.js', - lang: 'ru' - }], - [require('enb-modules/techs/prepend-modules'), {source: '?.pre.js', target: '?.js'}], - [require('enb/techs/file-provider'), {target: 'test.html'}], - [require('enb/techs/file-provider'), {target: 'mocha.js'}], - [require('enb/techs/file-provider'), {target: 'mocha.css'}], - [require('enb/techs/file-provider'), {target: 'chai.js'}], - [require('enb/techs/file-provider'), {target: 'sinon.js'}] - ]); + fs.readdirSync('pages').forEach(function(pageName) { + var nodeName = pageName.replace(/(.*?)\-page/, path.join('build', '$1')); - nodeConfig.addTargets([ - '?.js', - '?.test.js' - ]); - }); + config.node(nodeName, function (nodeConfig) { - function getLevels() { - return [ - 'core', - 'blocks', - 'pages' - ].map(config.resolvePath.bind(config)); - } + bevisHelper + .sourceDeps(pageName) + .forServerPage() + .configureNode(nodeConfig); + + nodeConfig.addTech(require('./techs/page')); + nodeConfig.addTarget('?.page.js'); + }); + + }); - function getTestFileMask() { - var tests = process.env.TEST_CASES; - if (tests) { - var filesForMask = tests.split(' ') - .map(function (test) { - return test - .replace(/\//g, '\\/') - .replace(/\./g, '\\.') + - '$'; - }) - .join('|'); - var fileMask = new RegExp(filesForMask); - } - return fileMask || /^((?!vendors).)*$/; - } -}; +}; \ No newline at end of file diff --git a/.enb/techs/i18n-lang-js.js b/.enb/techs/i18n-lang-js.js deleted file mode 100644 index ca31d84..0000000 --- a/.enb/techs/i18n-lang-js.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * i18n-lang-js - * ============ - * - * Собирает `?.lang.<язык>.js`-файлы на основе `?.keysets.<язык>.js`-файлов. - * - * Исходные и конечные таргеты в данный момент не настраиваются (нет запроса). - * - * **Опции** - * - * * *String* **target** — Результирующий таргет. По умолчанию — `?.lang.{lang}.js`. - * * *String* **lang** — Язык, для которого небходимо собрать файл. - * - * **Пример** - * - * ```javascript - * nodeConfig.addTechs([ - * [ require('./techs/i18n-lang-js'), { lang: 'all'} ], - * [ require('./techs/i18n-lang-js'), { lang: '{lang}'} ], - * ]); - * ``` - */ -var vowFs = require('vow-fs'); -var Vow = require('vow'); -var tanker = require('enb/exlib/tanker'); - -module.exports = require('enb/lib/build-flow').create() - .name('i18n-lang-js') - .target('target', '?.lang.{lang}.js') - .defineOption('i18nFile', '') - .defineRequiredOption('lang') - .useSourceFilename('keysetsTarget', '?.keysets.{lang}.js') - .needRebuild(function(cache) { - this._i18nFile = this._i18nFile || __dirname + '/../lib/i18n.js'; - return cache.needRebuildFile('i18n-file', this._i18nFile); - }) - .saveCache(function(cache) { - cache.cacheFileInfo('i18n-file', this._i18nFile); - }) - .builder(function(keysetsFilename) { - this._i18nClassData = ''; - return vowFs.read(this._i18nFile, 'utf8').then(function (i18nClassData) { - this._i18nClassData = i18nClassData; - delete require.cache[keysetsFilename]; - var keysets = require(keysetsFilename), - _this = this, - lang = this._lang, - res = []; - Object.keys(keysets).sort().forEach(function(keysetName) { - res.push(_this.__self.getKeysetBuildResult(keysetName, keysets[keysetName], lang)); - }); - return this.getPrependJs(lang) + '\n' + res.join('\n\n') + '\n' + this.getAppendJs(lang); - }.bind(this)); - }) - .methods({ - getPrependJs: function(lang) { - if (lang !== 'all') { - return '(function(){\nfunction initKeyset(i18n) {\n' + - 'if (!i18n || typeof i18n !== "function") {\n' + - 'i18n = ' + this._i18nClassData + '\n' + - '}\n\n'; - } else { - return ''; - } - }, - getAppendJs: function(lang) { - if (lang !== 'all') { - var res = []; - res.push('i18n.setLanguage(\'' + lang + '\');'); - res.push('return i18n;'); - res.push('}'); - res.push('if (typeof modules !== \'undefined\') {'); - res.push(' modules.define(\'i18n\', function (provide, i18n) {'); - res.push(' provide(initKeyset(i18n));'); - res.push(' });'); - res.push('} else if (typeof module !== \'undefined\') {'); - res.push(' module.exports = function() {return initKeyset();};'); - res.push('} else {'); - res.push(' window.i18n = initKeyset();'); - res.push('}'); - res.push('})();'); - return res.join('\n'); - } else { - return ''; - } - } - }) - .staticMethods({ - getKeysetBuildResult: function(keysetName, keyset, lang) { - var res = []; - if (keysetName === '') { - res.push(keyset); - } else { - res.push("i18n.add('" + keysetName + "', {"); - Object.keys(keyset).map(function(key, i, arr) { - tanker.xmlToJs(keyset[key], function(js) { - res.push(' ' + JSON.stringify(key) + ': ' + js + (i === arr.length - 1 ? '' : ',')); - }); - }); - res.push('});'); - } - return res.join('\n'); - } - }) - .createTech(); diff --git a/.enb/techs/page.js b/.enb/techs/page.js index 499cc41..822b79b 100644 --- a/.enb/techs/page.js +++ b/.enb/techs/page.js @@ -8,7 +8,7 @@ module.exports = require('enb/lib/build-flow').create() .useFileList(['page.js']) .needRebuild(function (cache) { this._pagesFile = this._pagesFile || '.enb/lib/pages.js'; - this._pagesFile = this.node._root + '/' + this._pagesFile; + this._pagesFile = path.join(this.node._root, this._pagesFile); return cache.needRebuildFile('page-file', this._pagesFile); }) .saveCache(function (cache) { diff --git a/package.json b/package.json index 1a0f0d2..f3b4dcb 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,15 @@ { - "name": "bevis-todo", + "name": "bevis-stub", "private": true, - "version": "0.0.0", - "description": "based on BEViS", + "version": "0.0.1", + "description": "Project stub based on BEViS", "scripts": { "test": "make test" }, "author": "Yandex Maps", "license": "MIT", "dependencies": { - "enb-bt": "0.0.17", + "enb-bevis-helper": ">=1.0.2", "express": "3.2.6", "inherit": "1.0.4", "node.extend": "1.0.7", @@ -19,17 +19,21 @@ "ym": "0.0.8" }, "devDependencies": { - "enb": "0.8.43", - "enb-modules": "0.0.14", - "enb-stylus": "0.0.3", "jscs": "1.0.13", "jshint-groups": "0.5.3", "chai": "1.7.2", - "git-hooks": "0.0.3", + "git-hooks": "0.0.10", "mocha": "1.12.0", "mocha-phantomjs": "3.1.0", "phantomjs": "1.9.1-0", "sinon": "1.7.3", "supervisor": "0.5.3" + }, + "enb": { + "sources": [ + "blocks", + "core", + "pages" + ] } } diff --git a/server/app.js b/server/app.js index b8f420e..fa45210 100644 --- a/server/app.js +++ b/server/app.js @@ -13,8 +13,8 @@ app req.path = req._parsedUrl.pathname; next(); }) - .use(assets.middleware()) .use('/blocks', express.static(__dirname + '/../blocks')) + .use(assets.middleware()) .use(app.router) .use(function (req, res) { res.statusCode = 404; @@ -30,7 +30,12 @@ app /** * Routing */ -app.get('/', Page.createHandler('index')); +app + .get('/', Page.createHandler('index')) + .get('/:page', function (req, res, next) { + var pageName = req.params.page; + Page.createHandler(pageName)(req, res, next); + }); function startApp(portOrSocket) { app diff --git a/server/config.js b/server/config.js index 5e67e51..8138e0b 100644 --- a/server/config.js +++ b/server/config.js @@ -1,3 +1,3 @@ exports.get = function (name) { - return require('../configs/development/' + name); + return require('../configs/current/' + name); }; diff --git a/server/page.js b/server/page.js index 7c8d00f..2c5bb10 100644 --- a/server/page.js +++ b/server/page.js @@ -31,20 +31,14 @@ var Page = inherit({ handle: function () { return vow.all([ this._getPages(), - this._getI18n(), this._getTemplate() ]) - .spread(function (pages, i18n, template) { - var i18nKeySets = i18n(); - pages.setI18n(i18nKeySets); - + .spread(function (pages, template) { return pages.exec(this._pageName, { query: this._query, options: this._getPageOptions(), lang: this._lang }).then(function (btJson) { - // provide the template with an i18n lib - template.lib.i18n = i18nKeySets; return this._applyTemplate(btJson, template); }.bind(this)); }.bind(this)); @@ -121,7 +115,7 @@ var Page = inherit({ */ createHandler: function (pageName) { return function (req, res, next) { - new Page('test', 'test', req, res) + new Page('build/' + pageName, pageName + '-page', req, res) .handle() .then( function (html) { diff --git a/tools/make-block.sh b/tools/make-block.sh index b21888b..aa2360c 100755 --- a/tools/make-block.sh +++ b/tools/make-block.sh @@ -26,6 +26,30 @@ echo "module.exports = function (bt) { };" > blocks/$BlockName/$BlockName.bt.js +echo "modules.define( + '$BlockName', + ['inherit', 'block'], + function (provide, inherit, YBlock) { + var $BlockName = inherit(YBlock, { + __constructor: function () { + this.__base.apply(this, arguments); + + // здесь описываем то, что происходит сразу после создания инстанса класса + } + + // инстанс-методы + }, { + getBlockName: function () { + return '$BlockName'; + } + + // статические методы + }); + + provide($BlockName); +}); +" > blocks/$BlockName/$BlockName.js + echo "-------------------------------------------------" echo "Создан блок blocks/$BlockName" echo "-------------------------------------------------" diff --git a/tools/make-page.sh b/tools/make-page.sh new file mode 100644 index 0000000..6b7e6cc --- /dev/null +++ b/tools/make-page.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +echo "" +printf "Введите имя страницы: " +read PageName + + +if [ -d pages/$PageName-page ]; then + echo "Операция прервана: Директория с таким именем существует по адресу pages/$PageName-page" + exit +fi + +mkdir -p pages/$PageName-page +echo "- page" > pages/$PageName-page/$PageName-page.deps.yaml +echo "module.exports = function (pages) { + pages.declare('${PageName}-page', function (params) { + var options = params.options; + return { + block: 'page', + title: '${PageName} page', + styles: [ + {url: options.assetsPath + '.css'} + ], + scripts: [ + {url: options.assetsPath + '.' + params.lang + '.js'} + ], + body: [ + // здесь ваши блоки + ] + }; + }); +};" > pages/$PageName-page/$PageName-page.page.js + +echo "-------------------------------------------------" +echo "Создана страница pages/$PageName-page" +echo "-------------------------------------------------" +ls -la pages/$PageName-page From a28eb4c2e4989ce6acc79a63a5e8de810ea31240 Mon Sep 17 00:00:00 2001 From: pahaz Date: Sat, 10 Jan 2015 06:14:48 +0500 Subject: [PATCH 4/4] up blocks and pages form stub --- blocks/layout/layout.styl | 17 ++++---- blocks/page/page.bt.js | 9 ++-- blocks/sidebar/sidebar.bt.js | 41 ++---------------- blocks/sidebar/sidebar.styl | 5 +-- blocks/todo-list-item/todo-list-item.bt.js | 4 +- pages/index-page/index-page.deps.yaml | 5 --- pages/index-page/index-page.page.js | 49 ++++++++-------------- 7 files changed, 37 insertions(+), 93 deletions(-) diff --git a/blocks/layout/layout.styl b/blocks/layout/layout.styl index df6e811..44dc0cf 100644 --- a/blocks/layout/layout.styl +++ b/blocks/layout/layout.styl @@ -1,12 +1,9 @@ -.layout { - &__aside { - position: absolute; - left: 0px; - top: 0px; - } - - &__content { - margin-left: 300px; - } +.layout__aside { + position: absolute; + left: 0px; + top: 0px; } +.layout__content { + margin-left: 300px; +} diff --git a/blocks/page/page.bt.js b/blocks/page/page.bt.js index 7d626df..e9e226b 100644 --- a/blocks/page/page.bt.js +++ b/blocks/page/page.bt.js @@ -23,8 +23,9 @@ module.exports = function (bt) { }; }); } + return [ - ctx.getParam('doctype') || '', + {raw: ctx.getParam('doctype') || ''}, { elem: 'html', content: [ @@ -137,11 +138,11 @@ module.exports = function (bt) { var ie = ctx.getParam('ie'); if (ie !== undefined) { if (ie === true) { - return ['']; + return [{raw: ''}]; } else if (ie === false) { - return ['', ctx.getJson(), '']; + return [{raw: ''}, ctx.getJson(), {raw: ''}]; } else { - return ['']; + return [{raw: ''}]; } } }); diff --git a/blocks/sidebar/sidebar.bt.js b/blocks/sidebar/sidebar.bt.js index 4c07d4e..82ad300 100644 --- a/blocks/sidebar/sidebar.bt.js +++ b/blocks/sidebar/sidebar.bt.js @@ -6,20 +6,9 @@ module.exports = function (bt) { elem: 'head', text: ctx.getParam('title') }, - { - elem: 'about', - title: 'Architecture Example', - links: ctx.getParam('about'), - listType: 'horizontal' - }, - { - elem: 'quote', - author: ctx.getParam('quote').author, - text: ctx.getParam('quote').text - }, { elem: 'resources', - title: 'Official Resources', + title: '', links: ctx.getParam('resources'), listType: 'vertical' } @@ -33,9 +22,9 @@ module.exports = function (bt) { ctx.setContent(text); }); -// Группа ссылок 'Architecture Example' и 'Official Resources' +// Группа ссылок 'Official Resources' - bt.match(['sidebar__about', 'sidebar__resources'], function (ctx) { + bt.match('sidebar__resources', function (ctx) { var title = ctx.getParam('title'); var links = ctx.getParam('links'); var listType = ctx.getParam('listType'); @@ -87,28 +76,4 @@ module.exports = function (bt) { ctx.setAttr('href', url); }); -// Цитата - - bt.match('sidebar__quote', function (ctx) { - var author = ctx.getParam('author'); - var text = ctx.getParam('text'); - - ctx.setContent([ - { - elem: 'quote-text', - text: text - }, - { - elem: 'quote-author', - text: author - } - ]); - }); - - bt.match(['sidebar__quote-author', 'sidebar__quote-text'], function (ctx) { - var text = ctx.getParam('text'); - - ctx.setContent(text); - }); - }; diff --git a/blocks/sidebar/sidebar.styl b/blocks/sidebar/sidebar.styl index 7f1bd9c..1b5d1d4 100644 --- a/blocks/sidebar/sidebar.styl +++ b/blocks/sidebar/sidebar.styl @@ -1,13 +1,12 @@ .sidebar { - font-family: $common['font-family']; - font-size: 14px; + font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #4d4d4d; line-height: 1.4; margin: 8px 0px 0px 8px; - width: 272px; + width: 320px; padding: 10px; background-color: rgba(255, 255, 255, 0.6); diff --git a/blocks/todo-list-item/todo-list-item.bt.js b/blocks/todo-list-item/todo-list-item.bt.js index 76a058c..45538a3 100644 --- a/blocks/todo-list-item/todo-list-item.bt.js +++ b/blocks/todo-list-item/todo-list-item.bt.js @@ -39,10 +39,10 @@ module.exports = function (bt) { } ]); }); - + bt.match('todo-list-item__text', function (ctx) { ctx.setTag('span'); - ctx.setContent(ctx.escape(ctx.getParam('text'))); + ctx.setContent(ctx.escapeHtml(ctx.getParam('text'))); }); bt.match('todo-list-item__check', function (ctx) { diff --git a/pages/index-page/index-page.deps.yaml b/pages/index-page/index-page.deps.yaml index 8ba5d23..57c86f7 100644 --- a/pages/index-page/index-page.deps.yaml +++ b/pages/index-page/index-page.deps.yaml @@ -1,9 +1,4 @@ - page -- common -- input -- checkbox -- todo-app - block -- todo-window - sidebar - layout diff --git a/pages/index-page/index-page.page.js b/pages/index-page/index-page.page.js index fbd1f64..2e54ba4 100644 --- a/pages/index-page/index-page.page.js +++ b/pages/index-page/index-page.page.js @@ -8,43 +8,30 @@ module.exports = function (pages) { {url: options.assetsPath + '.css'} ], scripts: [ - {url: [options.assetsPath, params.lang, 'js'].join('.')} + {url: options.assetsPath + '.' + params.lang + '.js'} ], body: [ { block: 'layout', - content: { - block: 'todo-window' - }, - aside: [ - { - block: 'sidebar', + aside: { + block: 'sidebar', - title: 'BEViS application', - about: [ - { - text: 'Source', - url: 'https://github.com/bevis-ui/bevis-todo' - } - ], - quote: { - author: 'BEViS', - text: 'BEViS - это не только соглашения об именовании тегов и CSS-классов.

' + - 'Это ещё и готовые инструменты, ' + - 'с которыми сверстать полноценный динамический сайт может даже подросток.' + title: 'Привет, BEViS!', + resources: [ + { + text: 'Репозиторий', + url: 'https://github.com/bevis-ui/' }, - resources: [ - { - text: 'Documentation', - url: 'https://github.com/bevis-ui/docs' - }, - { - text: 'BEViS on Github', - url: 'https://github.com/bevis-ui' - } - ] - } - ] + { + text: 'Учебник для новичков', + url: 'https://github.com/bevis-ui/docs/blob/master/manual-for-beginner.md' + }, + { + text: 'Учебник для старичков', + url: 'https://github.com/bevis-ui/docs/blob/master/manual-for-master.md' + }, + ] + } } ] };