Как переопределять класс на каждой странице jade?

В языке шаблонов Jade, который называется Pug с версии 2.0, есть несколько способов переопределять класс на каждой странице. Рассмотрим каждый из них подробнее.

  1. Использование глобальных переменных:
  • Установите глобальную переменную в вашем приложении Express или другом фреймворке перед передачей шаблона Pug. Например, app.locals.className = 'my-class'.
  • Затем в вашем шаблоне Pug можно использовать эту переменную, чтобы переопределить класс на каждой странице. Например,
     html
       head
         //- ...
       body(class=className)
         //- ...
  • Теперь класс my-class будет применен к body на каждой странице.
  1. Использование блоков и наследования:
  • Определите базовый шаблон pug, который будет использоваться для всех страниц. Например, layout.pug.
  • В базовом шаблоне определите блок, в котором будет указан класс для каждой страницы:
     html
       head
         //- ...
       body(class=block('pageClass'))
         block content
  • В каждом страницы, которые расширяют базовый шаблон, укажите значение класса в блоке pageClass:
     extends layout.pug

     block pageClass
       //- class for this page
       - var pageClass = 'my-page-class'

     block content
       //- ...
  • Теперь класс my-page-class будет применен к body в этой странице, и вы можете переопределить его для каждой страницы.
  1. Использование миксинов:
  • Определите миксин в отдельном файле, который будет позволять переопределять класс на каждой странице. Например, в файле mixins.pug:
     mixin bodyClass(className)
       body(class=className)
         //- ...
  • В вашем шаблоне Pug подключите этот файл и вызовите миксин с нужным классом:
     include mixins.pug

     +bodyClass('my-class')
  • Теперь класс my-class будет применен к body на каждой странице, и вы можете легко изменить его вызовом миксина с другим классом.

Все эти способы позволяют легко переопределять класс на каждой странице в вашем проекте, в зависимости от ваших потребностей и предпочтений.