前言

流行的模板

  • PHP:Smarty SimpleTemplate Xtemplate Savant

  • Java:Velocity FreeMarker Jbyte

  • C#:Dotiquid SharpDom Razor

  • Javascript:Mustache Handlebars Juicer Xtemplate EJS Jade

Jade

jade是超高性能的nodejs模板引擎,有着非常强大的API和大量杰出的特性。它主要针对node的服务端。

jade-破坏式、侵入式、强依赖(和普通的html和css无法共存)文件以.jade结尾

特性

客户端支持、代码高可读、灵活的缩进、块展开、混合、静态包含、属性改写、安全,默认代码是转义的(代码经过编译处理,以增强安全性)、运行时和编译时上下文错误报告、命令行编译jade模板(命令行编译支持)、html 5 模式 (使用 !!! 5 文档类型)、在内存中缓存(可选)、合并动态和静态标签类、可以通过 filters(过滤器) 修改树、模板继承、原生支持 Express JS、通过 each 枚举对象、数组甚至是不能枚举的对象、块注释、没有前缀的标签、AST filters、Vim SyntaxTextMate BundleScreencastshtml2jade 转换器、过滤器

过滤器

jade中,分清什么是静态的,什么是动态的?

静态的原封不动的表现在html中,动态的会转换表现。

js代码会执行,js表达式会取值,标签会转换,文本直接输出

标签后是文本,文本可以单行和多行,文本中可嵌入jade表达式;使用#{},里面是后台js表达式,“-”开头的,随后是后台js代码,几个特定的jade关键词,例如循环控制等,随后的都是后台表达式

html标签紧跟着=,后面的是js表达式

安装jade

通过npm来安装

作为包依赖在node中使用安装在本地

npm install jade

作为工具执行命令使用安装在全局

npm install jade -g

缺点

  • 可移植性差

  • 调试困难

  • 性能不是非常出色

Jade学习(一)之特性、安装的更多相关文章

  1. Elasticsearch 6.x版本全文检索学习之分布式特性介绍

    1.Elasticsearch 6.x版本全文检索学习之分布式特性介绍. 1).Elasticsearch支持集群默认,是一个分布式系统,其好处主要有两个. a.增大系统容量,如内存.磁盘.使得es集 ...

  2. InfluxDB学习之InfluxDB的安装和简介

    最近用到了 InfluxDB,在此记录下学习过程,同时也希望能够帮助到其他学习的同学. 本文主要介绍InfluxDB的功能特点以及influxDB的安装过程.更多InfluxDB详细教程请看:Infl ...

  3. Java 学习第一步-JDK安装和Java环境变量配置

    Java学习第一步——JDK安装及Java环境变量配置 [原文]  2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋 ...

  4. 跟我学习dubbo-ZooKeeper注册中心安装(2)

    注册中心 可选方案:zookeeper.Redis 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子项目,强度相 ...

  5. OpenGL学习之windows下安装opengl的glut库

    OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

  6. PHP学习笔记----IIS7下安装配置php环境

    原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...

  7. [深度学习工具]·极简安装Dlib人脸识别库

    [深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包 ...

  8. Shell学习之Shell特性(一)

    Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~use ...

  9. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  10. Docker学习之Centos7下安装

    Docker学习之Centos7下安装 centos7 64下直接使用yum安装docker环境,步骤如下: 卸载旧版本docker sudo yum remove docker docker-com ...

随机推荐

  1. sleep() 、join()、yield()有什么区别

    1sleep()方法 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行).此操作受到系统计时器和调度程序精准和准确性的影响,让其他线程有机会继续执行,但是它不释放对象锁.也就是如果有synchron ...

  2. java知识查漏补缺

    一.重写(override)和重载(overload)的区别 二者除了名字相似,其实没什么联系 范围不同:重载发生在同一个类的不同方法之间.重写发生在父类和子类自荐. 前提: 重载要求:方法名相同,参 ...

  3. PHP CI框架数据库常用操作

    例子 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Menu extends CI_Co ...

  4. SVN 清理失败解决方案

    SVN有时因各种不明原因导致清理失败,可以采取如下解决办法进行处理: 方法一: 删除根目录下隐藏文件夹“.svn” 然后在根目录文件夹 外面的空白处 检出.比如你项目文件夹名为“D:/source” ...

  5. python之注释的分类

    <1> 单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 # 我是注释,可以在里写一些功能说明之类的哦 print('hello world') < ...

  6. 使用ViewPager实现广告自动轮播的效果

    package com.loaderman.viewpgerlunbodemo; import android.os.Bundle; import android.os.Handler; import ...

  7. Custom Configuration 的两种方法:2.XmlSerializer XmlAttribute

    第二种:XmlSerializer XmlAttribute 1.CustomConfiguration.xml 2.CustomConfigurationSetting.cs 3.CustomCon ...

  8. Prism学习笔记-模块之间通信的几种方式

    在开发大型复杂系统时,我们通常会按功能将系统分成很多模块,这样模块就可以独立的并行开发.测试.部署.修改.使用Prism框架设计表现层时,我们也会遵循这个原则,按功能相关性将界面划分为多个模块,每个模 ...

  9. java里poi操作excel的工具类(兼容各版本)

    转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...

  10. CentOS7 通过 YUM 升级 VIM8

    Run 就完了: rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm ...