Исследование блочного содержимого в макетах Pug: подробное руководство

При работе с Pug, популярным шаблонизатором для Node.js, вы можете использовать концепцию «блочного контента» для определения повторно используемых блоков контента в вашем макете. Эти блоки позволяют создавать в шаблонах динамические разделы, которые можно переопределять или расширять дочерними шаблонами.

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

  1. Основное содержимое блока.
    В файле макета вы можете определить блок, используя ключевое слово block, за которым следует имя блока. Этот блок затем может быть переопределен дочерними шаблонами. Вот пример:

    // layout.pug
    html
     head
       title My Website
     body
       block content

    В дочернем шаблоне вы можете переопределить блок content, используя ключевое слово extends, и определить содержимое блока следующим образом:

    // child.pug
    extends layout.pug
    block content
     h1 Welcome to My Website
     p This is some content.

    block contentв дочернем шаблоне заменит соответствующий block contentв макете.

  2. Расширение содержимого блока.
    Помимо переопределения содержимого блока дочерние шаблоны также могут расширять содержимое родительского блока с помощью ключевых слов block appendи block prepend.. Это позволяет добавлять контент до или после содержимого родительского блока. Вот пример:

    // layout.pug
    html
     head
       title My Website
     body
       block content
    // child.pug
    extends layout.pug
    block append content
     p This content is appended after the parent block.
    block prepend content
     p This content is prepended before the parent block.

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

  3. Содержимое блока по умолчанию.
    Вы можете определить содержимое блока по умолчанию, которое будет использоваться, если дочерний шаблон не переопределяет его. Это делается с помощью ключевого слова block, за которым следует значение по умолчанию. Вот пример:

    // layout.pug
    html
     head
       title My Website
     body
       block content
         p This is the default content.
    // child.pug
    extends layout.pug
    // No block content defined in the child template

    Если дочерний шаблон не определяет блок content, будет использоваться содержимое по умолчанию из шаблона макета.

Это некоторые методы использования блочного содержимого в макетах Pug. Вы можете комбинировать эти методы для создания динамических и многократно используемых шаблонов.