[js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法

2024-06-20 02:58

本文主要是介绍[js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境准备:

全局安装jade: npm install jade -g

初始化项目package.json: npm init --yes

安装完成之后,可以使用 jade --help 查看jade的命令行用法

一、在项目目录下新建index.jade文件

inde.jade代码:

1 doctype html
2 html
3     head
4         meta(charset='utf-8')
5         title
6     body
7         h3 欢迎学习jade

语法规则:

1, 标签按照html的缩进格式写

2,标签的属性可以采用圆括号

3,如果标签有内容,可以直接写在标签的后面

然后在命令行用 jade -P index.jade 把index.jade文件编译成index.html文件,-P( 把代码整理成缩进格式的,如果不带这个参数,index.html就是压缩格式,不利于阅读)

编译之后的index.html代码:

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6   </head>
 7   <body>
 8     <h3>欢迎学习jade</h3>
 9   </body>
10 </html>

二、class,id等其他属性与多行文本的书写

新建index2.jade文件,代码如下:

 1 doctype html
 2 html
 3     head
 4         meta(charset='utf8')
 5         title jade template engine
 6     body
 7         h1 jade template engine
 8         h1 jade template engine
 9         h1 jade template engine
10         h1 jade template engine
11         div#box.box1.box2(class='box3')
12         #abc.box1.box2.box3
13         h3.box1.box2(class='abc def')
14         a(href='http://www.taobao.com',
15         target = 'blank') 淘宝
16         input(type='button', value='点我')
17         br
18         p.
19             1,this is
20             <strong>hello</strong>
21             2,test
22             3,string
23         p
24             |   1, this is
25             strong hello
26             |   2, test
27             |   3, test string

执行编译命令:jade -P <index2.jade> ghostwu.html   把index2.jade编译成ghostwu.html文件,编译之后的代码如下:

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <meta charset="utf8">
 5     <title>jade template engine</title>
 6   </head>
 7   <body>
 8     <h1>jade template engine</h1>
 9     <h1>jade template engine</h1>
10     <h1>jade template engine</h1>
11     <h1>jade template engine</h1>
12     <div id="box" class="box1 box2 box3"></div>
13     <div id="abc" class="box1 box2 box3"></div>
14     <h3 class="box1 box2 abc def"></h3><a href="http://www.taobao.com" target="blank">淘宝</a>
15     <input type="button" value="点我"><br>
16     <p>
17       1,this is
18       <strong>hello</strong>
19       2,test
20       3,string
21     </p>
22     <p>  1, this is<strong>hello</strong>  2, test
23         3, test string
24     </p>
25   </body>
26 </html>

1,div#box.box1.box2(class='box3')  这种写法是emmet的写法 #就是id属性 点(.)就是class属性 括号也是属性写法

2,#abc.box1.box2.box3,全面没有给元素标签名称,默认就是给div标签加上这些属性

3,多行文本的两种写法

p.
1,this is
<strong>hello</strong>
2,test
3,string
多行文本第1种写法:p标签后面要跟一个. 里面用原始的html标签写法
p
| 1, this is
strong hello
| 2, test
| 3, test string
多行文本第2种写法: 文本前面用竖线 ( | ),标签后面跟内容 
三、注释
jade模板代码:
 1 doctype html
 2 html
 3     head
 4         meta(charset='utf8')
 5         title jade模板引擎学习-by ghostwu
 6     body
 7         h3 单行注释
 8         // div.box.box2 这是一段div
 9         h3 不会编译到html文件的注释
10         //- div#box.box2.box3
11         h3 块注释,也叫多行注释
12         //- 
13             input(type='checkbox', name='meinv', value='仙女') 仙女
14             input(type='checkbox', name='meinv', value='御姐') 御姐
15         h3 这里不是注释
16         input(type='checkbox', name='meinv', value='仙女')
17         | 仙女
18         input(type='checkbox', name='meinv', value='御姐')
19         | 御姐

编译之后:

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <meta charset="utf8">
 5     <title>jade模板引擎学习-by ghostwu</title>
 6   </head>
 7   <body>
 8     <h3>单行注释</h3>
 9     <!-- div.box.box2 这是一段div-->
10     <h3>不会编译到html文件的注释</h3>
11     <h3>块注释,也叫多行注释</h3>
12     <h3>这里不是注释</h3>
13     <input type="checkbox" name="meinv" value="仙女">仙女
14     <input type="checkbox" name="meinv" value="御姐">御姐
15   </body>
16 </html>

1,单行注释

// div.box.box2 这是一段div

2,只在jade中注释,不会被编译到html文件

//- div#box.box2.box3

3,块注释( 多行文本注释 ),被注释的内容要另起一行

4,checkbox后面的显示文字部分 要注意,不要挨着属性的后面,要另起一行,写在竖线的后面

四、jade模板实战菜单

doctype html
html
head
meta(charset='utf8')
title jade模板引擎学习-by ghostwu
style.
* { margin : 0; padding: 0; }
li { list-style-type: none; }
a { text-decoration: none; color: white; }
#nav { width:980px; height: 34px; margin:20px auto; line-height:34px; background:#800;}
#nav li { float:left; }
#nav li.active { background:red; }
#nav li:hover { background:#09f; }
#nav li a{ padding: 5px 10px; }
body
div#nav
ul
li.active
a(href='javascript:;') 首页
li
a(href='javascript:;') 玄幻小说
li
a(href='javascript:;') 修真小说
li
a(href='javascript:;') 都世小说
li
a(href='javascript:;') 科幻小说
li
a(href='javascript:;') 网游小说

编译( jade index.jade -P -w )之后的效果: -w: 实时监控文件的修改,保存之后立刻刷新结果,也就是现代前端开发中很流行的热加载技术

 五、解释变量 

 1 doctype html
 2 html
 3     head
 4         meta(charset='utf8')
 5         - var title = 'jade模板引擎学习-by ghostwu';
 6         title #{title.toUpperCase()}
 7         style.
 8             * { margin : 0; padding: 0; }
 9             li { list-style-type: none; }
10             a { text-decoration: none; color: white; }
11             #nav { width:980px; height: 34px; margin:20px auto; line-height:34px; background:#800;}
12             #nav li { float:left; }
13             #nav li.active { background:red; }
14             #nav li:hover { background:#09f; }
15             #nav li a{ padding: 5px 10px; }
16     body
17         div#nav
18             ul
19                 li.active
20                     a(href='javascript:;') 首页
21                 li
22                     a(href='javascript:;') 玄幻小说
23                 li
24                     a(href='javascript:;') 修真小说
25                 li
26                     a(href='javascript:;') 都世小说
27                 li
28                     a(href='javascript:;') 科幻小说
29                 li
30                     a(href='javascript:;') 网游小说

#{}: 可以解释变量, toUpperCase():变量转大写

把json文件的数据在编译的时候传递到模板,

新建data.json文件数据

{
"content" : "跟着ghostwu学习jade"
}
index2.jade文件模板:
1 doctype html
2 html
3     head
4         meta(charset='utf8')
5         - var title = 'jade模板引擎学习-by ghostwu';
6         title #{title.toUpperCase()}
7     body
8         h3 #{content}

编译命令:jade index2.jade -P -O data.json  -O 指定一个json文件,把json文件的数据传递到模板

编译后的结果:

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <meta charset="utf8">
 5     <title>JADE模板引擎学习-BY GHOSTWU</title>
 6   </head>
 7   <body>
 8     <h3>跟着ghostwu学习jade</h3>
 9   </body>
10 </html>

这篇关于[js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076912

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二