pug的安装与使用
说明
Pug原名不叫Pug,是大名鼎鼎的jade,后来由于商标的原因,改为Pug,哈巴狗。其实只是换个名字,语法都与jade一样。丑话说在前面,Pug有它本身的缺点——可移植性差,调试困难,性能并不出色,但使用它可以加快开发效率。本文将详细介绍pug模板引擎。
安装
1.sudo npm install jade -g
2.sudo yarn global add jade
常用命令
普通编译,会在同目录下生成编译后的 test.html 文件
jade test.jade
# --pretty | -P (大写) 美化输出的 html 使之带有缩进等
jade -P test.jade
# --out | -o <dir> 将编译后的 html 输出到指定文件夹
jade -P test.jade --out ./output
# --obj | -O <path|str> 向 jade 模板中传递变量,需要传递一个 json 或者一个 json 文件的路径
jade -P --obj '{testName: "this is tetsName"}' test.jade
jade -P -O ./config.json test.jade
# --watch | -w 监听文件变化,自动重新编译
jade -P -w test.jade
标签
- jade 中的标签不再含有 html 中的 尖括号,直接写标签名即可,无论单双标签,只写以这个标签名;
- 标签间嵌套关系使用缩进加换行实现;
标签后第一个空格后边的内容会被编译成标签内的文本内容
doctype html
html(lang="en")
head
title Document
// 通过换行加缩进实现标签嵌套
body
p 标签后的文本
// 通过 ‘:’ 实现行内的嵌套
p: a 文本
// 自定义的标签加上 ‘/’ 表示自闭和标签(html 默认自闭和标签可以不用)
foo/
属性
一般属性要添加在紧挨标签的括号里() ,多个属性用 , 隔开,() 内实际上是一个 javascript 的环境,可以在这里进行基础的运算
body
// ‘=’ 链接属性和值,多个属性用 ‘,’ 隔开
p: a(href="www.baidu.com", target="_blank") 链接
// 属性中可以做基础的 javascript 计算
p
- var link = 'www.baidu.com'
a(href=link.toUpperCase()) 链接
// 属性多的时候可以换行,这个时候可以不用逗号分隔
p: input(
type="checkbox"
name="chexkbox"
checked=true
)
p(content="<br/>") 伪代码 ‘=’ 默认是转义的
p(content!="<br/>") 伪代码 '!=' 表示不转义
class 与 style 属性
body
// 使用 '.' 链接标签和类名或者多个类名
p.p-class.p-class-add 内容
// 也可以定义变量然后,将其通过普通方式传入,可以传入数组
- var classes = ['p-class', 'p-class-1', 'p-class-2'];
p(class=classes)
// 多个 class 属性,值会累加
p.class-name(class="class-1", class=classes)
// style 属性的值可以是一个字符串也可以是一个样式对象
p(style={color: 'red', background: 'blue'})
p(style="color: red;background: blue;")
文本
body
p 这是单行的文本
p 这是多行文本
| 使用‘|’区分多行文本
| 注意同样要使用缩进
div.
'.'用来标记一块文本
可以是多行的,在这里可以
<a>写 html 标签</a>
script.
// 在这里直接写 javascript 代码
console.log('first line');
console.log('second line');
console.log('last line');
变量
- -var 用于声明变量
- {variablesName} 用来使用变量,输出的变量数据会被转码
- {variablesName} 通用用来使用变量,但是输出的变量数据不会被转码
- tagName=variablesName 标签名等于变量名,与 #{variablesName}一样,将转码后的变量值赋值为标签内容,区别在于,如果变量未定义 #{} 会返回 undefined;= 会将其忽略
- tagName!=variablesName 与 tagName=variablesName 类似,除了不转义变量值
- 如果要输出 #{} 或者 !{} 可以再其前面加上反斜杠 #{xxx} | !{xxx}
持续更新,希望支持。
来源:https://segmentfault.com/a/1190000015907031
pug的安装与使用的更多相关文章
- jade(pug)学习和使用
由于版权问题,现已改名pug.但无须担心,几乎没什么区别.就算依然使用jade也不会有太大影响. 慢慢迁移过渡即可 # 官网 https://pugjs.org # github https:// ...
- 我最喜欢的模板jade(pug)学习和使用
由于版权问题,现已改名pug.但无须担心,几乎没什么区别.就算依然使用jade也不会有太大影响. 慢慢迁移过渡即可 # 官网 https://pugjs.org # github https://gi ...
- 在vue中使用pug
安装pug npm i pug pug-loader pug-cli pug-filters -D pug :安装pug pug-loader:pug的loader pug-cli:pug 编译工具 ...
- 前端基于VUE的v-charts的曲线显示
目录 前端基于VUE的v-charts的曲线显示 1. 应用背景 2. 分析数据生产者生成 3. 取出数据消费者 4. 前端显示 4.1 安装V-charts插件 4.2 引入veline曲线插件 4 ...
- Vue-cli3 简qian易yi教程
原文地址 对于没有了解过 vue-cli3 的童鞋,建议先去看看官方的教程: 传送门 新版本的新特性 1. 插件 使用 cli 的插件,可以很快的搭建一个项目的结构.如 axios 的插件 vue-c ...
- Vue学习(十三)模版引擎算是预处理器吗?
前言 今天在看vue-loader预处理器配置相关的内容,突然看到了Pug,然后有了一个疑问:模版引擎原来是预处理器吗? 答案是:YES 说明 这里重点讨论使用不同的js模板引擎作为预处理器, 下面示 ...
- Coreseek Windows下安装调试
由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...
- nodejs学习笔记(2)--Express下安装模版引擎ejs
成功安装完express后,输入express -help,根据提示安装ejs(如下图): 根据提示-e实现安装ejs,注意此处有坑:之前安装的时候根据教程(node.js开发指南第五章5.2.2节) ...
- Strider安装(Ubuntu)
安装: git clone https://github.com/Strider-CD/strider.git && cd strider nam install 然而还是出现一大波错 ...
随机推荐
- springmvc-环境配置-架构-配合mybatis-参数绑定
1.1. Spring入门 1.1.1. Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得 ...
- 服务器的tomcat调优和jvm调化
下面讲述的是tomcat的优化,及jvm的优化 Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增 ...
- 2018-12-18-WPF-一个空的-WPF-程序有多少个窗口
title author date CreateTime categories WPF 一个空的 WPF 程序有多少个窗口 lindexi 2018-12-18 21:16:40 +0800 2018 ...
- HBase Region的定位
- odoo xml 时间搜索条件
今年 <filter string="This Year" name="year" domain="[('date','<=', time ...
- Java基础——List集合整理(脑图,源码,面试题)
常在知乎牛客网关注Java的一些面试,了解过校招社招常面哪些内容.Java集合不仅使用频率高而且在初面中也常常被问到,何止是常常,关于ArrayList的扩容,HashMap的一些底层等等都被问到烂了 ...
- (转)nodejs
在写node.js代码时,我们经常需要自己写模块(module).同时还需要在模块最后写好模块接口,声明这个模块对外暴露什么内容.实际上,node.js的模块接口有多种不同写法.这里作者对此做了个简单 ...
- 19-10-19-I
中午考试困够呛. T1 我想打矩阵快速幂,然后我咕了 T2 打T1了所以又咕了. T3 每一个黑点更新答案只有两种方式: 更新子树. 更新父链上的兄弟,叔伯,…… 于是: 把树拍在$DFS$序上. 更 ...
- Django数据库连接丢失问题
问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 1. OperationalError: (2006, 'MySQL server has gone away' ...
- KOA 学习(六)superAgent
原文地址 http://www.2cto.com/kf/201611/569080.html 基本请求 初始化一个请求可以通过调用request模块中适当的方法,然后使用.end()来发送请求,例如一 ...