html模板引擎jade的使用

jade语法:

#{xxx}  //嵌入数据
p= xxx  //嵌入数据
p #{xx} //嵌入数据

标签 html    // 翻译为<html></html>
div#test     // <div id="test"></div>
div.bb-dd    // <div class="bb-dd"></div>

div#bb.aa.cc //也可以的,类似emmet的语法

#content
.item
// <div id="content"><div class="item"></div></div>

p 啊噢! // <p>啊噢!</p>

p
    | foo bar baz
    | rawr rawr
    | go jade go
//输出大段文本内容  <p>foo bar baz rawr.....</p>

输出 #{}转义  p \#{something}   // <p>#{something}</p>
输出 \  使用//不转义执行script
- var html = "<script>console.log(‘oo‘); $(function(){console.log(‘ye‘);});</script>"
    | !{html}

//执行js
script

    | console.log(‘yy‘);
    | console.log(‘dd‘);

或者
script.
        console.log(‘aa‘);
        console.log(‘bb‘);
        console.log(‘cc‘);
        function add(a,b){
            return a+b;
        }
        add(1,3);

//引入css文件
link(rel=‘stylesheet‘, href=‘/stylesheets/style.css‘)
script(src=‘/jquery.js‘)

注释:
//just some paragraphs   单行注释    解释渲染为 <!-- just some paragraphs -->
不输出到最终html文件的注释
//- will not output within markup

//条件输出 注意缩进
- var friends = 10
case friends
    when 0
        p 没有盆友
    when 1
        p 你有1个盆友
    when default
        p 你有#{friends}个盆友

//或者这样
- var arr = 0
case friends
    when 0: p 没有盆友
    when 1: p 你有1个盆友

//元素多个属性
  input(name=‘user[name]‘ autofocus=‘autofocus‘)
//或者用逗号 input(type="checkbox", checked)

a标签
      a(href=‘/user/‘ + user.id)= user.name
