Skin: thisSite.tmpl Минималистичный макет дизайна на базе Bootstrap v3.
Минималистичный макет дизайна на базе Bootstrap v3 позволяет "из коробки" создавать проекты с основным горизонтальным меню, и дополнительным боковым меню с хорошей масштабируемостью.
Что это?
Макет дизайна на базе Bootstrap v3 замещает дефолтный скин PmWiki и решает следующие задачи:
- базируется на фреймворке Bootstrap v3.4.1, «готовит почву» для применения всех его возможностей;
- «из коробки» позволяет формировать разнообразную навигацию сайта, достаточную для создания URL-структуры большинства проектов;
- использует LessCompiler, что позволяет верстать макет online.
Макет дизайна удобно использовать в следующих целях:
- как основной дизайн для небольших проектов;
- для создания прототипа сайта с работающей навигацией;
- как основу для разработки полноценного уникального проекта при итерационной разработке.
Демо
Демонстрацией работы макета является настоящий сайт. Он работает на макете thisSite.tmpl.
Техническая информация
Семантика макета
<body> <header> <nav>...</nav> // optional </header> <aside>...</aside> // optional <main> <div class='breadcrumbs'>...</div> // optional <article class='ph-{$Group}'> <header> <time pubdate datetime="{$Created}" title='дата публикации'>{$Created}</time> <h1>{$Titlespaced} <small>{$Description}</small></h1> // optional </header> <div id='wikitext'>...</div> </article> </main> <footer>...</footer> </body>
Основное меню <nav>
Пункты меню выводятся, со страницы MainMenu, если она существует. Возможно создавать двухуровневые раскрывающиеся меню, см. MainMenu-Template.
См. также:
Примеры формирования меню через Toggles
Левое меню <aside>
Выводится, если:
- найдена хотя бы одна из страниц
ThisSite/Aside-{$Group}-{$Name}
,ThisSite/Aside-{$Group}
,ThisSite/Aside
. Выводится содержимое первой найденной страницы. - не запрещено директивой
(:noaside:)
.
Если не выводится, <main> растягивается на всю доступную ширину.
Логика позволяет создавать общее меню для всего сайта (ThisSite/Aside
), отдельное меню для текущей группы (ThisSite/Aside-{$Group}
) или даже страницы (ThisSite/Aside-{$Group}-{$Name}
)
Меню адаптировано под использование Toggles (кнопки и аккордеоны), благодаря чему есть возможность формировать его в различной стилистике «из коробки». См. Примеры формирования меню через Toggles.
Хлебные крошки <div class='breadcrumbs'>
Хлебные крошки не выводятся на корневых страницах Групп (т.е. страницах вида Name.Name ), а также могут быть запрещены директивой (:nobread:)
.
Дальнейшая логика следующая:
- если в корневой странице текущей Группы существует WikiTrails и текущая страница указана в ней, то хлебные крошки выводятся по пути этого WikiTrail;
- иначе, хлебные крошки выводятся от корня сайта до текущей страницы через ее Группу и родительскую страницу (если данная страница является дочерней по определенным
$BaseNamePatterns
, см. Config)
Или, простыми словами:
- по-умолчанию крошки выводятся везде, кроме корневых страниц Групп и страниц с запрещающей директивой
(:nobread:)
; - если в корневой странице Группы существует "карта раздела", то крошки генерятся на ее основе;
- иначе просто на основе вложенности в Группу, плюс дочерние страницы под Родительской.
Блок основного контента <article class='ph-{$Group}'>
По-умолчанию PmWiki выводит интерпретированный wiki-код страницы в блоке <div id='wikitext'>. Однако, в настоящем макете используется дополнительная обертка в виде <article>. Зачем?
- внутрь блока добавлен SEO-угодный вывод section > h1, с опциональной возможностью отключения;
class='ph-{$Group}'
позволяет удобно индивидуализировать внешний вид Групп сайта через CSS;- в режиме редактирования существует также <div id='preview'>, требующий стилизации, идентичной <div id='wikitext'>.
Другими словами, обертка нужна для того, чтобы :
- можно было вносить CSS-корректировки на уровне раздела сайта ( example.com/SomePage/* )
- обеспечить стилизацию режима предпросмотра (чтобы к нему применялись те же стили, что и к основному контенту).
Заголовок <h1>
Основной заголовок страницы формируется из <tiltle> и <description> страницы автоматически. Он может быть заменен вручную, для чего необходимо его сначала отключить командой (:notitle:)
, а затем сформировать новый заголовок.
Список директив макета
(:noheader:)
- скрыть header(:noaside:)
- скрыть левую панель(:nodate:)
- скрыть дату публикации статьи(:notitle:)
- скрыть заголовок h1(:nobread:)
- скрыть хлебные крошки(:nofooter:)
- скрыть footer
Рекомендации по верстке
Где лучше писать CSS/LESS-код?
см. Дизайн и верстка
Каковы основные принципы CSS-верстки thisSite.tmpl?
Их несколько:
- используйте селектор
main > article { ... }
для описания всех контентных стилей - используйте селекторы вида
main > article.News { ... }
для описания отличий разделов (Групп) сайта
Служебная информация
- Status
- stable
- Core
- yes
- Version
- 20200423
Todo:git
- провести еще одну ревизию thisSite.less
- добавить в макет Поиск по сайту. Но сначала, очевидно, надо научить его искать по Title