Что такое extends в Pug (Jade)?

В Pug (ранее известном как Jade) ключевое слово "extends" используется для создания шаблонов и наследования кода. Оно позволяет создавать базовый шаблон, который может быть расширен или модифицирован другими шаблонами.

Когда мы используем ключевое слово "extends" в Pug, мы создаем расширяемый шаблон, который будет содержать общие части кода для всех наследующих шаблонов. Базовый шаблон определяется с помощью директивы "extends" в начале файла и указывает на файл, который будет расширяться.

Синтаксис для использования "extends" выглядит следующим образом:

extends имя_файла

В файле, указанном в директиве "extends", мы размещаем общие части кода, которые должны быть наследованы другими шаблонами. Эти части кода обычно содержат неизменяемую структуру страницы, такую как заголовок, навигационное меню или подвал.

Пример:

layout.pug:

html
  head
    title My Website
  body
    header
      h1 Welcome to My Website
    block content
    footer
      p Copyright © 2022 My Website

home.pug:

extends layout.pug

block content
  p This is the home page content.

about.pug:

extends layout.pug

block content
  p This is the about page content.

В этом примере у нас есть базовый шаблон "layout.pug", который содержит общую структуру страницы. Далее у нас есть два наследующих шаблона "home.pug" и "about.pug", которые расширяют базовый шаблон и определенное содержимое страницы внутри блока "content".

Когда мы рендерим "home.pug" или "about.pug", Pug автоматически подставляет содержимое из блока "content" в соответствующем месте базового шаблона. Таким образом, мы получаем готовую страницу с общей структурой и уникальным содержимым для каждой страницы.

Использование "extends" в Pug позволяет создавать модульные и переиспользуемые шаблоны, что значительно упрощает разработку и обслуживание проектов, особенно при наличии большого количества страниц.