Commit e637b8e6 authored by Nikolay Gromov's avatar Nikolay Gromov

Главное меню: рефакторинг

parent bb80c386
- -
var mainMenu = [ var mainMenu = [
{ {
"id": "1", "id": "0",
"name": "Главная страница", "name": "Главная страница",
"url": "/" "url": "/"
}, },
{ {
"id": "2", "id": "10",
"name": "Страницы", "name": "Страницы",
"url": "", "url": "/pages",
"childs": [ "childs": [
{ {
"id": "21", "id": "10-0",
"name": "О компании", "name": "О компании",
"url": "/about" "url": "pages/about"
}, },
{ {
"id": "22", "id": "10-10",
"name": "Услуги", "name": "Услуги",
"url": "/services", "url": "pages/services",
"childs": [ "childs": [
{ {
"id": "221", "id": "10-10-0",
"name": "Вёрстка", "name": "Вёрстка",
"url": "/serve" "url": "pages/services/serve"
}, },
{ {
"id": "221", "id": "10-10-10",
"name": "Стриптиз", "name": "Стриптиз",
"url": "/strip" "url": "pages/services/strip"
} }
] ]
} },
{
"id": "10-20",
"name": "Ещё одна страница",
"url": "pages/some"
},
] ]
}, },
{ {
"id": "3", "id": "20",
"name": "Репозиторий", "name": "Репозиторий",
"url": "https://github.com/nicothin/NTH-start-project" "url": "https://github.com/nicothin/NTH-start-project"
}, },
{ {
"id": "4", "id": "30",
"name": "Контакты автора", "name": "Контакты автора",
"url": "http://nicothin.pro/" "url": "http://nicothin.pro/"
} },
]; ];
...@@ -15,17 +15,39 @@ mixin main-nav(selectedID) ...@@ -15,17 +15,39 @@ mixin main-nav(selectedID)
+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') +main-nav-item(selectedID, menuItem, 1)
a.main-nav__link(href=menuItem.url)= menuItem.name
if (typeof(menuItem.childs) !== 'undefined' && menuItem.childs) if (typeof(menuItem.childs) !== 'undefined' && menuItem.childs)
.main-nav__sublist-wrapper.main-nav__sublist-wrapper--lvl-2 +main-nav-sublist-wrapper(2)
ul.main-nav__list.main-nav__list--lvl-2 each menuItem2 in menuItem.childs
each menuItem2 in menuItem.childs +main-nav-item(selectedID, menuItem2, 2)
li.main-nav__item.main-nav__item--lvl-2 if (typeof(menuItem2.childs) !== 'undefined' && menuItem2.childs)
a.main-nav__link.main-nav__link--lvl-2(href=menuItem2.url)= menuItem2.name +main-nav-sublist-wrapper(3)
if (typeof(menuItem2.childs) !== 'undefined' && menuItem2.childs) each menuItem3 in menuItem2.childs
.main-nav__sublist-wrapper.main-nav__sublist-wrapper--lvl-3 +main-nav-item(selectedID, menuItem3, 3)
ul.main-nav__list.main-nav__list--lvl-3
each menuItem3 in menuItem2.childs mixin main-nav-item(selectedID, item, level)
li.main-nav__item.main-nav__item--lvl-3 -
a.main-nav__link.main-nav__link--lvl-3(href=menuItem3.url)= menuItem3.name var thisItemClass = 'main-nav__item';
var thisLinkClass = 'main-nav__link';
if(selectedID == item.id) {
thisItemClass += ' main-nav__item--active';
}
if(item.childs) {
thisItemClass += ' main-nav__item--has-child';
}
if(level > 1) {
thisItemClass += ' main-nav__item--lvl-' + level;
thisLinkClass += ' main-nav__link--lvl-' + level;
}
li(class= thisItemClass)
a(class= thisLinkClass, href=item.url)= item.name
block
mixin main-nav-sublist-wrapper(level)
-
var divClass = 'main-nav__sublist-wrapper main-nav__sublist-wrapper--lvl-' + level;
var listClass = 'main-nav__list main-nav__list--lvl-' + level;
div(class= divClass)
ul(class= listClass)
block
...@@ -11,7 +11,7 @@ block header ...@@ -11,7 +11,7 @@ block header
+page-header() +page-header()
+logo('/') +logo('/')
span Логотип span Логотип
+main-nav('1') +main-nav('10')
block content block content
p Содержимое. #[a(href='blocks-demo.html') Библиотека блоков]. p Содержимое. #[a(href='blocks-demo.html') Библиотека блоков].
......
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