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