Pug模板继承与拓展

Pug 支持使用 block 和 extends 关键字进行模板的继承

block代表一个代码块

一、代码块的替换

如下:便有三个代码块block scripts,block content,block foot

复制代码
//- layout.pug
html
  head
    title 我的站点 - #{title}
    block scripts
      script(src='/jquery.js')
  body
    block content
    block foot
      #footer
        p 一些页脚的内容
复制代码

 

如替换其中的代码块

在一个新的pug文件中 ,首先要用extends继承某个pug, 然后定义相同名称的代码块即可实现替换

复制代码
extends layout.pug

block scripts
  script(src='/jquery.js')
  script(src='/pets.js')

block content
  h1= title
  - var pets = ['', '']
  each petName in pets
    include pet.pug
复制代码

 

在覆盖一个代码块的同时在该代码块内添加新的代码块

复制代码
//- sub-layout.pug
extends layout.pug
//- 覆盖原有的content代码块,并添加了两个子代码块 sidebar primary
block content
  .sidebar
    block sidebar
      p 什么都没有
  .primary
    block primary
      p 什么都没有
复制代码

 

二、块内容的添补 append / prepend

prepend(向头部添加内容),或者 append(向尾部添加内容)一个块。 

下面代码实现了在 代码块head里面添加了两个script

//- page.pug
extends layout.pug

block append head
  script(src='/vendor/three.js')
  script(src='/game.js')

 

posted @   听着music睡  阅读(814)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示