
Note that you never render layout.pug directly - you still render the page layouts themselves, and they just inherit from the base template.
You define a block in the base template - optionally with default content, as we've done here - and then each template that "extends" (inherits from) that base template can override such blocks. Typical examples include ES6 template strings, or this example in Pug: Hello # )
Text interpolation / String interpolation: The insertion of variable values into a string of some kind. These templaters offer a more limited feature set, but are more widely usable. String-based templater: A template library that implements templating logic, but that has no understanding of the content it is generating - it simply concatenates together strings, potentially multiple copies of those strings with different values being used in them. It understands document structure and thus can provide useful advanced tools like mixins, as well as more secure output escaping (since it can determine the right escaping approach from the context in which a value is used), but it also means that the templater is not useful for anything other than HTML. HTML templater: A template library that's designed specifically for generating HTML. a library that implements view functionality, and potentially also a custom language for specifying it (like Pug does). View engine: Also called a "template library" or "templater", ie. View: Also called a "template", a file that contains markup (like HTML) and optionally additional instructions on how to generate snippets of HTML, such as text interpolation, loops, conditionals, includes, and so on.