Commit d6052c11 authored by Nikolay Gromov's avatar Nikolay Gromov

Интерфейс создания блока: микрорефакторинг

parent c00e610c
......@@ -37,27 +37,13 @@ if (blockName) {
if (extension === 'scss') {
fileContent = `// В этом файле должны быть стили для БЭМ-блока ${blockName}, его элементов, \n// модификаторов, псевдоселекторов, псевдоэлементов, @media-условий...\n// Очередность: http://nicothin.github.io/idiomatic-pre-CSS/#priority\n\n.${blockName} {\n\n $block-name: &; // #{$block-name}__element\n}\n`;
// fileCreateMsg = '';
// Добавим созданный файл
let hasThisBlock = false;
for (const block in projectConfig.blocks) {
if (block === blockName) {
hasThisBlock = true;
break;
}
}
if (!hasThisBlock) {
projectConfig.blocks[blockName] = [];
const newPackageJson = JSON.stringify(projectConfig, '', 2);
fs.writeFileSync('./projectConfig.json', newPackageJson);
fileCreateMsg = '[NTH] Подключение блока добавлено в projectConfig.json';
}
// Добавление импорта файла в диспетчер подключений, если он есть и в нем есть импорты
// TODO
}
// Если это HTML
else if (extension === 'html') {
fileContent = `<!--DEV\n\nДля использования этого файла как шаблона:\n\n@ @include('blocks/${blockName}/${blockName}.html')\n\n(Нужно убрать пробел между символами @)\nПодробнее: https://www.npmjs.com/package/gulp-file-include\n\n\n\n<div class="${blockName}">content</div>\n\n-->\n`;
// fileCreateMsg = '';
fileContent = `<div class="${blockName}">content</div>\n`;
}
// Если это JS
......@@ -73,6 +59,8 @@ if (blockName) {
// Если это pug
else if (extension === 'pug') {
fileContent = `//- Все примеси в этом файле должны начинаться c имени блока (${blockName})\n\nmixin ${blockName}(text, mods)\n\n //- Принимает:\n //- text {string} - текст\n //- mods {string} - список модификаторов\n //- Вызов:\n +${blockName}('Текст', 'some-mod')\n\n -\n // список модификаторов\n var allMods = '';\n if(typeof(mods) !== 'undefined' && mods) {\n var modsList = mods.split(',');\n for (var i = 0; i < modsList.length; i++) {\n allMods = allMods + ' ${blockName}--' + modsList[i].trim();\n }\n }\n\n .${blockName}(class=allMods)&attributes(attributes)\n .${blockName}__inner!= text`;
// Добавление примеси файл примесей, если он есть и в нем есть подключение примесей
// TODO
}
// Если нужна подпапка для картинок
......@@ -128,6 +116,22 @@ if (blockName) {
});
}
});
// Добавим созданный блок в projectConfig.json
let hasThisBlock = false;
for (const block in projectConfig.blocks) {
if (block === blockName) {
hasThisBlock = true;
break;
}
}
if (!hasThisBlock) {
projectConfig.blocks[blockName] = [];
const newPackageJson = JSON.stringify(projectConfig, '', 2);
fs.writeFileSync('./projectConfig.json', newPackageJson);
console.log('[NTH] Подключение блока добавлено в projectConfig.json');
}
}
});
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment