Что такое extends в Pug (Jade)?
описано же нормально в https://pugjs.org/language/extends.html
extends описывает шаблон (предок или раскладку), и выхлоп будет обёрнут в этот базовый шаблон, при этом текущий шаблон может заменить любые блоки в шаблоне-предке.
Наследование шаблонов может иметь любую глубину.
Обычно полезно, чтобы создать шаблон для разных элементов и его уточнения для некоторых типов оных.
Ну и для внедрения раскладок (layouts).
Воспринимайте просто как наследование, где потомок может переопределять блоки предка.
Используется так:
1. Создается общий шаблон layout.pug с инклудами header.pug, footer.pug.
2. Создаются подшаблоны main.pug, contact.pug, cart.pug, которые "расширяют" шаблон layout.pug. Т.е. наследуют его блоки.
3. Путем переопределения содержимого блоков в подшаблонах получаются новые шаблоны, с общим предком layout.pug. Т.е. при необходимости правок удобно изменить только layout.pug, не затрагивая все шаблоны.
Если официальной справки недостаточно, то вот неплохая статейка:
www.reclamare.ua/blog/jade-preprocessor-html-i-sha...