或者  a(href=‘/user/#{user.id}‘)= user.name

class 属性是一个特殊的属性,你可以直接传递一个数组,比如 bodyClasses = [‘user‘, ‘authenticated‘] :
body(class=bodyClasses)

文档类型
!!! 5  或者  !!! html  或者   doctype html

执行代码 ,逻辑控制
jade支持三种类型的可执行代码
1. 前缀 -, 这是不会被输出的

- var foo = ‘bar‘;

- for (var key in obj)   //条件或循环
  p= obj[key]

- if (foo)
  ul
    li yay
    li foo
    li worked
- else
  p oh no! didnt work

- if (items.length)
  ul
    - items.forEach(function(item){
      li= item
    - })

2.前缀一个=  返回一个值
- var foo = ‘bar‘
= foo
h1= foo

// = 输出的代码默认是转义的,如果想直接输出不转义的值可以使用 !=

if, else if, else, until, while, unless 它们是普通的javascript代码
同时 Jade 还是支持了一些特殊的标签,它们可以让模板更加易于理解,其中之一就是 each

循环:
语法  each VAL[, KEY] in OBJ

- var items = ["one", "two", "three"]
each item in items
  li= item

//带上索引
each item, i in items
  li #{item}: #{i}

键值对
- var obj = { foo: ‘bar‘ }
each val, key in obj
  li #{key}: #{val}

- var foo = {one:11,two:22,three:33}
each val,key in foo
    p #{key}
        span #{val}

for user in users
    for role in user.roles
        li= role

条件语句:
for user in users
     if user.role == ‘admin‘
        p #{user.name} is an admin
      else
        p= user.name

for user in users
      - if (user.role == ‘admin‘)
        p #{user.name} is an admin
      - else
        p= user.name

模板继承:
block xxx 在子模板中实现

子模板中继承时 使用 extends xxx 指定

实现block时默认会替换block 块
也可以使用
block append 或 block prepend 在块的前面或者后面追加

包含 使用 include xxx/xx
比如:
./layout.jade
./includes/
  ./head.jade
  ./tail.jade

此时layout.jade
html
      include includes/head
      body
        h1 My Site
        p Welcome to my super amazing site.
        include includes/foot

或者给定后缀扩展名
html
  head
    //- css and js have simple filters that wrap them in
        <style> and <script> tags, respectively
    include stylesheet.css
时间: 2024-08-11 10:20:33

html模板引擎jade的使用的相关文章

js 模板引擎 jade使用语法

Jade是一款高性能简洁易懂的模板引擎,Jade是Haml的Javascript实现,在服务端(NodeJS)及客户端均有支持. 功能 · 客户端支持 · 超强的可读性 · 灵活易用的缩进 · 块扩展 · 代码默认经过编码处理以增强安全性 · 编译及运行时的上下文错误报告 · 命令行编译支持 · HTML5模式(使用!!!5文档类型) · 可选的内存缓存 · 联合动态和静态标记类 · 利用过滤器解析树的处理 · 支持 Express JS · 利用each透明的循环objects,arrays甚

nodejs学习(二) ---- express中使用模板引擎jade

系列教程,上一节教程  express+nodejs快速创建一个项目 在创建一个项目后,views目录下的文件后缀为 .jade . 打开 index.jade,具体内容如下图(忽略 header.jade 和 footer.jade,下面教程会一步步创建) 页面解析出的样子如下图.完全是html标签 一.jade 模板引擎 介绍 模板引擎是一个库,或者一个使用一定的规则或者语言来解释数据并渲染视图的框架.模板引擎处理过的最终结果是一个视图页面,也就是html页面或者用户图形界面GUI.在MVC

学习前端模板引擎 jade (一)

一.为什么要学习jade? 通常大部分前端开发工作者一开始步入前端开发的时候,都是直接简单的写html页面然后丢给后台开发,后台开发在来嵌入模版. 对于日益庞大的前端页面来说,还是用老的字符串拼接的方法来嵌入html内容已经不适应当下的开发趋势了. 废话不多说,直接切入正题. 二.开始装jade. jade基于nodejs的开发环境,所以我们首先要安装nodejs,nodejs的安装方法其实还是挺复杂的,所以请大家自己去百度或者google,省事可以直接去nodejs的官方网站下载nodejs的

nodejs 模板引擎jade的简单使用

1.jade html head style script body div ul li li jade1.js var jade=require('jade'); var str=jade.renderFile('./view/1.jade',{pretty:true}); console.log(str); 项目部署: 输出结果:

Jade 模板引擎使用

在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模板引用 (Extends) 在 Express 中调用 jade 模板引擎 var express = require('express'); var http = require('http'); var app = express(); app.set('view engine', 'jade'

Jade(Pug) 模板引擎使用文档

本篇内容 在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模板引用 (Extends) 在 Express 中调用 jade 模板引擎 var express = require('express'); var http = require('http'); var app = express(); app.set('view engine', '

jade模板引擎

jade是使用JavaScript实现,可供nodejs使用的高性能模板引擎(性能高不高,有些争议.姑且称之为高性能吧!).模板引擎有很多,主要使用比较广泛的是jade和ejs,modejs项目默认使用jade作为模板引擎,我也就不多说了至于如何选择,还是得就事论事综合各种因素来考虑.在此不对优缺点进行分析.插一句嘴,ejs的语法更像jsp.asp这样的技术而jade更像python的语法风格,缩进来缩进去,有点绕.不过这并不影响代码的可读性(我是这么认为的).不管是jade还是ejs语法都比较

模板引擎之-jade

##### 首先我们安装jade模板引擎并编译`npm install jade --global`在项目文件夹下创建一个`index.jade`文件,并且写入```doctypehtml head title imooc jade study body h1 imooc jade study ```然后在命令行下执行`jade -P index.jade `参数大写P表示格式化的编译jade文件.##### 一.基础篇1.标签直接写一个标签名就可以了,标签里面的内容只需要在标签后空一个格写文本

[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