При работе с Pug, популярным шаблонизатором для Node.js, вы можете использовать концепцию «блочного контента» для определения повторно используемых блоков контента в вашем макете. Эти блоки позволяют создавать в шаблонах динамические разделы, которые можно переопределять или расширять дочерними шаблонами.
Чтобы лучше понять концепцию, давайте углубимся в различные методы использования блочного содержимого в макетах Pug с примерами кода:
-
Основное содержимое блока.
В файле макета вы можете определить блок, используя ключевое слово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в макете. -
Расширение содержимого блока.
Помимо переопределения содержимого блока дочерние шаблоны также могут расширять содержимое родительского блока с помощью ключевых слов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и добавляет дополнительный контент до и после содержимого родительского блока. -
Содержимое блока по умолчанию.
Вы можете определить содержимое блока по умолчанию, которое будет использоваться, если дочерний шаблон не переопределяет его. Это делается с помощью ключевого слова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. Вы можете комбинировать эти методы для создания динамических и многократно используемых шаблонов.