Commit 6ba0b400 authored by Nikolay Gromov's avatar Nikolay Gromov

Завершил добавление pug

parent 77749b3b
loglevel=silent # loglevel=silent
{
"validateExtensions": true,
"validateDivTags": true,
"validateAttributeSeparator": { "separator": ", ", "multiLineSeparator": ",\n " },
"validateAttributeQuoteMarks": "'",
"requireSpecificAttributes": [ { "img": [ "src", "alt" ] } ],
"requireSpaceAfterCodeOperator": true,
"requireLowerCaseTags": true,
"requireLowerCaseAttributes": true,
"requireClassLiteralsBeforeIdLiterals": true,
"requireClassLiteralsBeforeAttributes": true,
"disallowTrailingSpaces": true,
"disallowSpacesInsideAttributeBrackets": true,
"disallowLegacyMixinCall": true,
"disallowDuplicateAttributes": true
}
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
- Диспетчер подключения стилей `./src/scss/style.scss` генерируется автоматически при старте любой gulp-задачи (на основе данных из `./projectConfig.json`). - Диспетчер подключения стилей `./src/scss/style.scss` генерируется автоматически при старте любой gulp-задачи (на основе данных из `./projectConfig.json`).
- Список pug-примесей `./src/pug/mixins.pug` генерируется автоматически при старте любой gulp-задачи (на основе данных из `./projectConfig.json`). - Список pug-примесей `./src/pug/mixins.pug` генерируется автоматически при старте любой gulp-задачи (на основе данных из `./projectConfig.json`).
- Для разметки используется [pug](https://pugjs.org/api/getting-started.html). - Для разметки используется [pug](https://pugjs.org/api/getting-started.html).
- Перед созданием коммита запускается проверка стилевых файлов, входящих в коммит. - Перед созданием коммита запускается проверка стилевых файлов, входящих в коммит и всех pug-файлов. При выявлении ошибок, коммит не происходит.
......
...@@ -419,6 +419,13 @@ gulp.task('pug', function() { ...@@ -419,6 +419,13 @@ gulp.task('pug', function() {
.pipe(gulp.dest(dirs.buildPath)); .pipe(gulp.dest(dirs.buildPath));
}); });
gulp.task('test:pug', function () {
const pugLinter = require('gulp-pug-lint');
return gulp
.src('src/**/*.pug')
.pipe(pugLinter());
});
// Конкатенация и углификация Javascript // Конкатенация и углификация Javascript
gulp.task('js', function (callback) { gulp.task('js', function (callback) {
const uglify = require('gulp-uglify'); const uglify = require('gulp-uglify');
......
...@@ -10,17 +10,21 @@ ...@@ -10,17 +10,21 @@
}, },
"scripts": { "scripts": {
"test:style": "stylelint \"src/**/*.scss\" --syntax=scss", "test:style": "stylelint \"src/**/*.scss\" --syntax=scss",
"test:editorconfig": "editorconfig-cli src/**/*.{js,pug}",
"start": "gulp", "start": "gulp",
"deploy": "cross-env NODE_ENV=production ./node_modules/.bin/gulp build && cross-env ./node_modules/.bin/gulp deploy", "deploy": "cross-env NODE_ENV=production ./node_modules/.bin/gulp build && cross-env ./node_modules/.bin/gulp deploy",
"build": "cross-env NODE_ENV=production npm start build", "build": "cross-env NODE_ENV=production npm start build",
"lint-staged": "lint-staged", "lint-staged": "lint-staged",
"precommit": "lint-staged" "precommit": "lint-staged && gulp test:pug"
}, },
"lint-staged": { "lint-staged": {
"*.js": "editorconfig-cli",
"*.pug": "editorconfig-cli",
"*.css": "stylelint", "*.css": "stylelint",
"*.scss": "stylelint --syntax=scss" "*.scss": "stylelint --syntax=scss"
}, },
"devDependencies": { "devDependencies": {
"@htmlacademy/editorconfig-cli": "^1.0.0",
"autoprefixer": "^7.1.1", "autoprefixer": "^7.1.1",
"browser-sync": "^2.18.8", "browser-sync": "^2.18.8",
"const": "^1.0.0", "const": "^1.0.0",
...@@ -41,6 +45,7 @@ ...@@ -41,6 +45,7 @@
"gulp-plumber": "^1.1.0", "gulp-plumber": "^1.1.0",
"gulp-postcss": "^7.0.0", "gulp-postcss": "^7.0.0",
"gulp-pug": "^3.3.0", "gulp-pug": "^3.3.0",
"gulp-pug-lint": "git+https://github.com/nicothin/gulp-pug-lint.git",
"gulp-real-favicon": "^0.2.2", "gulp-real-favicon": "^0.2.2",
"gulp-rename": "^1.2.2", "gulp-rename": "^1.2.2",
"gulp-replace": "^0.6.1", "gulp-replace": "^0.6.1",
......
...@@ -45,7 +45,7 @@ block append head ...@@ -45,7 +45,7 @@ block append head
//- script(src='js/SOME.js') //- script(src='js/SOME.js')
block off-canvas block off-canvas
ul#off-canvas-menu.menu ul.menu#off-canvas-menu
block header block header
...@@ -66,9 +66,9 @@ block content ...@@ -66,9 +66,9 @@ block content
- var realId = id - var realId = id
section.blocks-library__item(id=id, data-id=realId)(class= sep ? 'blocks-library__item--menusep' : '') section.blocks-library__item(id=id, data-id=realId)(class= sep ? 'blocks-library__item--menusep' : '')
h2.blocks-library__item-title h2.blocks-library__item-title
a(href=repoUrl + '/tree/master/src/blocks/' + realId, class="blocks-library__item-title-link", title="Папка блока в репозитории") a(href=repoUrl + '/tree/master/src/blocks/' + realId, class='blocks-library__item-title-link', title='Папка блока в репозитории')
svg(width="20", height="20") svg(width='20', height='20')
use(xlink:href="#folder") use(xlink:href='#folder')
!= title != title
block block
...@@ -91,10 +91,10 @@ block content ...@@ -91,10 +91,10 @@ block content
h1 Блоки стартового репозитория #[a(href="index.html") проекта] h1 Блоки стартового репозитория #[a(href='index.html') проекта]
+block-lib('page', 'Страница', false) +block-lib('page', 'Страница', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/page/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/page/readme.md
+block-lib-code() +block-lib-code()
pre.code pre.code
code <!DOCTYPE html> code <!DOCTYPE html>
...@@ -109,75 +109,75 @@ block content ...@@ -109,75 +109,75 @@ block content
code </html> code </html>
+block-lib('typo', 'Текст, теги', false) +block-lib('typo', 'Текст, теги', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/typo/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/typo/readme.md
+block-lib('sprite-svg', 'SVG-спрайт c <a href="https://github.com/w0rm/gulp-svgstore">gulp-svgstore</a>', false) +block-lib('sprite-svg', 'SVG-спрайт c <a href="https://github.com/w0rm/gulp-svgstore">gulp-svgstore</a>', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/sprite-svg/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/sprite-svg/readme.md
+block-lib('sprite-png', 'PNG-спрайт с <a href="https://github.com/Ensighten/spritesmith">spritesmith</a>', true) +block-lib('sprite-png', 'PNG-спрайт с <a href="https://github.com/Ensighten/spritesmith">spritesmith</a>', true)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/sprite-png/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/sprite-png/readme.md
+block-lib('page-header', '«Шапка» страницы', false) +block-lib('page-header', '«Шапка» страницы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/page-header/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/page-header/readme.md
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/page-header/page-header.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/page-header/page-header.pug
+block-lib('page-footer', '«Подвал» страницы', false) +block-lib('page-footer', '«Подвал» страницы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/page-footer/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/page-footer/readme.md
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/page-footer/page-footer.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/page-footer/page-footer.pug
+block-lib('logo', 'Логотип', false) +block-lib('logo', 'Логотип', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/logo/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/logo/readme.md
+logo('/') +logo('/')
img(src='img/logo.svg', alt='Logo', width='64', height='15') img(src='img/logo.svg', alt='Logo', width='64', height='15')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/logo/logo.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/logo/logo.pug
+block-lib('main-nav', 'Главная навигация', false) +block-lib('main-nav', 'Главная навигация', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/main-nav/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/main-nav/readme.md
+main-nav('1') +main-nav('1')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/main-nav/main-nav.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/main-nav/main-nav.pug
+block-lib('close', 'Закрыть', false) +block-lib('close', 'Закрыть', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/close/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/close/readme.md
div div
+close('Закрыть') +close('Закрыть')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/close/close.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/close/close.pug
+block-lib('burger', 'Бургер', false) +block-lib('burger', 'Бургер', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/burger/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/burger/readme.md
div div
+burger('Показать пример кода', 'burger-code', 'blocks-library__code--shown') +burger('Показать пример кода', 'burger-code', 'blocks-library__code--shown')
+block-lib-code('burger-code', true) +block-lib-code('burger-code', true)
include:show-code(first-line="//- Pug-файл этого блока:") blocks/burger/burger.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/burger/burger.pug
+block-lib('code', 'Код', false) +block-lib('code', 'Код', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/code/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/code/readme.md
+code() +code()
code &lt;div class="some">...&lt;/div> code &lt;div class="some">...&lt;/div>
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/code/code.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/code/code.pug
+block-lib('thumb', 'Картинки-миниатюры', false) +block-lib('thumb', 'Картинки-миниатюры', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/thumb/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/thumb/readme.md
+thumb('img/joker.jpg', 'Джокер', 300, 200) +thumb('img/joker.jpg', 'Джокер', 300, 200)
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/thumb/thumb.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/thumb/thumb.pug
+block-lib('alert', 'Сообщения', false) +block-lib('alert', 'Сообщения', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/alert/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/alert/readme.md
+alert() +alert()
p Обычное сообщение p Обычное сообщение
+alert('Заголовок', 'warning, some-mod-name') +alert('Заголовок', 'warning, some-mod-name')
p Блок сообщения с модификаторами. p Блок сообщения с модификаторами.
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/alert/alert.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/alert/alert.pug
+block-lib('menu', 'Меню', false) +block-lib('menu', 'Меню', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/menu/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/menu/readme.md
- -
var myMenu = [ var myMenu = [
{ {
...@@ -196,24 +196,24 @@ block content ...@@ -196,24 +196,24 @@ block content
]; ];
+menu(myMenu) +menu(myMenu)
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/menu/menu.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/menu/menu.pug
+block-lib('label', 'Лейбл', false) +block-lib('label', 'Лейбл', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/label/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/label/readme.md
+label('Текст1') +label('Текст1')
+label('Текст2', '', 'div') +label('Текст2', '', 'div')
+label('Текст3', '', 'a')(href="/") +label('Текст3', '', 'a')(href='/')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/label/label.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/label/label.pug
+block-lib('loader', 'Загрузчик', false) +block-lib('loader', 'Загрузчик', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/loader/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/loader/readme.md
+loader() +loader()
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/loader/loader.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/loader/loader.pug
+block-lib('table', 'Таблица', false) +block-lib('table', 'Таблица', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/table/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/table/readme.md
+table() +table()
caption Таблица caption Таблица
tr tr
...@@ -235,10 +235,10 @@ block content ...@@ -235,10 +235,10 @@ block content
td Пользователь td Пользователь
td Нижняя td Нижняя
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/table/table.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/table/table.pug
+block-lib('table-responsive', 'Адаптивная таблица', false) +block-lib('table-responsive', 'Адаптивная таблица', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/table-responsive/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/table-responsive/readme.md
+table-responsive() +table-responsive()
caption Таблица caption Таблица
thead thead
...@@ -253,10 +253,10 @@ block content ...@@ -253,10 +253,10 @@ block content
td(data-label='Имя и фамилия') Джакомо Казанова td(data-label='Имя и фамилия') Джакомо Казанова
td(data-label='Тип мироощущения') Небольшая распущенность с лёгкой примесью леденящих душу извращений, чудовищной лжи и имитатора известного органа, обитого телячьей кожей. td(data-label='Тип мироощущения') Небольшая распущенность с лёгкой примесью леденящих душу извращений, чудовищной лжи и имитатора известного органа, обитого телячьей кожей.
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/table-responsive/table-responsive.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/table-responsive/table-responsive.pug
+block-lib('pagination', 'Пагинация', false) +block-lib('pagination', 'Пагинация', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/pagination/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/pagination/readme.md
+pagination() +pagination()
+pagination-item('1', '/1') +pagination-item('1', '/1')
+pagination-item('...') +pagination-item('...')
...@@ -266,33 +266,33 @@ block content ...@@ -266,33 +266,33 @@ block content
+pagination-item('...') +pagination-item('...')
+pagination-item('999', '/999') +pagination-item('999', '/999')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/pagination/pagination.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/pagination/pagination.pug
+block-lib('breadcrumbs', 'Хлебные крошки', false) +block-lib('breadcrumbs', 'Хлебные крошки', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/breadcrumbs/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/breadcrumbs/readme.md
+breadcrumbs() +breadcrumbs()
+breadcrumbs-item('Главная', '/home') +breadcrumbs-item('Главная', '/home')
+breadcrumbs-item('Услуги', '/services') +breadcrumbs-item('Услуги', '/services')
+breadcrumbs-item('Стриптиз') +breadcrumbs-item('Стриптиз')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/breadcrumbs/breadcrumbs.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/breadcrumbs/breadcrumbs.pug
+block-lib('progress', 'Прогресс', false) +block-lib('progress', 'Прогресс', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/progress/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/progress/readme.md
+progress('30', '30% (без копеек)', 'success')(aria-valuemin='0', aria-valuemax='100') +progress('30', '30% (без копеек)', 'success')(aria-valuemin='0', aria-valuemax='100')
+progress('10')(style="height:10px") +progress('10')(style='height:10px')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/progress/progress.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/progress/progress.pug
+block-lib('pie-chart', 'Круговые и секторные диаграммы', false) +block-lib('pie-chart', 'Круговые и секторные диаграммы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/pie-chart/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/pie-chart/readme.md
+pie-chart('30') +pie-chart('30')
+pie-chart('64')(data-size="120" data-border="59.9") +pie-chart('64')(data-size='120', data-border='59.9')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/pie-chart/pie-chart.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/pie-chart/pie-chart.pug
+block-lib('comment', 'Комментарий', false) +block-lib('comment', 'Комментарий', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/comment/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/comment/readme.md
+comment({ +comment({
username: 'Джокер', username: 'Джокер',
avatarURL: 'img/joker.jpg', avatarURL: 'img/joker.jpg',
...@@ -313,10 +313,10 @@ block content ...@@ -313,10 +313,10 @@ block content
content: '<p>Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.</p>', content: '<p>Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.</p>',
}) })
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/comment/comment.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/comment/comment.pug
+block-lib('embed-responsive', 'Адаптирующийся медиаконтент', false) +block-lib('embed-responsive', 'Адаптирующийся медиаконтент', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/embed-responsive/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/embed-responsive/readme.md
style. style.
@media (min-width: 768px) { @media (min-width: 768px) {
.embed-responsive-demo { .embed-responsive-demo {
...@@ -332,24 +332,24 @@ block content ...@@ -332,24 +332,24 @@ block content
padding-left: 5px; padding-left: 5px;
} }
} }
div.embed-responsive-demo .embed-responsive-demo
div.embed-responsive-demo__item .embed-responsive-demo__item
+embed-responsive('4-3') +embed-responsive('4-3')
iframe(src='https://www.youtube.com/embed/7pOr3dBFAeY', frameborder='0', allowfullscreen='') iframe(src='https://www.youtube.com/embed/7pOr3dBFAeY', frameborder='0', allowfullscreen='')
div.embed-responsive-demo__item .embed-responsive-demo__item
+embed-responsive() +embed-responsive()
iframe(src='https://www.youtube.com/embed/B0Q1rKpDNE4', frameborder='0', allowfullscreen='') iframe(src='https://www.youtube.com/embed/B0Q1rKpDNE4', frameborder='0', allowfullscreen='')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/embed-responsive/embed-responsive.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/embed-responsive/embed-responsive.pug
+block-lib('tooltip', 'Подсказки', true) +block-lib('tooltip', 'Подсказки', true)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/tooltip/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/tooltip/readme.md
p Текст и подсказка: #[+tooltip('Текст подсказки может быть длинным. Хочется, чтобы <em>внутри</em> <small>можно было</small> <i>использовать</i> <b>разметку</b>.')] p Текст и подсказка: #[+tooltip('Текст подсказки может быть длинным. Хочется, чтобы <em>внутри</em> <small>можно было</small> <i>использовать</i> <b>разметку</b>.')]
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/tooltip/tooltip.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/tooltip/tooltip.pug
+block-lib('btn', 'Кнопка', false) +block-lib('btn', 'Кнопка', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/btn/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/btn/readme.md
p. p.
#[+btn('Кнопка-ссылка')(href='/')] #[+btn('Кнопка-ссылка')(href='/')]
#[+btn('Кнопка-input', '', true)(name='submit')] #[+btn('Кнопка-input', '', true)(name='submit')]
...@@ -359,10 +359,10 @@ block content ...@@ -359,10 +359,10 @@ block content
#[+btn('Кнопка-input', '', true)(name='submit', disabled='')] #[+btn('Кнопка-input', '', true)(name='submit', disabled='')]
#[+btn('Кнопка-button', 'main')(disabled='')] #[+btn('Кнопка-button', 'main')(disabled='')]
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/btn/btn.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/btn/btn.pug
+block-lib('field-text', 'Текстовое поле', false) +block-lib('field-text', 'Текстовое поле', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-text/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-text/readme.md
+field-text({ +field-text({
title: 'Текстовое поле', title: 'Текстовое поле',
helpText: 'Подсказка под полем', helpText: 'Подсказка под полем',
...@@ -384,10 +384,10 @@ block content ...@@ -384,10 +384,10 @@ block content
}) })
+field-text() +field-text()
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-text/field-text.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-text/field-text.pug
+block-lib('field-checkbox', 'Флажок/чекбокс', false) +block-lib('field-checkbox', 'Флажок/чекбокс', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-checkbox/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-checkbox/readme.md
+field-checkbox([ +field-checkbox([
{ {
title: 'Чекбокс без группы', title: 'Чекбокс без группы',
...@@ -416,10 +416,10 @@ block content ...@@ -416,10 +416,10 @@ block content
}, },
], 'Общее необязательное название') ], 'Общее необязательное название')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-checkbox/field-checkbox.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-checkbox/field-checkbox.pug
+block-lib('field-radio', 'Радиокнопки', false) +block-lib('field-radio', 'Радиокнопки', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-radio/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-radio/readme.md
+field-radio([ +field-radio([
{ {
title: 'Первый', title: 'Первый',
...@@ -438,10 +438,10 @@ block content ...@@ -438,10 +438,10 @@ block content
}, },
], 'Общее необязательное название') ], 'Общее необязательное название')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-radio/field-radio.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-radio/field-radio.pug
+block-lib('field-toggler', 'Переключатель', false) +block-lib('field-toggler', 'Переключатель', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-toggler/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-toggler/readme.md
+field-toggler([ +field-toggler([
{ {
title: 'Одиночный переключатель', title: 'Одиночный переключатель',
...@@ -470,10 +470,10 @@ block content ...@@ -470,10 +470,10 @@ block content
}, },
], 'Две радиокнопки', true) ], 'Две радиокнопки', true)
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-toggler/field-toggler.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-toggler/field-toggler.pug
+block-lib('field-file', 'Файл', false) +block-lib('field-file', 'Файл', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-file/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-file/readme.md
+field-file({ +field-file({
title: 'Название', title: 'Название',
helpText: 'Подсказка', helpText: 'Подсказка',
...@@ -495,10 +495,10 @@ block content ...@@ -495,10 +495,10 @@ block content
}, },
}) })
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-file/field-file.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-file/field-file.pug
+block-lib('field-range', 'Ползунок', false) +block-lib('field-range', 'Ползунок', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-range/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-range/readme.md
+field-range({ +field-range({
title: 'Название', title: 'Название',
helpText: 'Подсказка', helpText: 'Подсказка',
...@@ -512,10 +512,10 @@ block content ...@@ -512,10 +512,10 @@ block content
} }
}) })
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-range/field-range.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-range/field-range.pug
+block-lib('field-select', 'Селекты', false) +block-lib('field-select', 'Селекты', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-select/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-select/readme.md
+field-select( +field-select(
'Название селекта', 'Название селекта',
{ {
...@@ -576,17 +576,17 @@ block content ...@@ -576,17 +576,17 @@ block content
'' ''
) )
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-select/field-select.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-select/field-select.pug
+block-lib('field-actions', 'Кнопки формы', false) +block-lib('field-actions', 'Кнопки формы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/field-actions/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/field-actions/readme.md
+field-actions('* — обязательные поля') +field-actions('* — обязательные поля')
+btn('Отправить') +btn('Отправить')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/field-actions/field-actions.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/field-actions/field-actions.pug
+block-lib('fields-group', 'Группа полей', false) +block-lib('fields-group', 'Группа полей', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/fields-group/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/fields-group/readme.md
+fields-group() +fields-group()
+field-text({ +field-text({
helpText: 'Подсказка', helpText: 'Подсказка',
...@@ -604,10 +604,10 @@ block content ...@@ -604,10 +604,10 @@ block content
+field-actions() +field-actions()
+btn('Отправить', 'primary') +btn('Отправить', 'primary')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/fields-group/fields-group.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/fields-group/fields-group.pug
+block-lib('form', 'Форма', true) +block-lib('form', 'Форма', true)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/form/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/form/readme.md
+form() +form()
+fieldset('Название1') +fieldset('Название1')
+field-text({ +field-text({
...@@ -638,25 +638,25 @@ block content ...@@ -638,25 +638,25 @@ block content
+field-actions() +field-actions()
+btn('Отправить', 'primary') +btn('Отправить', 'primary')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/form/form.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/form/form.pug
+block-lib('is-mobile', 'Определение мобильного устройства', false) +block-lib('is-mobile', 'Определение мобильного устройства', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/is-mobile/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/is-mobile/readme.md
+block-lib('scroll-link', 'Ссылки на якоря страницы', false) +block-lib('scroll-link', 'Ссылки на якоря страницы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/scroll-link/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/scroll-link/readme.md
+scroll-link('Описание блока <code>page</code>', '#page') +scroll-link('Описание блока <code>page</code>', '#page')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/scroll-link/scroll-link.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/scroll-link/scroll-link.pug
+block-lib('to-top-block', 'Ссылка «вверх»', false, 'to-top') +block-lib('to-top-block', 'Ссылка «вверх»', false, 'to-top')
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/to-top/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/to-top/readme.md
+to-top() +to-top()
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/to-top/to-top.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/to-top/to-top.pug
+block-lib('dropdown', 'Выпадающий элемент', false) +block-lib('dropdown', 'Выпадающий элемент', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/dropdown/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/dropdown/readme.md
pre.code pre.code
code // Факт открытия code // Факт открытия
code $('#drop-demo-01').closest('.dropdown').on('shown.nth.dropdown', function () { code $('#drop-demo-01').closest('.dropdown').on('shown.nth.dropdown', function () {
...@@ -669,8 +669,7 @@ block content ...@@ -669,8 +669,7 @@ block content
code }); code });
+dropdown('Дроп (с выводом событий в консоль)', 'drop-demo-01') +dropdown('Дроп (с выводом событий в консоль)', 'drop-demo-01')
p текст p текст
| span &nbsp;
|
+dropdown('Выпадающее меню', 'drop-demo-02', 'up, right') +dropdown('Выпадающее меню', 'drop-demo-02', 'up, right')
.menu .menu
span.menu__item span.menu__item
...@@ -680,10 +679,10 @@ block content ...@@ -680,10 +679,10 @@ block content
span.menu__item span.menu__item
a.menu__link(href='') Второй пункт a.menu__link(href='') Второй пункт
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/dropdown/dropdown.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/dropdown/dropdown.pug
+block-lib('owl-carousel', 'Карусель с <a href="http://owlcarousel2.github.io/OwlCarousel2/">owl-carousel</a>', false) +block-lib('owl-carousel', 'Карусель с <a href="http://owlcarousel2.github.io/OwlCarousel2/">owl-carousel</a>', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/owl-carousel/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/owl-carousel/readme.md
+owl-carousel('promo') +owl-carousel('promo')
div слайд1 div слайд1
div слайд2 div слайд2
...@@ -694,10 +693,10 @@ block content ...@@ -694,10 +693,10 @@ block content
div слайд7 div слайд7
div слайд8 div слайд8
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/owl-carousel/owl-carousel.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/owl-carousel/owl-carousel.pug
+block-lib('swipe', 'Карусель с <a href="https://github.com/lyfeyaj/swipe">swipe</a>', false) +block-lib('swipe', 'Карусель с <a href="https://github.com/lyfeyaj/swipe">swipe</a>', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/swipe/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/swipe/readme.md
+swipe('swipe-demo') +swipe('swipe-demo')
div слайд1 div слайд1
div слайд2 div слайд2
...@@ -708,19 +707,19 @@ block content ...@@ -708,19 +707,19 @@ block content
div слайд7 div слайд7
div слайд8 div слайд8
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/swipe/swipe.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/swipe/swipe.pug
+block-lib('nouislider', 'Выбор диапазона с <a href="https://refreshless.com/nouislider/">noUiSlider</a>', false) +block-lib('nouislider', 'Выбор диапазона с <a href="https://refreshless.com/nouislider/">noUiSlider</a>', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/nouislider/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/nouislider/readme.md
+nouislider('demo-nouislider') +nouislider('demo-nouislider')
p p
input#demo-nouislider-start(type='number', value='10') input#demo-nouislider-start(type='number', value='10')
input#demo-nouislider-end(type='number', value='80') input#demo-nouislider-end(type='number', value='80')
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/nouislider/nouislider.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/nouislider/nouislider.pug
+block-lib('off-canvas', 'Боковое меню страницы', false) +block-lib('off-canvas', 'Боковое меню страницы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/off-canvas/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/off-canvas/readme.md
p #[button.btn(type='button', data-toggle='off-canvas') Показать/скрыть боковое меню] p #[button.btn(type='button', data-toggle='off-canvas') Показать/скрыть боковое меню]
+block-lib-code() +block-lib-code()
pre.code pre.code
...@@ -734,7 +733,7 @@ block content ...@@ -734,7 +733,7 @@ block content
code a(href='#SOME_HASH', data-toggle-native='off-canvas') Показать/скрыть боковое меню и перейти на якорь code a(href='#SOME_HASH', data-toggle-native='off-canvas') Показать/скрыть боковое меню и перейти на якорь
+block-lib('modal', 'Модальное окно', false) +block-lib('modal', 'Модальное окно', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/modal/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/modal/readme.md
p Одно и то же модальное окно, в консоль выводятся события. #[button.btn(type='button', data-toggle='modal', data-target='#modal-demo-01') Показать модальное окно] #[a(href='#modal-demo-01', data-toggle='modal') Показать модальное окно] #[span(data-toggle='modal', data-target='#modal-demo-01') Показать модальное окно] p Одно и то же модальное окно, в консоль выводятся события. #[button.btn(type='button', data-toggle='modal', data-target='#modal-demo-01') Показать модальное окно] #[a(href='#modal-demo-01', data-toggle='modal') Показать модальное окно] #[span(data-toggle='modal', data-target='#modal-demo-01') Показать модальное окно]
+modal('modal-demo-01', 'Заголовок', 'some') +modal('modal-demo-01', 'Заголовок', 'some')
.modal__body .modal__body
...@@ -762,10 +761,10 @@ block content ...@@ -762,10 +761,10 @@ block content
code console.log('hidden.nth.modal'); code console.log('hidden.nth.modal');
code }); code });
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/modal/modal.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/modal/modal.pug
+block-lib('tabs', 'Табы', false) +block-lib('tabs', 'Табы', false)
include:markdown-it(linkify html='true' typographer='true' quotes='«»') blocks/tabs/readme.md include:markdown-it(linkify, html='true', typographer='true', quotes='«»') blocks/tabs/readme.md
+tabs([ +tabs([
{ {
'id': 'tab00', 'id': 'tab00',
...@@ -794,10 +793,10 @@ block content ...@@ -794,10 +793,10 @@ block content
+tabs-item('tab03') +tabs-item('tab03')
p Горами в стране, гласных и согласных живут рыбные тексты.3 p Горами в стране, гласных и согласных живут рыбные тексты.3
+block-lib-code() +block-lib-code()
include:show-code(first-line="//- Pug-файл этого блока:") blocks/tabs/tabs.pug include:show-code(first-line='//- Pug-файл этого блока:') blocks/tabs/tabs.pug
.burger.blocks-library__menu-toggler(data-toggle="off-canvas") .burger.blocks-library__menu-toggler(data-toggle='off-canvas')
span(data-toggle="off-canvas") span(data-toggle='off-canvas')
block footer block footer
...@@ -26,7 +26,7 @@ mixin alert(title, mods) ...@@ -26,7 +26,7 @@ mixin alert(title, mods)
} }
} }
div.alert(class=allMods)&attributes(attributes) .alert(class=allMods)&attributes(attributes)
if (typeof(title) !== 'undefined' && title !== '') if (typeof(title) !== 'undefined' && title !== '')
h4.alert__header!= title h4.alert__header!= title
block block
...@@ -19,7 +19,7 @@ mixin breadcrumbs(mods) ...@@ -19,7 +19,7 @@ mixin breadcrumbs(mods)
} }
} }
ul.breadcrumbs(class=allMods, aria-label="Breadcrumb", role="navigation")&attributes(attributes) ul.breadcrumbs(class=allMods, aria-label='Breadcrumb', role='navigation')&attributes(attributes)
block block
......
...@@ -45,5 +45,6 @@ mixin comment(props) ...@@ -45,5 +45,6 @@ mixin comment(props)
.comment__text .comment__text
header.comment__header #[b.comment__author= props.username] #[time.comment__date(datetime='2017-04-25T05:45') 25.04.2017 в 05:45] header.comment__header #[b.comment__author= props.username] #[time.comment__date(datetime='2017-04-25T05:45') 25.04.2017 в 05:45]
.comment__body!= props.content .comment__body!= props.content
footer.comment__footer #[a.comment__reply(href='') Reply] #[a.comment__reply(href='') Admin] footer.comment__footer.
#[a.comment__reply(href='') Reply] #[a.comment__reply(href='') Admin]
block block
<!--DEV
Для использования этого файла как шаблона:
@ @include('blocks/field-range/field-range.html')
(Нужно убрать пробел между символами @)
Подробнее: https://www.npmjs.com/package/gulp-file-include
<div class="field-range">
<div class="field-range__name">Range</div>
<div class="field-range__input-wrap">
<input class="field-range__input" type="range" min="1" max="100" step="1" value="70" id="" name="">
<div class="field-range__help-text"><code>min="1" max="100" step="1" value="70"</code>, стилизован без JS.</div>
</div>
</div>
-->
<!--DEV
Для использования этого файла как шаблона:
@ @include('blocks/field-select/field-select.html')
(Нужно убрать пробел между символами @)
Подробнее: https://www.npmjs.com/package/gulp-file-include
<label class="field-select">
<div class="field-select__name">Селект</div>
<div class="field-select__select-wrap">
<select class="field-select__select" id="" name="">
<optgroup label="Группа">
<option>Значение 1</option>
<option>Значение 2</option>
<option>Значение 3</option>
</optgroup>
<option>Значение 10</option>
</select>
<small class="field-select__help-text">Обёртка — <code>&lt;label&gt;</code>.</small>
</div>
</label>
-->
...@@ -43,10 +43,7 @@ mixin field-text(props) ...@@ -43,10 +43,7 @@ mixin field-text(props)
if(typeof(props.isTextarea) !== 'undefined' && props.isTextarea) if(typeof(props.isTextarea) !== 'undefined' && props.isTextarea)
textarea.field-text__input&attributes(props.attrs)= props.val textarea.field-text__input&attributes(props.attrs)= props.val
else else
input.field-text__input( input.field-text__input(type=(typeof(props.attrs) !== 'undefined' && props.attrs.type) ? props.attrs.type : 'text', value=props.val)&attributes(props.attrs)
type=(typeof(props.attrs) !== 'undefined' && props.attrs.type) ? props.attrs.type : 'text'
value=props.val
)&attributes(props.attrs)
if(typeof(props.helpText) !== 'undefined' && props.helpText) if(typeof(props.helpText) !== 'undefined' && props.helpText)
span.field-text__help-text!= props.helpText span.field-text__help-text!= props.helpText
block block
...@@ -12,7 +12,7 @@ mixin main-nav(selectedID) ...@@ -12,7 +12,7 @@ mixin main-nav(selectedID)
include main-nav.data.pug include main-nav.data.pug
nav.main-nav#nav&attributes(attributes) nav.main-nav#nav&attributes(attributes)
+burger('Показать главное меню', 'nav', 'main-nav--open')(class="main-nav__toggler") +burger('Показать главное меню', 'nav', 'main-nav--open')(class='main-nav__toggler')
ul.main-nav__list ul.main-nav__list
each menuItem in mainMenu each menuItem in mainMenu
li(class= selectedID == menuItem.id ? 'main-nav__item main-nav__item--active' : 'main-nav__item') li(class= selectedID == menuItem.id ? 'main-nav__item main-nav__item--active' : 'main-nav__item')
......
...@@ -27,7 +27,6 @@ mixin modal(id, title, mods) ...@@ -27,7 +27,6 @@ mixin modal(id, title, mods)
.modal__dialog(role='document') .modal__dialog(role='document')
.modal__content .modal__content
.modal__header .modal__header
span.close.modal__close(data-dismiss='modal', aria-label='Закрыть') span.close.modal__close(data-dismiss='modal', aria-label='Закрыть') #[span]
span
h4.modal__title!= title h4.modal__title!= title
block block
...@@ -28,5 +28,5 @@ mixin owl-carousel(id, mods) ...@@ -28,5 +28,5 @@ mixin owl-carousel(id, mods)
} }
} }
div.owl-carousel(id=id, class=allMods)&attributes(attributes) .owl-carousel(id=id, class=allMods)&attributes(attributes)
block block
...@@ -17,6 +17,6 @@ mixin page-header(mods) ...@@ -17,6 +17,6 @@ mixin page-header(mods)
} }
} }
header.page-header(class=allMods, role="banner")&attributes(attributes) header.page-header(class=allMods, role='banner')&attributes(attributes)
.page-header__inner .page-header__inner
block block
...@@ -23,7 +23,7 @@ mixin pagination(mods) ...@@ -23,7 +23,7 @@ mixin pagination(mods)
} }
} }
div.pagination(class=allMods, aria-label="Page navigation")&attributes(attributes) .pagination(class=allMods, aria-label='Page navigation')&attributes(attributes)
block block
......
...@@ -7,8 +7,8 @@ mixin pie-chart(percent, mods) ...@@ -7,8 +7,8 @@ mixin pie-chart(percent, mods)
//- mods {string} - список модификаторов //- mods {string} - список модификаторов
//- Вызов: //- Вызов:
+pie-chart('30', 'success') +pie-chart('30', 'success')
+pie-chart('30')(data-size="200" data-border="10") +pie-chart('30')(data-size='200' data-border='10')
+pie-chart('99', 'radial')(data-size="120" data-border="59.9") +pie-chart('99', 'radial')(data-size='120' data-border='59.9')
- -
// список модификаторов // список модификаторов
var allMods = ''; var allMods = '';
......
...@@ -8,7 +8,7 @@ mixin progress(percent, text, mods) ...@@ -8,7 +8,7 @@ mixin progress(percent, text, mods)
//- mods {string} - список модификаторов //- mods {string} - список модификаторов
//- Вызов: //- Вызов:
+progress('30', '30%', 'success')(aria-valuemin='0', aria-valuemax='100') +progress('30', '30%', 'success')(aria-valuemin='0', aria-valuemax='100')
+progress('10')(style="height: 10px") +progress('10')(style='height: 10px')
- -
// список модификаторов // список модификаторов
var allMods = ''; var allMods = '';
......
document.addEventListener('DOMContentLoaded', function(){ document.addEventListener('DOMContentLoaded', function(){
var links = document.querySelectorAll('[href^="#"][data-scroll-link]'); var links = document.querySelectorAll('[href^="#"][data-scroll-link]');
for (var i = 0; i < links.length; i++) { for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', function(e) { links[i].addEventListener('click', function(e) {
...@@ -6,7 +7,7 @@ document.addEventListener('DOMContentLoaded', function(){ ...@@ -6,7 +7,7 @@ document.addEventListener('DOMContentLoaded', function(){
if(hash && hash !== '#') { if(hash && hash !== '#') {
e.preventDefault(); e.preventDefault();
var scroll = window.pageYOffset; var scroll = window.pageYOffset;
var targetTop = getOffsetRect(document.querySelector(hash)).top; var targetTop = getOffsetRect(document.querySelector(hash)).top - 10; // С поправкой в 10px
var scrollDiff = (scroll - targetTop) * -1; var scrollDiff = (scroll - targetTop) * -1;
animate({ animate({
duration: 500, duration: 500,
......
...@@ -49,15 +49,14 @@ document.addEventListener('DOMContentLoaded', function(){ ...@@ -49,15 +49,14 @@ document.addEventListener('DOMContentLoaded', function(){
// Добавление метода .closest() (полифил, собственно) // Добавление метода .closest() (полифил, собственно)
(function(e){ (function(e){
e.closest = e.closest || function(css){ e.closest = e.closest || function(css){
var node = this; var node = this;
while (node) {
while (node) {
if (node.matches(css)) return node; if (node.matches(css)) return node;
else node = node.parentElement; else node = node.parentElement;
} }
return null; return null;
} }
})(Element.prototype); })(Element.prototype);
}); });
...@@ -36,7 +36,7 @@ mixin tabs(props, mods) ...@@ -36,7 +36,7 @@ mixin tabs(props, mods)
} }
.tabs(class=allMods)&attributes(attributes) .tabs(class=allMods)&attributes(attributes)
ul.tabs__links(role="tablist") ul.tabs__links(role='tablist')
each tab in props each tab in props
- -
var isActive = (typeof(tab.isActive) !== 'undefined' && tab.isActive) ? ' tabs__link-wrap--active' : '' var isActive = (typeof(tab.isActive) !== 'undefined' && tab.isActive) ? ' tabs__link-wrap--active' : ''
......
...@@ -13,10 +13,6 @@ block header ...@@ -13,10 +13,6 @@ block header
span Логотип span Логотип
+main-nav('1') +main-nav('1')
//- DIV.class#test-ID(id="dddd" title='ddddddd')
p.class(id='dddd' title='ddddddd')
block content block content
p Содержимое. #[a(href='blocks-demo.html') Библиотека блоков]. p Содержимое. #[a(href='blocks-demo.html') Библиотека блоков].
......
...@@ -3,19 +3,19 @@ ...@@ -3,19 +3,19 @@
include mixins.pug include mixins.pug
doctype html doctype html
html(class="no-js page", lang="ru") html(class='no-js page', lang='ru')
head head
meta(charset='utf-8') meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1') meta(name='viewport', content='width=device-width, initial-scale=1')
//- Edge и ряд мобильных браузеров автоматом преобразуют телефоны в ссылки. Отключим это. //- Edge и ряд мобильных браузеров автоматом преобразуют телефоны в ссылки. Отключим это.
meta(name="format-detection", content="telephone=no") meta(name='format-detection', content='telephone=no')
block meta block meta
title Home title Home
block head block head
link(rel="stylesheet", href="css/style.min.css") link(rel='stylesheet', href='css/style.min.css')
script. script.
document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
script script
...@@ -24,22 +24,22 @@ html(class="no-js page", lang="ru") ...@@ -24,22 +24,22 @@ html(class="no-js page", lang="ru")
body body
.off-canvas#off-canvas .off-canvas#off-canvas
aside.off-canvas__aside(role="complementary", aria-label="Меню") aside.off-canvas__aside(role='complementary', aria-label='Меню')
block off-canvas block off-canvas
main.off-canvas__page-content.components-demo.blocks-library(role="main") main.off-canvas__page-content.components-demo.blocks-library(role='main')
//- Реальный контент страницы //- Реальный контент страницы
div.page__inner .page__inner
div.page__content .page__content
block header block header
p «шапка» p «шапка»
block content block content
p содержимое страницы p содержимое страницы
div.page__footer-wrapper .page__footer-wrapper
block footer block footer
p «подвал» p «подвал»
div.off-canvas__overlay(data-toggle="off-canvas") .off-canvas__overlay(data-toggle='off-canvas')
block page-bottom block page-bottom
script(src="js/script.min.js") script(src='js/script.min.js')
...@@ -3,19 +3,19 @@ ...@@ -3,19 +3,19 @@
include mixins.pug include mixins.pug
doctype html doctype html
html(class="no-js page", lang="ru") html(class='no-js page', lang='ru')
head head
meta(charset='utf-8') meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1') meta(name='viewport', content='width=device-width, initial-scale=1')
//- Edge и ряд мобильных браузеров автоматом преобразуют телефоны в ссылки. Отключим это. //- Edge и ряд мобильных браузеров автоматом преобразуют телефоны в ссылки. Отключим это.
meta(name="format-detection", content="telephone=no") meta(name='format-detection', content='telephone=no')
block meta block meta
title Home title Home
block head block head
link(rel="stylesheet", href="css/style.min.css") link(rel='stylesheet', href='css/style.min.css')
script. script.
document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
script script
...@@ -23,15 +23,15 @@ html(class="no-js page", lang="ru") ...@@ -23,15 +23,15 @@ html(class="no-js page", lang="ru")
body body
div.page__inner .page__inner
div.page__content .page__content
block header block header
p «шапка» p «шапка»
block content block content
p содержимое страницы p содержимое страницы
div.page__footer-wrapper .page__footer-wrapper
block footer block footer
p «подвал» p «подвал»
block page-bottom block page-bottom
script(src="js/script.min.js") script(src='js/script.min.js')
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