diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 907a705a..00000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,45 +0,0 @@
-## 如何贡献项目
-
-领取或创建新的 [Issue](https://github.com/lingcoder/OnJava8/issues),如 [issue 14](https://github.com/lingcoder/OnJava8/issues/14) ,在编辑栏的右侧添加自己为 `Assignee`。
-
-在 [GitHub](https://github.com/lingcoder/OnJava8/fork) 上 `fork` 项目到自己的仓库,你的如 `user_name/OnJava8`,然后 `clone` 到本地,并设置用户信息。
-
-```bash
-$ git clone git@github.com:user_name/OnJava8.git
-
-$ cd OnJava8
-```
-
-修改代码后提交,并推送到自己的仓库,注意修改提交消息为对应 Issue 号和描述。
-
-```bash
-# 更新内容
-
-$ git commit -a -s
-
-# 在提交对话框里添加类似如下内容 "Fix issue #14: 描述你的修改内容"
-
-$ git push
-```
-
-在 [GitHub](https://github.com/lingcoder/OnJava8/pulls) 上提交 `Pull Request`,添加标签,并邀请维护者进行 `Review`。
-
-定期使用源项目仓库内容同步更新自己仓库的内容。
-
-```bash
-$ git remote add upstream https://github.com/lingcoder/OnJava8
-
-$ git fetch upstream
-
-$ git rebase upstream/master
-
-$ git push -f origin master
-```
-
-## 视频演示教程
-
-- https://www.bilibili.com/video/av58040840
-
-## 排版规范
-
-本开源书籍排版布局和翻译风格上参考**阮一峰**老师的 [中文技术文档的写作规范](https://github.com/ruanyf/document-style-guide)
diff --git a/README.md b/README.md
index fdd8b68c..be0417e7 100644
--- a/README.md
+++ b/README.md
@@ -1,137 +1,29 @@
# 《On Java 8》中文版
-## 书籍简介
+## 最新动态
-* 本书原作者为 [美] Bruce Eckel,即《Java 编程思想》的作者。
-* 本书是事实上的 《Java 编程思想》第五版。
-* 《Java 编程思想》第四版基于 JAVA **5** 版本;《On Java 8》 基于 JAVA **8** 版本。
+《ON JAVA 中文版》终于上市了!推荐大家去京东购买:https://u.jd.com/ZwXIEMn ,新书首发,价格也比较美丽。
+值得一提的是,为了与时俱进,作者也增补Java 11、Java17的相关内容,很多内容都非常贴合实际的开发场景,知识点非常细致,可以说覆盖了市面其他Java书90%的内容。
-## 传送门
+随书配套视频也很精良!4位行业内的顶级大佬为这本书录制了配套教程,尤其是对初学者十分友好,重点知识都帮你划出来了。
-- 目录阅读:[进入](https://github.com/LingCoder/OnJava8/blob/master/SUMMARY.md)
+——————————————
-- GitHub Pages 完整阅读:[进入](https://lingcoder.github.io/OnJava8/)
-
-- Gitee Pages 完整阅读:[进入](https://lingcoder.gitee.io/onjava8/)
-
-
-## 翻译进度
-
-- [x] [前言](docs/book/00-Preface.md)
-- [x] [简介](docs/book/00-Introduction.md)
-- [x] [第一章 对象的概念](docs/book/01-What-is-an-Object.md)
-- [x] [第二章 安装Java和本书用例](docs/book/02-Installing-Java-and-the-Book-Examples.md)
-- [x] [第三章 万物皆对象](docs/book/03-Objects-Everywhere.md)
-- [x] [第四章 运算符](docs/book/04-Operators.md)
-- [x] [第五章 控制流](docs/book/05-Control-Flow.md)
-- [x] [第六章 初始化和清理](docs/book/06-Housekeeping.md)
-- [x] [第七章 封装](docs/book/07-Implementation-Hiding.md)
-- [x] [第八章 复用](docs/book/08-Reuse.md)
-- [x] [第九章 多态](docs/book/09-Polymorphism.md)
-- [x] [第十章 接口](docs/book/10-Interfaces.md)
-- [x] [第十一章 内部类](docs/book/11-Inner-Classes.md)
-- [x] [第十二章 集合](docs/book/12-Collections.md)
-- [x] [第十三章 函数式编程](docs/book/13-Functional-Programming.md)
-- [x] [第十四章 流式编程](docs/book/14-Streams.md)
-- [x] [第十五章 异常](docs/book/15-Exceptions.md)
-- [ ] [第十六章 代码校验](docs/book/16-Validating-Your-Code.md)
-- [ ] [第十七章 文件](docs/book/17-Files.md)
-- [x] [第十八章 字符串](docs/book/18-Strings.md)
-- [ ] [第十九章 类型信息](docs/book/19-Type-Information.md)
-- [ ] [第二十章 泛型](docs/book/20-Generics.md)
-- [ ] [第二十一章 数组](docs/book/21-Arrays.md)
-- [ ] [第二十二章 枚举](docs/book/22-Enumerations.md)
-- [x] [第二十三章 注解](docs/book/23-Annotations.md)
-- [ ] [第二十四章 并发编程](docs/book/24-Concurrent-Programming.md)
-- [ ] [第二十五章 设计模式](docs/book/25-Patterns.md)
-- [x] [附录:补充](docs/book/Appendix-Supplements.md)
-- [x] [附录:编程指南](docs/book/Appendix-Programming-Guidelines.md)
-- [ ] [附录:文档注释](docs/book/Appendix-Javadoc.md)
-- [ ] [附录:对象传递和返回](docs/book/Appendix-Passing-and-Returning-Objects.md)
-- [ ] [附录:流式IO](docs/book/Appendix-IO-Streams.md)
-- [ ] [附录:标准IO](docs/book/Appendix-Standard-IO.md)
-- [x] [附录:新IO](docs/book/Appendix-New-IO.md)
-- [ ] [附录:理解equals和hashCode方法](docs/book/Appendix-Understanding-equals-and-hashCode.md)
-- [x] [附录:集合主题](docs/book/Appendix-Collection-Topics.md)
-- [ ] [附录:并发底层原理](docs/book/Appendix-Low-Level-Concurrency.md)
-- [x] [附录:数据压缩](docs/book/Appendix-Data-Compression.md)
-- [ ] [附录:对象序列化](docs/book/Appendix-Object-Serialization.md)
-- [ ] [附录:静态语言类型检查](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md)
-- [x] [附录:C++和Java的优良传统](docs/book/Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java.md)
-- [ ] [附录:成为一名程序员](docs/book/Appendix-Becoming-a-Programmer.md)
+图灵要出On Java 8的中文版了! 非常感谢大家长久以来对本项目的支持和贡献,出于对原作者的敬意和对版权尊重,本项目将于2021年2月26日起闭源。 之后,我将作为On Java 8的特邀审读嘉宾,继续贡献自己的一份力量!
+想要继续关注本书出版进度,请访问图灵社区:https://www.ituring.com.cn/book/2935
## 一起交流
-交流群:721698221
( 点击图标即可加入 )
-
-
-

-
-
-
-## 大事记
-
-- 2018-11-20 初始化项目
-
-
-## 原书资料
+点击链接加入群聊【Java技术流群】247457782
( 点击图标即可加入 )
加群时请简单备注下来源或说明
-

+
-
-* 作者: Bruce Eckel
-* ISBN: 9780981872520
-* 页数:2038
-* 发行:仅电子版
-
-## 贡献者
-
-* 主译:[LingCoder](https://github.com/LingCoder),[sjsdfg](https://github.com/sjsdfg),[xiangflight](https://github.com/xiangflight)
-* 参译:[Langdon-Chen](https://github.com/Langdon-Chen),[1326670425](https://github.com/1326670425),[LortSir](https://github.com/LortSir)
-* 校对:[LingCoder](https://github.com/LingCoder),[jason31520](https://github.com/jason31520),[xiangflight](https://github.com/xiangflight),[nickChenyx](https://github.com/nickChenyx)
-
-
-## 翻译说明
-
-1. 本书排版布局和翻译风格上参考**阮一峰**老师的 [中文技术文档的写作规范](https://github.com/ruanyf/document-style-guide)
-2. 采用第一人称叙述。
-3. 由于中英行文差异,完全的逐字逐句翻译会很冗余啰嗦。所以本人在翻译过程中,去除了部分主题无关内容、重复描写。
-4. 译者在翻译中同时参考了谷歌、百度、有道翻译的译文以及《Java编程思想》第四版中文版的部分内容(对其翻译死板,生造名词,语言精炼度差问题进行规避和改正)。最后结合译者自己的理解进行本地化,尽量做到专业和言简意赅,方便大家更好的理解学习。
-5. 由于译者个人能力、时间有限,如有翻译错误和笔误的地方,还请大家批评指正!
-
-
-## 如何参与
-
-如果你想对本书做出一些贡献的话
-可以在阅读本书过程中帮忙校对,找 bug 错别字等等
-可以提出专业方面的修改建议
-可以把一些不尽人意的语句翻译的更好更有趣
-对于以上各类建议,请以 issue 或 pr 的形式发送,我看到之后会尽快处理
-使用 MarkDown 编辑器,md 语法格式进行文档翻译及排版工作
-完成之后 PullRequest
-如没问题的话,我会合并到主分支
-如不熟悉 md 排版,可不必纠结,我会在合并 pr 时代为排版
-如还有其它问题,欢迎发送 issue,谢谢~
-
-
-## 友情链接
-
-[Effective.Java.3rd.Edition 中文版](https://sjsdfg.github.io/effective-java-3rd-chinese/#/)
-
-
-
-## 开源协议
-
-本项目基于 MIT 协议开源。
+
## 联系方式
-* E-mail :
-
-
-
-
+- E-mail :
diff --git a/SUMMARY.md b/SUMMARY.md
deleted file mode 100644
index eea7c550..00000000
--- a/SUMMARY.md
+++ /dev/null
@@ -1,414 +0,0 @@
-# Summary
-
-* [Introduction](README.md)
-* [译者的话](docs/README.md)
-* [封面](docs/book/00-On-Java-8.md)
-* [前言](docs/book/00-Preface.md)
- * [教学目标](docs/book/00-Preface.md#教学目标)
- * [语言设计错误](docs/book/00-Preface.md#语言设计错误)
- * [测试用例](docs/book/00-Preface.md#测试用例)
- * [普及性](docs/book/00-Preface.md#普及性)
- * [关于安卓](docs/book/00-Preface.md#关于安卓)
- * [电子版权声明](docs/book/00-Preface.md#电子版权声明)
- * [版本说明](docs/book/00-Preface.md#版本说明)
- * [封面设计](docs/book/00-Preface.md#封面设计)
- * [感谢的人](docs/book/00-Preface.md#感谢的人)
- * [献礼](docs/book/00-Preface.md#献礼)
-* [简介](docs/book/00-Introduction.md)
- * [前提条件](docs/book/00-Introduction.md#前提条件)
- * [JDK文档](docs/book/00-Introduction.md#JDK文档)
- * [C编程思想](docs/book/00-Introduction.md#C编程思想)
- * [源码下载](docs/book/00-Introduction.md#源码下载)
- * [编码样式](docs/book/00-Introduction.md#编码样式)
- * [BUG提交](docs/book/00-Introduction.md#BUG提交)
- * [邮箱订阅](docs/book/00-Introduction.md#邮箱订阅)
- * [Java图形界面](docs/book/00-Introduction.md#Java图形界面)
-
-* [第一章 对象的概念](docs/book/01-What-is-an-Object.md)
- * [抽象](docs/book/01-What-is-an-Object.md#抽象)
- * [接口](docs/book/01-What-is-an-Object.md#接口)
- * [服务提供](docs/book/01-What-is-an-Object.md#服务提供)
- * [封装](docs/book/01-What-is-an-Object.md#封装)
- * [复用](docs/book/01-What-is-an-Object.md#复用)
- * [继承](docs/book/01-What-is-an-Object.md#继承)
- * [多态](docs/book/01-What-is-an-Object.md#多态)
- * [单继承](docs/book/01-What-is-an-Object.md#单继承)
- * [集合](docs/book/01-What-is-an-Object.md#集合)
- * [生命周期](docs/book/01-What-is-an-Object.md#生命周期)
- * [异常处理](docs/book/01-What-is-an-Object.md#异常处理)
- * [本章小结](docs/book/01-What-is-an-Object.md#本章小结)
-* [第二章 安装Java和本书用例](docs/book/02-Installing-Java-and-the-Book-Examples.md)
- * [编辑器](docs/book/02-Installing-Java-and-the-Book-Examples.md#编辑器)
- * [Shell](docs/book/02-Installing-Java-and-the-Book-Examples.md#Shell)
- * [Java安装](docs/book/02-Installing-Java-and-the-Book-Examples.md#Java安装)
- * [校验安装](docs/book/02-Installing-Java-and-the-Book-Examples.md#校验安装)
- * [安装和运行代码示例](docs/book/02-Installing-Java-and-the-Book-Examples.md#安装和运行代码示例)
-* [第三章 万物皆对象](docs/book/03-Objects-Everywhere.md)
- * [对象操纵](docs/book/03-Objects-Everywhere.md#对象操纵)
- * [对象创建](docs/book/03-Objects-Everywhere.md#对象创建)
- * [代码注释](docs/book/03-Objects-Everywhere.md#代码注释)
- * [对象清理](docs/book/03-Objects-Everywhere.md#对象清理)
- * [类的创建](docs/book/03-Objects-Everywhere.md#类的创建)
- * [程序编写](docs/book/03-Objects-Everywhere.md#程序编写)
- * [小试牛刀](docs/book/03-Objects-Everywhere.md#小试牛刀)
- * [编码风格](docs/book/03-Objects-Everywhere.md#编码风格)
- * [本章小结](docs/book/03-Objects-Everywhere.md#本章小结)
-* [第四章 运算符](docs/book/04-Operators.md)
- * [使用说明](docs/book/04-Operators.md#使用说明)
- * [优先级](docs/book/04-Operators.md#优先级)
- * [赋值](docs/book/04-Operators.md#赋值)
- * [算术运算符](docs/book/04-Operators.md#算术运算符)
- * [递增和递减](docs/book/04-Operators.md#递增和递减)
- * [关系运算符](docs/book/04-Operators.md#关系运算符)
- * [逻辑运算符](docs/book/04-Operators.md#逻辑运算符)
- * [字面值常量](docs/book/04-Operators.md#字面值常量)
- * [按位运算符](docs/book/04-Operators.md#按位运算符)
- * [移位运算符](docs/book/04-Operators.md#移位运算符)
- * [三元运算符](docs/book/04-Operators.md#三元运算符)
- * [字符串运算符](docs/book/04-Operators.md#字符串运算符)
- * [常见陷阱](docs/book/04-Operators.md#常见陷阱)
- * [类型转换](docs/book/04-Operators.md#类型转换)
- * [Java没有sizeof](docs/book/04-Operators.md#Java没有sizeof)
- * [运算符总结](docs/book/04-Operators.md#运算符总结)
- * [本章小结](docs/book/04-Operators.md#本章小结)
-* [第五章 控制流](docs/book/05-Control-Flow.md)
- * [true和flase](docs/book/05-Control-Flow.md#true和flase)
- * [if-else](docs/book/05-Control-Flow.md#if-else)
- * [迭代语句](docs/book/05-Control-Flow.md#迭代语句)
- * [for-in语法](docs/book/05-Control-Flow.md#for-in语法)
- * [return](docs/book/05-Control-Flow.md#return)
- * [break和continue](docs/book/05-Control-Flow.md#break和continue)
- * [臭名昭著的goto](docs/book/05-Control-Flow.md#臭名昭著的goto)
- * [switch](docs/book/05-Control-Flow.md#switch)
- * [switch字符串](docs/book/05-Control-Flow.md#switch字符串)
- * [本章小结](docs/book/05-Control-Flow.md#本章小结)
-* [第六章 初始化和清理](docs/book/06-Housekeeping.md)
- * [利用构造器保证初始化](docs/book/06-Housekeeping.md#利用构造器保证初始化)
- * [方法重载](docs/book/06-Housekeeping.md#方法重载)
- * [无参构造器](docs/book/06-Housekeeping.md#无参构造器)
- * [this关键字](docs/book/06-Housekeeping.md#this关键字)
- * [垃圾回收器](docs/book/06-Housekeeping.md#垃圾回收器)
- * [成员初始化](docs/book/06-Housekeeping.md#成员初始化)
- * [构造器初始化](docs/book/06-Housekeeping.md#构造器初始化)
- * [数组初始化](docs/book/06-Housekeeping.md#数组初始化)
- * [枚举类型](docs/book/06-Housekeeping.md#枚举类型)
- * [本章小结](docs/book/06-Housekeeping.md#本章小结)
-* [第七章 封装](docs/book/07-Implementation-Hiding.md)
- * [包的概念](docs/book/07-Implementation-Hiding.md#包的概念)
- * [访问权限修饰符](docs/book/07-Implementation-Hiding.md#访问权限修饰符)
- * [接口和实现](docs/book/07-Implementation-Hiding.md#接口和实现)
- * [类访问权限](docs/book/07-Implementation-Hiding.md#类访问权限)
- * [本章小结](docs/book/07-Implementation-Hiding.md#本章小结)
-* [第八章 复用](docs/book/08-Reuse.md)
- * [组合语法](docs/book/08-Reuse.md#组合语法)
- * [继承语法](docs/book/08-Reuse.md#继承语法)
- * [委托](docs/book/08-Reuse.md#委托)
- * [结合组合与继承](docs/book/08-Reuse.md#结合组合与继承)
- * [组合与继承的选择](docs/book/08-Reuse.md#组合与继承的选择)
- * [protected](docs/book/08-Reuse.md#protected)
- * [向上转型](docs/book/08-Reuse.md#向上转型)
- * [final关键字](docs/book/08-Reuse.md#final关键字)
- * [类初始化和加载](docs/book/08-Reuse.md#类初始化和加载)
- * [本章小结](docs/book/08-Reuse.md#本章小结)
-* [第九章 多态](docs/book/09-Polymorphism.md)
- * [向上转型回溯](docs/book/09-Polymorphism.md#向上转型回溯)
- * [深入理解](docs/book/09-Polymorphism.md#深入理解)
- * [构造器和多态](docs/book/09-Polymorphism.md#构造器和多态)
- * [返回类型协变](docs/book/09-Polymorphism.md#返回类型协变)
- * [使用继承设计](docs/book/09-Polymorphism.md#使用继承设计)
- * [本章小结](docs/book/09-Polymorphism.md#本章小结)
-* [第十章 接口](docs/book/10-Interfaces.md)
- * [抽象类和方法](docs/book/10-Interfaces.md#抽象类和方法)
- * [接口创建](docs/book/10-Interfaces.md#接口创建)
- * [抽象类和接口](docs/book/10-Interfaces.md#抽象类和接口)
- * [完全解耦](docs/book/10-Interfaces.md#完全解耦)
- * [多接口结合](docs/book/10-Interfaces.md#多接口结合)
- * [使用继承扩展接口](docs/book/10-Interfaces.md#使用继承扩展接口)
- * [接口适配](docs/book/10-Interfaces.md#接口适配)
- * [接口字段](docs/book/10-Interfaces.md#接口字段)
- * [接口嵌套](docs/book/10-Interfaces.md#接口嵌套)
- * [接口和工厂方法模式](docs/book/10-Interfaces.md#接口和工厂方法模式)
- * [本章小结](docs/book/10-Interfaces.md#本章小结)
-* [第十一章 内部类](docs/book/11-Inner-Classes.md)
- * [创建内部类](docs/book/11-Inner-Classes.md#创建内部类)
- * [链接外部类](docs/book/11-Inner-Classes.md#链接外部类)
- * [内部类this和new的使用](docs/book/11-Inner-Classes.md#内部类this和new的使用)
- * [内部类向上转型](docs/book/11-Inner-Classes.md#内部类向上转型)
- * [内部类方法和作用域](docs/book/11-Inner-Classes.md#内部类方法和作用域)
- * [匿名内部类](docs/book/11-Inner-Classes.md#匿名内部类)
- * [嵌套类](docs/book/11-Inner-Classes.md#嵌套类)
- * [为什么需要内部类](docs/book/11-Inner-Classes.md#为什么需要内部类)
- * [继承内部类](docs/book/11-Inner-Classes.md#继承内部类)
- * [重写内部类](docs/book/11-Inner-Classes.md#重写内部类)
- * [内部类局部变量](docs/book/11-Inner-Classes.md#内部类局部变量)
- * [内部类标识符](docs/book/11-Inner-Classes.md#内部类标识符)
- * [本章小结](docs/book/11-Inner-Classes.md#本章小结)
-* [第十二章 集合](docs/book/12-Collections.md)
- * [泛型和类型安全的集合](docs/book/12-Collections.md#泛型和类型安全的集合)
- * [基本概念](docs/book/12-Collections.md#基本概念)
- * [添加元素组](docs/book/12-Collections.md#添加元素组)
- * [集合的打印](docs/book/12-Collections.md#集合的打印)
- * [列表List](docs/book/12-Collections.md#列表List)
- * [迭代器Iterators](docs/book/12-Collections.md#迭代器Iterators)
- * [链表LinkedList](docs/book/12-Collections.md#链表LinkedList)
- * [堆栈Stack](docs/book/12-Collections.md#堆栈Stack)
- * [集合Set](docs/book/12-Collections.md#集合Set)
- * [映射Map](docs/book/12-Collections.md#映射Map)
- * [队列Queue](docs/book/12-Collections.md#队列Queue)
- * [集合与迭代器](docs/book/12-Collections.md#集合与迭代器)
- * [for-in和迭代器](docs/book/12-Collections.md#for-in和迭代器)
- * [本章小结](docs/book/12-Collections.md#本章小结)
-* [第十三章 函数式编程](docs/book/13-Functional-Programming.md)
- * [新旧对比](docs/book/13-Functional-Programming.md#新旧对比)
- * [Lambda表达式](docs/book/13-Functional-Programming.md#Lambda表达式)
- * [方法引用](docs/book/13-Functional-Programming.md#方法引用)
- * [函数式接口](docs/book/13-Functional-Programming.md#函数式接口)
- * [高阶函数](docs/book/13-Functional-Programming.md#高阶函数)
- * [闭包](docs/book/13-Functional-Programming.md#闭包)
- * [函数组合](docs/book/13-Functional-Programming.md#函数组合)
- * [柯里化和部分求值](docs/book/13-Functional-Programming.md#柯里化和部分求值)
- * [纯函数式编程](docs/book/13-Functional-Programming.md#纯函数式编程)
- * [本章小结](docs/book/13-Functional-Programming.md#本章小结)
-* [第十四章 流式编程](docs/book/14-Streams.md)
- * [流支持](docs/book/14-Streams.md#流支持)
- * [流创建](docs/book/14-Streams.md#流创建)
- * [中级流操作](docs/book/14-Streams.md#中级流操作)
- * [Optional类](docs/book/14-Streams.md#Optional类)
- * [终端操作](docs/book/14-Streams.md#终端操作)
- * [本章小结](docs/book/14-Streams.md#本章小结)
-* [第十五章 异常](docs/book/15-Exceptions.md)
- * [异常概念](docs/book/15-Exceptions.md#异常概念)
- * [基本异常](docs/book/15-Exceptions.md#基本异常)
- * [异常捕获](docs/book/15-Exceptions.md#异常捕获)
- * [自定义异常](docs/book/15-Exceptions.md#自定义异常)
- * [异常规范](docs/book/15-Exceptions.md#异常规范)
- * [任意异常捕获](docs/book/15-Exceptions.md#任意异常捕获)
- * [Java标准异常](docs/book/15-Exceptions.md#Java标准异常)
- * [finally关键字](docs/book/15-Exceptions.md#finally关键字)
- * [异常限制](docs/book/15-Exceptions.md#异常限制)
- * [异常构造](docs/book/15-Exceptions.md#异常构造)
- * [Try-With-Resources用法](docs/book/15-Exceptions.md#Try-With-Resources用法)
- * [异常匹配](docs/book/15-Exceptions.md#异常匹配)
- * [异常准则](docs/book/15-Exceptions.md#异常准则)
- * [异常指南](docs/book/15-Exceptions.md#异常指南)
- * [本章小结](docs/book/15-Exceptions.md#本章小结)
-* [第十六章 代码校验](docs/book/16-Validating-Your-Code.md)
- * [测试](docs/book/16-Validating-Your-Code.md#测试)
- * [前提条件](docs/book/16-Validating-Your-Code.md#前提条件)
- * [测试驱动开发](docs/book/16-Validating-Your-Code.md#测试驱动开发)
- * [日志](docs/book/16-Validating-Your-Code.md#日志)
- * [调试](docs/book/16-Validating-Your-Code.md#调试)
- * [基准测试](docs/book/16-Validating-Your-Code.md#基准测试)
- * [分析和优化](docs/book/16-Validating-Your-Code.md#分析和优化)
- * [风格检测](docs/book/16-Validating-Your-Code.md#风格检测)
- * [静态错误分析](docs/book/16-Validating-Your-Code.md#静态错误分析)
- * [代码重审](docs/book/16-Validating-Your-Code.md#代码重审)
- * [结对编程](docs/book/16-Validating-Your-Code.md#结对编程)
- * [重构](docs/book/16-Validating-Your-Code.md#重构)
- * [持续集成](docs/book/16-Validating-Your-Code.md#持续集成)
- * [本章小结](docs/book/16-Validating-Your-Code.md#本章小结)
-* [第十七章 文件](docs/book/17-Files.md)
- * [文件和目录路径](docs/book/17-Files.md#文件和目录路径)
- * [目录](docs/book/17-Files.md#目录)
- * [文件系统](docs/book/17-Files.md#文件系统)
- * [路径监听](docs/book/17-Files.md#路径监听)
- * [文件查找](docs/book/17-Files.md#文件查找)
- * [文件读写](docs/book/17-Files.md#文件读写)
- * [本章小结](docs/book/17-Files.md#本章小结)
-* [第十八章 字符串](docs/book/18-Strings.md)
- * [字符串的不可变](docs/book/18-Strings.md#字符串的不可变)
- * [重载和StringBuilder](docs/book/18-Strings.md#重载和StringBuilder)
- * [意外递归](docs/book/18-Strings.md#意外递归)
- * [字符串操作](docs/book/18-Strings.md#字符串操作)
- * [格式化输出](docs/book/18-Strings.md#格式化输出)
- * [常规表达式](docs/book/18-Strings.md#常规表达式)
- * [扫描输入](docs/book/18-Strings.md#扫描输入)
- * [StringTokenizer类](docs/book/18-Strings.md#StringTokenizer类)
- * [本章小结](docs/book/18-Strings.md#本章小结)
-* [第十九章 类型信息](docs/book/19-Type-Information.md)
- * [运行时类型信息](docs/book/19-Type-Information.md#运行时类型信息)
- * [类的对象](docs/book/19-Type-Information.md#类的对象)
- * [类型转换检测](docs/book/19-Type-Information.md#类型转换检测)
- * [注册工厂](docs/book/19-Type-Information.md#注册工厂)
- * [类的等价比较](docs/book/19-Type-Information.md#类的等价比较)
- * [反射运行时类信息](docs/book/19-Type-Information.md#反射运行时类信息)
- * [动态代理](docs/book/19-Type-Information.md#动态代理)
- * [Optional类](docs/book/19-Type-Information.md#Optional类)
- * [接口和类型](docs/book/19-Type-Information.md#接口和类型)
- * [本章小结](docs/book/19-Type-Information.md#本章小结)
-* [第二十章 泛型](docs/book/20-Generics.md)
- * [简单泛型](docs/book/20-Generics.md#简单泛型)
- * [泛型接口](docs/book/20-Generics.md#泛型接口)
- * [泛型方法](docs/book/20-Generics.md#泛型方法)
- * [复杂模型构建](docs/book/20-Generics.md#复杂模型构建)
- * [泛型擦除](docs/book/20-Generics.md#泛型擦除)
- * [补偿擦除](docs/book/20-Generics.md#补偿擦除)
- * [边界](docs/book/20-Generics.md#边界)
- * [通配符](docs/book/20-Generics.md#通配符)
- * [问题](docs/book/20-Generics.md#问题)
- * [自我约束类型](docs/book/20-Generics.md#自我约束类型)
- * [动态类型安全](docs/book/20-Generics.md#动态类型安全)
- * [泛型异常](docs/book/20-Generics.md#泛型异常)
- * [混入](docs/book/20-Generics.md#混入)
- * [潜在类型](docs/book/20-Generics.md#潜在类型)
- * [补偿不足](docs/book/20-Generics.md#补偿不足)
- * [辅助潜在类型](docs/book/20-Generics.md#辅助潜在类型)
- * [泛型的优劣](docs/book/20-Generics.md#泛型的优劣)
-* [第二十一章 数组](docs/book/21-Arrays.md)
- * [数组特性](docs/book/21-Arrays.md#数组特性)
- * [一等对象](docs/book/21-Arrays.md#一等对象)
- * [返回数组](docs/book/21-Arrays.md#返回数组)
- * [多维数组](docs/book/21-Arrays.md#多维数组)
- * [泛型数组](docs/book/21-Arrays.md#泛型数组)
- * [Arrays的fill方法](docs/book/21-Arrays.md#Arrays的fill方法)
- * [Arrays的setAll方法](docs/book/21-Arrays.md#Arrays的setAll方法)
- * [增量生成](docs/book/21-Arrays.md#增量生成)
- * [随机生成](docs/book/21-Arrays.md#随机生成)
- * [泛型和基本数组](docs/book/21-Arrays.md#泛型和基本数组)
- * [数组元素修改](docs/book/21-Arrays.md#数组元素修改)
- * [数组并行](docs/book/21-Arrays.md#数组并行)
- * [Arrays工具类](docs/book/21-Arrays.md#Arrays工具类)
- * [数组拷贝](docs/book/21-Arrays.md#数组拷贝)
- * [数组比较](docs/book/21-Arrays.md#数组比较)
- * [流和数组](docs/book/21-Arrays.md#流和数组)
- * [数组排序](docs/book/21-Arrays.md#数组排序)
- * [binarySearch二分查找](docs/book/21-Arrays.md#binarySearch二分查找)
- * [parallelPrefix并行前缀](docs/book/21-Arrays.md#parallelPrefix并行前缀)
- * [本章小结](docs/book/21-Arrays.md#本章小结)
-* [第二十二章 枚举](docs/book/22-Enumerations.md)
- * [基本功能](docs/book/22-Enumerations.md#基本功能)
- * [方法添加](docs/book/22-Enumerations.md#方法添加)
- * [switch语句](docs/book/22-Enumerations.md#switch语句)
- * [values方法](docs/book/22-Enumerations.md#values方法)
- * [实现而非继承](docs/book/22-Enumerations.md#实现而非继承)
- * [随机选择](docs/book/22-Enumerations.md#随机选择)
- * [使用接口组织](docs/book/22-Enumerations.md#使用接口组织)
- * [使用EnumSet替代Flags](docs/book/22-Enumerations.md#使用EnumSet替代Flags)
- * [使用EnumMap](docs/book/22-Enumerations.md#使用EnumMap)
- * [常量特定方法](docs/book/22-Enumerations.md#常量特定方法)
- * [多次调度](docs/book/22-Enumerations.md#多次调度)
- * [本章小结](docs/book/22-Enumerations.md#本章小结)
-* [第二十三章 注解](docs/book/23-Annotations.md)
- * [基本语法](docs/book/23-Annotations.md#基本语法)
- * [编写注解处理器](docs/book/23-Annotations.md#编写注解处理器)
- * [使用javac处理注解](docs/book/23-Annotations.md#使用javac处理注解)
- * [基于注解的单元测试](docs/book/23-Annotations.md#基于注解的单元测试)
- * [本章小结](docs/book/23-Annotations.md#本章小结)
-* [第二十四章 并发编程](docs/book/24-Concurrent-Programming.md)
- * [术语问题](docs/book/24-Concurrent-Programming.md#术语问题)
- * [并发的超能力](docs/book/24-Concurrent-Programming.md#并发的超能力)
- * [针对速度](docs/book/24-Concurrent-Programming.md#针对速度)
- * [四句格言](docs/book/24-Concurrent-Programming.md#四句格言)
- * [残酷的真相](docs/book/24-Concurrent-Programming.md#残酷的真相)
- * [本章其余部分](docs/book/24-Concurrent-Programming.md#本章其余部分)
- * [并行流](docs/book/24-Concurrent-Programming.md#并行流)
- * [创建和运行任务](docs/book/24-Concurrent-Programming.md#创建和运行任务)
- * [终止耗时任务](docs/book/24-Concurrent-Programming.md#终止耗时任务)
- * [CompletableFuture类](docs/book/24-Concurrent-Programming.md#CompletableFuture类)
- * [死锁](docs/book/24-Concurrent-Programming.md#死锁)
- * [构造函数非线程安全](docs/book/24-Concurrent-Programming.md#构造函数非线程安全)
- * [复杂性和代价](docs/book/24-Concurrent-Programming.md#复杂性和代价)
- * [本章小结](docs/book/24-Concurrent-Programming.md#本章小结)
-* [第二十五章 设计模式](docs/book/25-Patterns.md)
- * [概念](docs/book/25-Patterns.md#概念)
- * [构建型](docs/book/25-Patterns.md#构建型)
- * [面向实施](docs/book/25-Patterns.md#面向实施)
- * [工厂模式](docs/book/25-Patterns.md#工厂模式)
- * [函数对象](docs/book/25-Patterns.md#函数对象)
- * [接口改变](docs/book/25-Patterns.md#接口改变)
- * [解释器](docs/book/25-Patterns.md#解释器)
- * [回调](docs/book/25-Patterns.md#回调)
- * [多次调度](docs/book/25-Patterns.md#多次调度)
- * [模式重构](docs/book/25-Patterns.md#模式重构)
- * [抽象用法](docs/book/25-Patterns.md#抽象用法)
- * [多次派遣](docs/book/25-Patterns.md#多次派遣)
- * [访问者模式](docs/book/25-Patterns.md#访问者模式)
- * [RTTI的优劣](docs/book/25-Patterns.md#RTTI的优劣)
- * [本章小结](docs/book/25-Patterns.md#本章小结)
-
-* [附录:补充](docs/book/Appendix-Supplements.md)
- * [可下载的补充](docs/book/Appendix-Supplements.md#可下载的补充)
- * [通过Thinking-in-C来巩固Java基础](docs/book/Appendix-Supplements.md#通过Thinking-in-C来巩固Java基础)
- * [动手实践](docs/book/Appendix-Supplements.md#动手实践)
-* [附录:编程指南](docs/book/Appendix-Programming-Guidelines.md)
- * [设计](docs/book/Appendix-Programming-Guidelines.md#设计)
- * [实现](docs/book/Appendix-Programming-Guidelines.md#实现)
-* [附录:文档注释](docs/book/Appendix-Javadoc.md)
-* [附录:对象传递和返回](docs/book/Appendix-Passing-and-Returning-Objects.md)
- * [传递引用](docs/book/Appendix-Passing-and-Returning-Objects.md#传递引用)
- * [本地拷贝](docs/book/Appendix-Passing-and-Returning-Objects.md#本地拷贝)
- * [控制克隆](docs/book/Appendix-Passing-and-Returning-Objects.md#控制克隆)
- * [不可变类](docs/book/Appendix-Passing-and-Returning-Objects.md#不可变类)
- * [本章小结](docs/book/Appendix-Passing-and-Returning-Objects.md#本章小结)
-* [附录:流式IO](docs/book/Appendix-IO-Streams.md)
- * [输入流类型](docs/book/Appendix-IO-Streams.md#输入流类型)
- * [输出流类型](docs/book/Appendix-IO-Streams.md#输出流类型)
- * [添加属性和有用的接口](docs/book/Appendix-IO-Streams.md#添加属性和有用的接口)
- * [Reader和Writer](docs/book/Appendix-IO-Streams.md#Reader和Writer)
- * [RandomAccessFile类](docs/book/Appendix-IO-Streams.md#RandomAccessFile类)
- * [IO流典型用途](docs/book/Appendix-IO-Streams.md#IO流典型用途)
- * [本章小结](docs/book/Appendix-IO-Streams.md#本章小结)
-* [附录:标准IO](docs/book/Appendix-Standard-IO.md)
- * [执行控制](docs/book/Appendix-Standard-IO.md#执行控制)
-* [附录:新IO](docs/book/Appendix-New-IO.md)
- * [ByteBuffer](docs/book/Appendix-New-IO.md#ByteBuffer)
- * [转换数据](docs/book/Appendix-New-IO.md#数据转换)
- * [获取原始类型](docs/book/Appendix-New-IO.md#基本类型获取)
- * [视图缓冲区](docs/book/Appendix-New-IO.md#视图缓冲区)
- * [使用缓冲区进行数据操作](docs/book/Appendix-New-IO.md#缓冲区数据操作)
- * [内存映射文件](docs/book/Appendix-New-IO.md#内存映射文件)
- * [文件锁定](docs/book/Appendix-New-IO.md#文件锁定)
-* [附录:理解equals和hashCode方法](docs/book/Appendix-Understanding-equals-and-hashCode.md)
- * [equals典范](docs/book/Appendix-Understanding-equals-and-hashCode.md#equals典范)
- * [哈希和哈希码](docs/book/Appendix-Understanding-equals-and-hashCode.md#哈希和哈希码)
- * [调整HashMap](docs/book/Appendix-Understanding-equals-and-hashCode.md#调整HashMap)
-* [附录:集合主题](docs/book/Appendix-Collection-Topics.md)
- * [示例数据](docs/book/Appendix-Collection-Topics.md#示例数据)
- * [List行为](docs/book/Appendix-Collection-Topics.md#List行为)
- * [Set行为](docs/book/Appendix-Collection-Topics.md#Set行为)
- * [在Map中使用函数式操作](docs/book/Appendix-Collection-Topics.md#在Map中使用函数式操作)
- * [选择Map片段](docs/book/Appendix-Collection-Topics.md#选择Map片段)
- * [填充集合](docs/book/Appendix-Collection-Topics.md#填充集合)
- * [使用享元(Flyweight)自定义Collection和Map](docs/book/Appendix-Collection-Topics.md#使用享元(Flyweight)自定义Collection和Map)
- * [集合功能](docs/book/Appendix-Collection-Topics.md#集合功能)
- * [可选操作](docs/book/Appendix-Collection-Topics.md#可选操作)
- * [Set和存储顺序](docs/book/Appendix-Collection-Topics.md#Set和存储顺序)
- * [队列](docs/book/Appendix-Collection-Topics.md#队列)
- * [理解Map](docs/book/Appendix-Collection-Topics.md#理解Map)
- * [集合工具类](docs/book/Appendix-Collection-Topics.md#集合工具类)
- * [持有引用](docs/book/Appendix-Collection-Topics.md#持有引用)
- * [Java 1.0 / 1.1 的集合类](docs/book/Appendix-Collection-Topics.md#避免旧式类库)
- * [本章小结](docs/book/Appendix-Collection-Topics.md#本章小结)
-* [附录:并发底层原理](docs/book/Appendix-Low-Level-Concurrency.md)
- * [线程](docs/book/Appendix-Low-Level-Concurrency.md#线程)
- * [异常捕获](docs/book/Appendix-Low-Level-Concurrency.md#异常捕获)
- * [资源共享](docs/book/Appendix-Low-Level-Concurrency.md#资源共享)
- * [volatile关键字](docs/book/Appendix-Low-Level-Concurrency.md#volatile关键字)
- * [原子性](docs/book/Appendix-Low-Level-Concurrency.md#原子性)
- * [临界区](docs/book/Appendix-Low-Level-Concurrency.md#临界区)
- * [库组件](docs/book/Appendix-Low-Level-Concurrency.md#库组件)
- * [本章小结](docs/book/Appendix-Low-Level-Concurrency.md#本章小结)
-* [附录:数据压缩](docs/book/Appendix-Data-Compression.md)
- * [使用Gzip简单压缩](docs/book/Appendix-Data-Compression.md#使用Gzip简单压缩)
- * [使用zip多文件存储](docs/book/Appendix-Data-Compression.md#使用zip多文件存储)
- * [Java的jar](docs/book/Appendix-Data-Compression.md#Java的jar)
-* [附录:对象序列化](docs/book/Appendix-Object-Serialization.md)
- * [查找类](docs/book/Appendix-Object-Serialization.md#查找类)
- * [控制序列化](docs/book/Appendix-Object-Serialization.md#控制序列化)
- * [使用持久化](docs/book/Appendix-Object-Serialization.md#使用持久化)
-* [附录:静态语言类型检查](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md)
- * [前言](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#前言)
- * [静态类型检查和测试](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#静态类型检查和测试)
- * [如何提升打字](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#如何提升打字)
- * [生产力的成本](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#生产力的成本)
- * [静态和动态](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#静态和动态)
-* [附录:C++和Java的优良传统](docs/book/Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java.md)
-* [附录:成为一名程序员](docs/book/Appendix-Becoming-a-Programmer.md)
- * [如何开始](docs/book/Appendix-Becoming-a-Programmer.md#如何开始)
- * [码农生涯](docs/book/Appendix-Becoming-a-Programmer.md#码农生涯)
- * [百分之五的神话](docs/book/Appendix-Becoming-a-Programmer.md#百分之五的神话)
- * [重在动手](docs/book/Appendix-Becoming-a-Programmer.md#重在动手)
- * [像打字般编程](docs/book/Appendix-Becoming-a-Programmer.md#像打字般编程)
- * [做你喜欢的事](docs/book/Appendix-Becoming-a-Programmer.md#做你喜欢的事)
-* [词汇表](docs/book/GLOSSARY.md)
-
diff --git a/assets/QQGroupQRCode.jpg b/assets/QQGroupQRCode.jpg
new file mode 100644
index 00000000..f74ee604
Binary files /dev/null and b/assets/QQGroupQRCode.jpg differ
diff --git a/assets/QQGroupQRCode.png b/assets/QQGroupQRCode.png
deleted file mode 100644
index 05d6ae40..00000000
Binary files a/assets/QQGroupQRCode.png and /dev/null differ
diff --git a/book.json b/book.json
deleted file mode 100644
index dd18be46..00000000
--- a/book.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "title": "《On Java 8》中文版",
- "author": "LingCoder",
- "description": "根据 Bruce Eckel 大神的新书 On Java 8 翻译,可以说是事实上的 Thinking in Java 5th",
- "language": "zh-hans",
- "gitbook": "3.2.3",
- "styles": {
- "website": "styles/website.css",
- "ebook": "styles/ebook.css",
- "pdf": "styles/pdf.css",
- "mobi": "styles/mobi.css",
- "epub": "styles/epub.css"
- },
- "plugins": [
- "splitter",
- "edit-link",
- "search-pro",
- "emphasize",
- "toggle-chapters",
- "katex",
- "mermaid-gb3",
- "advanced-emoji",
- "include-codeblock"
- ],
- "pluginsConfig": {
- "edit-link": {
- "base": "https://github.com/lingcoder/OnJava8/edit/master",
- "label": "Edit This Page"
- }
- }
-}
diff --git a/cover.jpg b/cover.jpg
deleted file mode 100644
index 1819c274..00000000
Binary files a/cover.jpg and /dev/null differ
diff --git a/cover_small.jpg b/cover_small.jpg
deleted file mode 100644
index d896e8a1..00000000
Binary files a/cover_small.jpg and /dev/null differ
diff --git a/docs/.nojekyll b/docs/.nojekyll
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index 328b1fe4..00000000
--- a/docs/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 译者的话
-
-[](https://github.com/lingcoder/OnJava8/stargazers)[](https://github.com/lingcoder/OnJava8/fork)
-
-本翻译项目的 GITHUB 开源地址:[https://github.com/LingCoder/OnJava8](https://github.com/LingCoder/OnJava8)
-
-如果你在阅读本书的过程中有发现不明白或者错误的地方,请随时到项目地址发布 issue 或者 fork 项目后发布 pr 帮助译者改善!不胜感激!
-
-## 书籍简介
-
-* 本书原作者为 [美] Bruce Eckel,即《Java 编程思想》的作者。
-* 本书是事实上的 《Java 编程思想》第五版。
-* 《Java 编程思想》第四版基于 JAVA **5** 版本;《On Java 8》 基于 JAVA **8** 版本。
-
-
-## 翻译说明
-
-1. 本书排版布局和翻译风格上参考了**阮一峰**老师的 [中文技术文档的写作规范](https://github.com/ruanyf/document-style-guide)
-2. 采用第一人称叙述。
-3. 由于中英行文差异,完全的逐字逐句翻译会很冗余啰嗦。所以本人在翻译过程中,去除了部分主题无关内容、重复描写。
-4. 译者在翻译中同时参考了谷歌、百度、有道翻译的译文以及《Java编程思想》第四版中文版的部分内容(对其翻译死板,生造名词,语言精炼度差问题进行规避和改正)。最后结合译者自己的理解进行本地化,尽量做到专业和言简意赅,方便大家更好的理解学习。
-5. 由于译者个人能力、时间有限,如有翻译错误和笔误的地方,还请大家批评指正!
-
-## 如何参与
-
-如果你想对本书做出一些贡献的话
-可以在阅读本书过程中帮忙校对,找 bug 错别字等等
-可以提出专业方面的修改建议
-可以把一些不尽人意的语句翻译的更好更有趣
-对于以上各类建议,请以 issue 或 pr 的形式发送,我看到之后会尽快处理
-使用 MarkDown 编辑器,md 语法格式进行文档翻译及排版工作
-完成之后 PullRequest
-如没问题的话,我会合并到主分支
-如不熟悉 md 排版,可不必纠结,我会在合并 pr 时代为排版
-如还有其它问题,欢迎发送 issue,谢谢~
-
-## 开源协议
-
-本项目基于 MIT 协议开源。
-
-## 友情链接
-
-Effective Java 第 3 版: https://github.com/sjsdfg/effective-java-3rd-chinese
-
-## 联系方式
-
-- E-mail :
-
-
diff --git a/docs/_coverpage.md b/docs/_coverpage.md
deleted file mode 100644
index 11b556af..00000000
--- a/docs/_coverpage.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-# On Java 8
-
-- 《On Java 8》中文版,是事实上的《Java 编程思想》第5版。
-
-
-[](https://github.com/lingcoder/OnJava8) [](https://github.com/lingcoder/OnJava8)
-
-
- 👁️本页总访问次数:
-
-
- | 🧑总访客数:
-
-
-[GitHub](https://github.com/lingcoder/onJava8/)
-[Get Started](README.md)
-
-
-
-
-
-
-
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
deleted file mode 100644
index eeef0d07..00000000
--- a/docs/_sidebar.md
+++ /dev/null
@@ -1,392 +0,0 @@
-
-* [译者的话](README.md)
-* [封面](book/00-On-Java-8.md)
-* [前言](book/00-Preface.md)
-* [简介](book/00-Introduction.md)
-* [第一章 对象的概念](book/01-What-is-an-Object.md)
- * [抽象](book/01-What-is-an-Object.md#抽象)
- * [接口](book/01-What-is-an-Object.md#接口)
- * [服务提供](book/01-What-is-an-Object.md#服务提供)
- * [封装](book/01-What-is-an-Object.md#封装)
- * [复用](book/01-What-is-an-Object.md#复用)
- * [继承](book/01-What-is-an-Object.md#继承)
- * [多态](book/01-What-is-an-Object.md#多态)
- * [单继承](book/01-What-is-an-Object.md#单继承)
- * [集合](book/01-What-is-an-Object.md#集合)
- * [生命周期](book/01-What-is-an-Object.md#生命周期)
- * [异常处理](book/01-What-is-an-Object.md#异常处理)
- * [本章小结](book/01-What-is-an-Object.md#本章小结)
-* [第二章 安装Java和本书用例](book/02-Installing-Java-and-the-Book-Examples.md)
- * [编辑器](book/02-Installing-Java-and-the-Book-Examples.md#编辑器)
- * [Shell](book/02-Installing-Java-and-the-Book-Examples.md#Shell)
- * [Java安装](book/02-Installing-Java-and-the-Book-Examples.md#Java安装)
- * [校验安装](book/02-Installing-Java-and-the-Book-Examples.md#校验安装)
- * [安装和运行代码示例](book/02-Installing-Java-and-the-Book-Examples.md#安装和运行代码示例)
-* [第三章 万物皆对象](book/03-Objects-Everywhere.md)
- * [对象操纵](book/03-Objects-Everywhere.md#对象操纵)
- * [对象创建](book/03-Objects-Everywhere.md#对象创建)
- * [代码注释](book/03-Objects-Everywhere.md#代码注释)
- * [对象清理](book/03-Objects-Everywhere.md#对象清理)
- * [类的创建](book/03-Objects-Everywhere.md#类的创建)
- * [程序编写](book/03-Objects-Everywhere.md#程序编写)
- * [小试牛刀](book/03-Objects-Everywhere.md#小试牛刀)
- * [编码风格](book/03-Objects-Everywhere.md#编码风格)
- * [本章小结](book/03-Objects-Everywhere.md#本章小结)
-* [第四章 运算符](book/04-Operators.md)
- * [使用说明](book/04-Operators.md#使用说明)
- * [优先级](book/04-Operators.md#优先级)
- * [赋值](book/04-Operators.md#赋值)
- * [算术运算符](book/04-Operators.md#算术运算符)
- * [递增和递减](book/04-Operators.md#递增和递减)
- * [关系运算符](book/04-Operators.md#关系运算符)
- * [逻辑运算符](book/04-Operators.md#逻辑运算符)
- * [字面值常量](book/04-Operators.md#字面值常量)
- * [按位运算符](book/04-Operators.md#按位运算符)
- * [移位运算符](book/04-Operators.md#移位运算符)
- * [三元运算符](book/04-Operators.md#三元运算符)
- * [字符串运算符](book/04-Operators.md#字符串运算符)
- * [常见陷阱](book/04-Operators.md#常见陷阱)
- * [类型转换](book/04-Operators.md#类型转换)
- * [Java没有sizeof](book/04-Operators.md#Java没有sizeof)
- * [运算符总结](book/04-Operators.md#运算符总结)
- * [本章小结](book/04-Operators.md#本章小结)
-* [第五章 控制流](book/05-Control-Flow.md)
- * [true和flase](book/05-Control-Flow.md#true和flase)
- * [if-else](book/05-Control-Flow.md#if-else)
- * [迭代语句](book/05-Control-Flow.md#迭代语句)
- * [for-in语法](book/05-Control-Flow.md#for-in语法)
- * [return](book/05-Control-Flow.md#return)
- * [break和continue](book/05-Control-Flow.md#break和continue)
- * [臭名昭著的goto](book/05-Control-Flow.md#臭名昭著的goto)
- * [switch](book/05-Control-Flow.md#switch)
- * [switch字符串](book/05-Control-Flow.md#switch字符串)
- * [本章小结](book/05-Control-Flow.md#本章小结)
-* [第六章 初始化和清理](book/06-Housekeeping.md)
- * [利用构造器保证初始化](book/06-Housekeeping.md#利用构造器保证初始化)
- * [方法重载](book/06-Housekeeping.md#方法重载)
- * [无参构造器](book/06-Housekeeping.md#无参构造器)
- * [this关键字](book/06-Housekeeping.md#this关键字)
- * [垃圾回收器](book/06-Housekeeping.md#垃圾回收器)
- * [成员初始化](book/06-Housekeeping.md#成员初始化)
- * [构造器初始化](book/06-Housekeeping.md#构造器初始化)
- * [数组初始化](book/06-Housekeeping.md#数组初始化)
- * [枚举类型](book/06-Housekeeping.md#枚举类型)
- * [本章小结](book/06-Housekeeping.md#本章小结)
-* [第七章 封装](book/07-Implementation-Hiding.md)
- * [包的概念](book/07-Implementation-Hiding.md#包的概念)
- * [访问权限修饰符](book/07-Implementation-Hiding.md#访问权限修饰符)
- * [接口和实现](book/07-Implementation-Hiding.md#接口和实现)
- * [类访问权限](book/07-Implementation-Hiding.md#类访问权限)
- * [本章小结](book/07-Implementation-Hiding.md#本章小结)
-* [第八章 复用](book/08-Reuse.md)
- * [组合语法](book/08-Reuse.md#组合语法)
- * [继承语法](book/08-Reuse.md#继承语法)
- * [委托](book/08-Reuse.md#委托)
- * [结合组合与继承](book/08-Reuse.md#结合组合与继承)
- * [组合与继承的选择](book/08-Reuse.md#组合与继承的选择)
- * [protected](book/08-Reuse.md#protected)
- * [向上转型](book/08-Reuse.md#向上转型)
- * [final关键字](book/08-Reuse.md#final关键字)
- * [类初始化和加载](book/08-Reuse.md#类初始化和加载)
- * [本章小结](book/08-Reuse.md#本章小结)
-* [第九章 多态](book/09-Polymorphism.md)
- * [向上转型回溯](book/09-Polymorphism.md#向上转型回溯)
- * [深入理解](book/09-Polymorphism.md#深入理解)
- * [构造器和多态](book/09-Polymorphism.md#构造器和多态)
- * [返回类型协变](book/09-Polymorphism.md#返回类型协变)
- * [使用继承设计](book/09-Polymorphism.md#使用继承设计)
- * [本章小结](book/09-Polymorphism.md#本章小结)
-* [第十章 接口](book/10-Interfaces.md)
- * [抽象类和方法](book/10-Interfaces.md#抽象类和方法)
- * [接口创建](book/10-Interfaces.md#接口创建)
- * [抽象类和接口](book/10-Interfaces.md#抽象类和接口)
- * [完全解耦](book/10-Interfaces.md#完全解耦)
- * [多接口结合](book/10-Interfaces.md#多接口结合)
- * [使用继承扩展接口](book/10-Interfaces.md#使用继承扩展接口)
- * [接口适配](book/10-Interfaces.md#接口适配)
- * [接口字段](book/10-Interfaces.md#接口字段)
- * [接口嵌套](book/10-Interfaces.md#接口嵌套)
- * [接口和工厂方法模式](book/10-Interfaces.md#接口和工厂方法模式)
- * [本章小结](book/10-Interfaces.md#本章小结)
-* [第十一章 内部类](book/11-Inner-Classes.md)
- * [创建内部类](book/11-Inner-Classes.md#创建内部类)
- * [链接外部类](book/11-Inner-Classes.md#链接外部类)
- * [内部类this和new的使用](book/11-Inner-Classes.md#内部类this和new的使用)
- * [内部类向上转型](book/11-Inner-Classes.md#内部类向上转型)
- * [内部类方法和作用域](book/11-Inner-Classes.md#内部类方法和作用域)
- * [匿名内部类](book/11-Inner-Classes.md#匿名内部类)
- * [嵌套类](book/11-Inner-Classes.md#嵌套类)
- * [为什么需要内部类](book/11-Inner-Classes.md#为什么需要内部类)
- * [继承内部类](book/11-Inner-Classes.md#继承内部类)
- * [重写内部类](book/11-Inner-Classes.md#重写内部类)
- * [内部类局部变量](book/11-Inner-Classes.md#内部类局部变量)
- * [内部类标识符](book/11-Inner-Classes.md#内部类标识符)
- * [本章小结](book/11-Inner-Classes.md#本章小结)
-* [第十二章 集合](book/12-Collections.md)
- * [泛型和类型安全的集合](book/12-Collections.md#泛型和类型安全的集合)
- * [基本概念](book/12-Collections.md#基本概念)
- * [添加元素组](book/12-Collections.md#添加元素组)
- * [集合的打印](book/12-Collections.md#集合的打印)
- * [列表List](book/12-Collections.md#列表List)
- * [迭代器Iterators](book/12-Collections.md#迭代器Iterators)
- * [链表LinkedList](book/12-Collections.md#链表LinkedList)
- * [堆栈Stack](book/12-Collections.md#堆栈Stack)
- * [集合Set](book/12-Collections.md#集合Set)
- * [映射Map](book/12-Collections.md#映射Map)
- * [队列Queue](book/12-Collections.md#队列Queue)
- * [集合与迭代器](book/12-Collections.md#集合与迭代器)
- * [for-in和迭代器](book/12-Collections.md#for-in和迭代器)
- * [本章小结](book/12-Collections.md#本章小结)
-* [第十三章 函数式编程](book/13-Functional-Programming.md)
- * [新旧对比](book/13-Functional-Programming.md#新旧对比)
- * [Lambda表达式](book/13-Functional-Programming.md#Lambda表达式)
- * [方法引用](book/13-Functional-Programming.md#方法引用)
- * [函数式接口](book/13-Functional-Programming.md#函数式接口)
- * [高阶函数](book/13-Functional-Programming.md#高阶函数)
- * [闭包](book/13-Functional-Programming.md#闭包)
- * [函数组合](book/13-Functional-Programming.md#函数组合)
- * [柯里化和部分求值](book/13-Functional-Programming.md#柯里化和部分求值)
- * [纯函数式编程](book/13-Functional-Programming.md#纯函数式编程)
- * [本章小结](book/13-Functional-Programming.md#本章小结)
-* [第十四章 流式编程](book/14-Streams.md)
- * [流支持](book/14-Streams.md#流支持)
- * [流创建](book/14-Streams.md#流创建)
- * [中级流操作](book/14-Streams.md#中级流操作)
- * [Optional类](book/14-Streams.md#Optional类)
- * [终端操作](book/14-Streams.md#终端操作)
- * [本章小结](book/14-Streams.md#本章小结)
-* [第十五章 异常](book/15-Exceptions.md)
- * [异常概念](book/15-Exceptions.md#异常概念)
- * [基本异常](book/15-Exceptions.md#基本异常)
- * [异常捕获](book/15-Exceptions.md#异常捕获)
- * [自定义异常](book/15-Exceptions.md#自定义异常)
- * [异常规范](book/15-Exceptions.md#异常规范)
- * [任意异常捕获](book/15-Exceptions.md#任意异常捕获)
- * [Java标准异常](book/15-Exceptions.md#Java标准异常)
- * [finally关键字](book/15-Exceptions.md#finally关键字)
- * [异常限制](book/15-Exceptions.md#异常限制)
- * [异常构造](book/15-Exceptions.md#异常构造)
- * [Try-With-Resources用法](book/15-Exceptions.md#Try-With-Resources用法)
- * [异常匹配](book/15-Exceptions.md#异常匹配)
- * [异常准则](book/15-Exceptions.md#异常准则)
- * [异常指南](book/15-Exceptions.md#异常指南)
- * [本章小结](book/15-Exceptions.md#本章小结)
-* [第十六章 代码校验](book/16-Validating-Your-Code.md)
- * [测试](book/16-Validating-Your-Code.md#测试)
- * [前提条件](book/16-Validating-Your-Code.md#前提条件)
- * [测试驱动开发](book/16-Validating-Your-Code.md#测试驱动开发)
- * [日志](book/16-Validating-Your-Code.md#日志)
- * [调试](book/16-Validating-Your-Code.md#调试)
- * [基准测试](book/16-Validating-Your-Code.md#基准测试)
- * [分析和优化](book/16-Validating-Your-Code.md#分析和优化)
- * [风格检测](book/16-Validating-Your-Code.md#风格检测)
- * [静态错误分析](book/16-Validating-Your-Code.md#静态错误分析)
- * [代码重审](book/16-Validating-Your-Code.md#代码重审)
- * [结对编程](book/16-Validating-Your-Code.md#结对编程)
- * [重构](book/16-Validating-Your-Code.md#重构)
- * [持续集成](book/16-Validating-Your-Code.md#持续集成)
- * [本章小结](book/16-Validating-Your-Code.md#本章小结)
-* [第十七章 文件](book/17-Files.md)
- * [文件和目录路径](book/17-Files.md#文件和目录路径)
- * [目录](book/17-Files.md#目录)
- * [文件系统](book/17-Files.md#文件系统)
- * [路径监听](book/17-Files.md#路径监听)
- * [文件查找](book/17-Files.md#文件查找)
- * [文件读写](book/17-Files.md#文件读写)
- * [本章小结](book/17-Files.md#本章小结)
-* [第十八章 字符串](book/18-Strings.md)
- * [字符串的不可变](book/18-Strings.md#字符串的不可变)
- * [重载和StringBuilder](book/18-Strings.md#重载和StringBuilder)
- * [意外递归](book/18-Strings.md#意外递归)
- * [字符串操作](book/18-Strings.md#字符串操作)
- * [格式化输出](book/18-Strings.md#格式化输出)
- * [常规表达式](book/18-Strings.md#常规表达式)
- * [扫描输入](book/18-Strings.md#扫描输入)
- * [StringTokenizer类](book/18-Strings.md#StringTokenizer类)
- * [本章小结](book/18-Strings.md#本章小结)
-* [第十九章 类型信息](book/19-Type-Information.md)
- * [运行时类型信息](book/19-Type-Information.md#运行时类型信息)
- * [类的对象](book/19-Type-Information.md#类的对象)
- * [类型转换检测](book/19-Type-Information.md#类型转换检测)
- * [注册工厂](book/19-Type-Information.md#注册工厂)
- * [类的等价比较](book/19-Type-Information.md#类的等价比较)
- * [反射运行时类信息](book/19-Type-Information.md#反射运行时类信息)
- * [动态代理](book/19-Type-Information.md#动态代理)
- * [Optional类](book/19-Type-Information.md#Optional类)
- * [接口和类型](book/19-Type-Information.md#接口和类型)
- * [本章小结](book/19-Type-Information.md#本章小结)
-* [第二十章 泛型](book/20-Generics.md)
- * [简单泛型](book/20-Generics.md#简单泛型)
- * [泛型接口](book/20-Generics.md#泛型接口)
- * [泛型方法](book/20-Generics.md#泛型方法)
- * [复杂模型构建](book/20-Generics.md#复杂模型构建)
- * [泛型擦除](book/20-Generics.md#泛型擦除)
- * [补偿擦除](book/20-Generics.md#补偿擦除)
- * [边界](book/20-Generics.md#边界)
- * [通配符](book/20-Generics.md#通配符)
- * [问题](book/20-Generics.md#问题)
- * [自我约束类型](book/20-Generics.md#自我约束类型)
- * [动态类型安全](book/20-Generics.md#动态类型安全)
- * [泛型异常](book/20-Generics.md#泛型异常)
- * [混入](book/20-Generics.md#混入)
- * [潜在类型](book/20-Generics.md#潜在类型)
- * [补偿不足](book/20-Generics.md#补偿不足)
- * [辅助潜在类型](book/20-Generics.md#辅助潜在类型)
- * [泛型的优劣](book/20-Generics.md#泛型的优劣)
-* [第二十一章 数组](book/21-Arrays.md)
- * [数组特性](book/21-Arrays.md#数组特性)
- * [一等对象](book/21-Arrays.md#一等对象)
- * [返回数组](book/21-Arrays.md#返回数组)
- * [多维数组](book/21-Arrays.md#多维数组)
- * [泛型数组](book/21-Arrays.md#泛型数组)
- * [Arrays的fill方法](book/21-Arrays.md#Arrays的fill方法)
- * [Arrays的setAll方法](book/21-Arrays.md#Arrays的setAll方法)
- * [增量生成](book/21-Arrays.md#增量生成)
- * [随机生成](book/21-Arrays.md#随机生成)
- * [泛型和基本数组](book/21-Arrays.md#泛型和基本数组)
- * [数组元素修改](book/21-Arrays.md#数组元素修改)
- * [数组并行](book/21-Arrays.md#数组并行)
- * [Arrays工具类](book/21-Arrays.md#Arrays工具类)
- * [数组拷贝](book/21-Arrays.md#数组拷贝)
- * [数组比较](book/21-Arrays.md#数组比较)
- * [流和数组](book/21-Arrays.md#流和数组)
- * [数组排序](book/21-Arrays.md#数组排序)
- * [binarySearch二分查找](book/21-Arrays.md#binarySearch二分查找)
- * [parallelPrefix并行前缀](book/21-Arrays.md#parallelPrefix并行前缀)
- * [本章小结](book/21-Arrays.md#本章小结)
-* [第二十二章 枚举](book/22-Enumerations.md)
- * [基本功能](book/22-Enumerations.md#基本功能)
- * [方法添加](book/22-Enumerations.md#方法添加)
- * [switch语句](book/22-Enumerations.md#switch语句)
- * [values方法](book/22-Enumerations.md#values方法)
- * [实现而非继承](book/22-Enumerations.md#实现而非继承)
- * [随机选择](book/22-Enumerations.md#随机选择)
- * [使用接口组织](book/22-Enumerations.md#使用接口组织)
- * [使用EnumSet替代Flags](book/22-Enumerations.md#使用EnumSet替代Flags)
- * [使用EnumMap](book/22-Enumerations.md#使用EnumMap)
- * [常量特定方法](book/22-Enumerations.md#常量特定方法)
- * [多次调度](book/22-Enumerations.md#多次调度)
- * [本章小结](book/22-Enumerations.md#本章小结)
-* [第二十三章 注解](book/23-Annotations.md)
- * [基本语法](book/23-Annotations.md#基本语法)
- * [编写注解处理器](book/23-Annotations.md#编写注解处理器)
- * [使用javac处理注解](book/23-Annotations.md#使用javac处理注解)
- * [基于注解的单元测试](book/23-Annotations.md#基于注解的单元测试)
- * [本章小结](book/23-Annotations.md#本章小结)
-* [第二十四章 并发编程](book/24-Concurrent-Programming.md)
- * [术语问题](book/24-Concurrent-Programming.md#术语问题)
- * [并发的超能力](book/24-Concurrent-Programming.md#并发的超能力)
- * [针对速度](book/24-Concurrent-Programming.md#针对速度)
- * [四句格言](book/24-Concurrent-Programming.md#四句格言)
- * [残酷的真相](book/24-Concurrent-Programming.md#残酷的真相)
- * [本章其余部分](book/24-Concurrent-Programming.md#本章其余部分)
- * [并行流](book/24-Concurrent-Programming.md#并行流)
- * [创建和运行任务](book/24-Concurrent-Programming.md#创建和运行任务)
- * [终止耗时任务](book/24-Concurrent-Programming.md#终止耗时任务)
- * [CompletableFuture类](book/24-Concurrent-Programming.md#CompletableFuture类)
- * [死锁](book/24-Concurrent-Programming.md#死锁)
- * [构造函数非线程安全](book/24-Concurrent-Programming.md#构造函数非线程安全)
- * [复杂性和代价](book/24-Concurrent-Programming.md#复杂性和代价)
- * [本章小结](book/24-Concurrent-Programming.md#本章小结)
-* [第二十五章 设计模式](book/25-Patterns.md)
- * [概念](book/25-Patterns.md#概念)
- * [构建型](book/25-Patterns.md#构建型)
- * [面向实施](book/25-Patterns.md#面向实施)
- * [工厂模式](book/25-Patterns.md#工厂模式)
- * [函数对象](book/25-Patterns.md#函数对象)
- * [接口改变](book/25-Patterns.md#接口改变)
- * [解释器](book/25-Patterns.md#解释器)
- * [回调](book/25-Patterns.md#回调)
- * [多次调度](book/25-Patterns.md#多次调度)
- * [模式重构](book/25-Patterns.md#模式重构)
- * [抽象用法](book/25-Patterns.md#抽象用法)
- * [多次派遣](book/25-Patterns.md#多次派遣)
- * [访问者模式](book/25-Patterns.md#访问者模式)
- * [RTTI的优劣](book/25-Patterns.md#RTTI的优劣)
- * [本章小结](book/25-Patterns.md#本章小结)
-
-* [附录:补充](book/Appendix-Supplements.md)
- * [可下载的补充](book/Appendix-Supplements.md#可下载的补充)
- * [通过Thinking-in-C来巩固Java基础](book/Appendix-Supplements.md#通过Thinking-in-C来巩固Java基础)
- * [动手实践](book/Appendix-Supplements.md#动手实践)
-* [附录:编程指南](book/Appendix-Programming-Guidelines.md)
- * [设计](book/Appendix-Programming-Guidelines.md#设计)
- * [实现](book/Appendix-Programming-Guidelines.md#实现)
-* [附录:文档注释](book/Appendix-Javadoc.md)
-* [附录:对象传递和返回](book/Appendix-Passing-and-Returning-Objects.md)
- * [传递引用](book/Appendix-Passing-and-Returning-Objects.md#传递引用)
- * [本地拷贝](book/Appendix-Passing-and-Returning-Objects.md#本地拷贝)
- * [控制克隆](book/Appendix-Passing-and-Returning-Objects.md#控制克隆)
- * [不可变类](book/Appendix-Passing-and-Returning-Objects.md#不可变类)
- * [本章小结](book/Appendix-Passing-and-Returning-Objects.md#本章小结)
-* [附录:流式IO](book/Appendix-IO-Streams.md)
- * [输入流类型](book/Appendix-IO-Streams.md#输入流类型)
- * [输出流类型](book/Appendix-IO-Streams.md#输出流类型)
- * [添加属性和有用的接口](book/Appendix-IO-Streams.md#添加属性和有用的接口)
- * [Reader和Writer](book/Appendix-IO-Streams.md#Reader和Writer)
- * [RandomAccessFile类](book/Appendix-IO-Streams.md#RandomAccessFile类)
- * [IO流典型用途](book/Appendix-IO-Streams.md#IO流典型用途)
- * [本章小结](book/Appendix-IO-Streams.md#本章小结)
-* [附录:标准IO](book/Appendix-Standard-IO.md)
- * [执行控制](book/Appendix-Standard-IO.md#执行控制)
-* [附录:新IO](book/Appendix-New-IO.md)
- * [ByteBuffer](book/Appendix-New-IO.md#ByteBuffer)
- * [转换数据](book/Appendix-New-IO.md#数据转换)
- * [获取原始类型](book/Appendix-New-IO.md#基本类型获取)
- * [视图缓冲区](book/Appendix-New-IO.md#视图缓冲区)
- * [使用缓冲区进行数据操作](book/Appendix-New-IO.md#缓冲区数据操作)
- * [内存映射文件](book/Appendix-New-IO.md#内存映射文件)
- * [文件锁定](book/Appendix-New-IO.md#文件锁定)
-* [附录:理解equals和hashCode方法](book/Appendix-Understanding-equals-and-hashCode.md)
- * [equals典范](book/Appendix-Understanding-equals-and-hashCode.md#equals典范)
- * [哈希和哈希码](book/Appendix-Understanding-equals-and-hashCode.md#哈希和哈希码)
- * [调整HashMap](book/Appendix-Understanding-equals-and-hashCode.md#调整HashMap)
-* [附录:集合主题](book/Appendix-Collection-Topics.md)
- * [示例数据](book/Appendix-Collection-Topics.md#示例数据)
- * [List表现](book/Appendix-Collection-Topics.md#List表现)
- * [Set表现](book/Appendix-Collection-Topics.md#Set表现)
- * [在Map中使用函数式操作](book/Appendix-Collection-Topics.md#在Map中使用函数式操作)
- * [选择Map的部分](book/Appendix-Collection-Topics.md#选择Map的部分)
- * [集合的fill方法](book/Appendix-Collection-Topics.md#集合的fill方法)
- * [使用Flyweight自定义集合和Map](book/Appendix-Collection-Topics.md#使用Flyweight自定义集合和Map)
- * [集合功能](book/Appendix-Collection-Topics.md#集合功能)
- * [可选操作](book/Appendix-Collection-Topics.md#可选操作)
- * [Set和存储顺序](book/Appendix-Collection-Topics.md#Set和存储顺序)
- * [队列](book/Appendix-Collection-Topics.md#队列)
- * [理解Map](book/Appendix-Collection-Topics.md#理解Map)
- * [集合工具类](book/Appendix-Collection-Topics.md#集合工具类)
- * [持有引用](book/Appendix-Collection-Topics.md#持有引用)
- * [避免旧式类库](book/Appendix-Collection-Topics.md#避免旧式类库)
- * [本章小结](book/Appendix-Collection-Topics.md#本章小结)
-* [附录:并发底层原理](book/Appendix-Low-Level-Concurrency.md)
- * [线程](book/Appendix-Low-Level-Concurrency.md#线程)
- * [异常捕获](book/Appendix-Low-Level-Concurrency.md#异常捕获)
- * [资源共享](book/Appendix-Low-Level-Concurrency.md#资源共享)
- * [volatile关键字](book/Appendix-Low-Level-Concurrency.md#volatile关键字)
- * [原子性](book/Appendix-Low-Level-Concurrency.md#原子性)
- * [关键部分](book/Appendix-Low-Level-Concurrency.md#关键部分)
- * [库组件](book/Appendix-Low-Level-Concurrency.md#库组件)
- * [本章小结](book/Appendix-Low-Level-Concurrency.md#本章小结)
-* [附录:数据压缩](book/Appendix-Data-Compression.md)
- * [使用Gzip简单压缩](book/Appendix-Data-Compression.md#使用Gzip简单压缩)
- * [使用zip多文件存储](book/Appendix-Data-Compression.md#使用zip多文件存储)
- * [Java的jar](book/Appendix-Data-Compression.md#Java的jar)
-* [附录:对象序列化](book/Appendix-Object-Serialization.md)
- * [查找类](book/Appendix-Object-Serialization.md#查找类)
- * [控制序列化](book/Appendix-Object-Serialization.md#控制序列化)
- * [使用持久化](book/Appendix-Object-Serialization.md#使用持久化)
-* [附录:静态语言类型检查](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md)
- * [前言](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#前言)
- * [静态类型检查和测试](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#静态类型检查和测试)
- * [如何提升打字](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#如何提升打字)
- * [生产力的成本](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#生产力的成本)
- * [静态和动态](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#静态和动态)
-* [附录:C++和Java的优良传统](book/Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java.md)
-* [附录:成为一名程序员](book/Appendix-Becoming-a-Programmer.md)
- * [如何开始](book/Appendix-Becoming-a-Programmer.md#如何开始)
- * [码农生涯](book/Appendix-Becoming-a-Programmer.md#码农生涯)
- * [百分之五的神话](book/Appendix-Becoming-a-Programmer.md#百分之五的神话)
- * [重在动手](book/Appendix-Becoming-a-Programmer.md#重在动手)
- * [像打字般编程](book/Appendix-Becoming-a-Programmer.md#像打字般编程)
- * [做你喜欢的事](book/Appendix-Becoming-a-Programmer.md#做你喜欢的事)
-* [词汇表](book/GLOSSARY.md)
diff --git a/docs/_style/prism-master/.editorconfig b/docs/_style/prism-master/.editorconfig
deleted file mode 100644
index b2e4603b..00000000
--- a/docs/_style/prism-master/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-root = true
-
-[*]
-insert_final_newline = false
-charset = utf-8
-indent_style = tab
-indent_size = 4
-
-[tests/languages/**.test]
-end_of_line = crlf
-
-[{package.json,.travis.yml}]
-indent_style = space
-indent_size = 2
\ No newline at end of file
diff --git a/docs/_style/prism-master/.gitattributes b/docs/_style/prism-master/.gitattributes
deleted file mode 100644
index 1d598bdc..00000000
--- a/docs/_style/prism-master/.gitattributes
+++ /dev/null
@@ -1,4 +0,0 @@
-* text=auto
-
-# Test files should not have their line endings modified by git
-/tests/languages/**/*.test binary
\ No newline at end of file
diff --git a/docs/_style/prism-master/.gitignore b/docs/_style/prism-master/.gitignore
deleted file mode 100644
index 3b16b7d3..00000000
--- a/docs/_style/prism-master/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-hide-*.js
-node_modules
-.idea/
-.DS_Store
diff --git a/docs/_style/prism-master/.npmignore b/docs/_style/prism-master/.npmignore
deleted file mode 100644
index 2ff075c9..00000000
--- a/docs/_style/prism-master/.npmignore
+++ /dev/null
@@ -1,27 +0,0 @@
-.idea
-*.iml
-
-hide-*.js
-
-CNAME
-examples/
-img/
-templates/
-tests/
-vendor/
-*.tgz
-*.html
-style.css
-favicon.png
-logo.svg
-bower.json
-composer.json
-download.js
-examples.js
-gulpfile.js
-prefixfree.min.js
-utopia.js
-code.js
-.editorconfig
-.gitattributes
-.travis.yml
\ No newline at end of file
diff --git a/docs/_style/prism-master/.travis.yml b/docs/_style/prism-master/.travis.yml
deleted file mode 100644
index 3d0c7d16..00000000
--- a/docs/_style/prism-master/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-language: node_js
-node_js:
-- '4'
-- '6'
-- '8'
-- '9'
-# Build all branches
-branches:
- only:
- - gh-pages
- - /.*/
-before_script:
-- npm install -g gulp
-- gulp
-script: npm test
-deploy:
- provider: npm
- email: lea@verou.me
- api_key:
- secure: TjRcXEr7Y/9KRJ4EOEQbd2Ij8hxKj8c/yOpEROy2lTYv6QH9x46nFDgZEE3VHfp/nnBUYpC47dRaSxiUj8H5rtkMNCZrREZu1n1zahmzP6dI6kCj+H3GiY7yw/Jhdx3uvQZHwknW2TJ/YRsLeQsmMSG2HnJobY9Zn4REX5ccP2E=
- on:
- tags: true
- repo: PrismJS/prism
diff --git a/docs/_style/prism-master/CHANGELOG.md b/docs/_style/prism-master/CHANGELOG.md
deleted file mode 100644
index 14c64052..00000000
--- a/docs/_style/prism-master/CHANGELOG.md
+++ /dev/null
@@ -1,1334 +0,0 @@
-# Prism Changelog
-
-## 1.15.0 (2018-06-16)
-
-### New components
-
-* __Template Tookit 2__ ([#1418](https://github.com/PrismJS/prism/issues/1418)) [[`e063992`](https://github.com/PrismJS/prism/commit/e063992)]
-* __XQuery__ ([#1411](https://github.com/PrismJS/prism/issues/1411)) [[`e326cb0`](https://github.com/PrismJS/prism/commit/e326cb0)]
-* __TAP__ ([#1430](https://github.com/PrismJS/prism/issues/1430)) [[`8c2b71f`](https://github.com/PrismJS/prism/commit/8c2b71f)]
-
-### Updated components
-
-* __HTTP__
- * Absolute path is a valid request uri ([#1388](https://github.com/PrismJS/prism/issues/1388)) [[`f6e81cb`](https://github.com/PrismJS/prism/commit/f6e81cb)]
-* __Kotlin__
- * Add keywords of Kotlin and modify it's number pattern. ([#1389](https://github.com/PrismJS/prism/issues/1389)) [[`1bf73b0`](https://github.com/PrismJS/prism/commit/1bf73b0)]
- * Add `typealias` keyword ([#1437](https://github.com/PrismJS/prism/issues/1437)) [[`a21fdee`](https://github.com/PrismJS/prism/commit/a21fdee)]
-* __JavaScript
- * Improve Regexp pattern [[`5b043cf`](https://github.com/PrismJS/prism/commit/5b043cf)]
- * Add support for one level of nesting inside template strings. Fix [#1397](https://github.com/PrismJS/prism/issues/1397) [[`db2d0eb`](https://github.com/PrismJS/prism/commit/db2d0eb)]
-* __Elixir__
- * Elixir: Fix attributes consuming punctuation. Fix [#1392](https://github.com/PrismJS/prism/issues/1392) [[`dac0485`](https://github.com/PrismJS/prism/commit/dac0485)]
-* __Bash__
- * Change reserved keyword reference ([#1396](https://github.com/PrismJS/prism/issues/1396)) [[`b94f01f`](https://github.com/PrismJS/prism/commit/b94f01f)]
-* __PowerShell__
- * Allow for one level of nesting in expressions inside strings. Fix [#1407](https://github.com/PrismJS/prism/issues/1407) [[`9272d6f`](https://github.com/PrismJS/prism/commit/9272d6f)]
-* __JSX__
- * Allow for two levels of nesting inside JSX tags. Fix [#1408](https://github.com/PrismJS/prism/issues/1408) [[`f1cd7c5`](https://github.com/PrismJS/prism/commit/f1cd7c5)]
- * Add support for fragments short syntax. Fix [#1421](https://github.com/PrismJS/prism/issues/1421) [[`38ce121`](https://github.com/PrismJS/prism/commit/38ce121)]
-* __Pascal__
- * Add `objectpascal` as an alias to `pascal` ([#1426](https://github.com/PrismJS/prism/issues/1426)) [[`a0bfc84`](https://github.com/PrismJS/prism/commit/a0bfc84)]
-* __Swift__
- * Fix Swift 'protocol' keyword ([#1440](https://github.com/PrismJS/prism/issues/1440)) [[`081e318`](https://github.com/PrismJS/prism/commit/081e318)]
-
-### Updated plugins
-
-* __File Highlight__
- * Fix issue causing the Download button to show up on every code blocks. [[`cd22499`](https://github.com/PrismJS/prism/commit/cd22499)]
- * Simplify lang regex on File Highlight plugin ([#1399](https://github.com/PrismJS/prism/issues/1399)) [[`7bc9a4a`](https://github.com/PrismJS/prism/commit/7bc9a4a)]
-* __Show Language__
- * Don't process language if block language not set ([#1410](https://github.com/PrismJS/prism/issues/1410)) [[`c111869`](https://github.com/PrismJS/prism/commit/c111869)]
-* __Autoloader__
- * ASP.NET should require C# [[`fa328bb`](https://github.com/PrismJS/prism/commit/fa328bb)]
-* __Line Numbers__
- * Make line-numbers styles more specific ([#1434](https://github.com/PrismJS/prism/issues/1434), [#1435](https://github.com/PrismJS/prism/issues/1435)) [[`9ee4f54`](https://github.com/PrismJS/prism/commit/9ee4f54)]
-
-### Updated themes
-
-* Add .token.class-name to rest of themes ([#1360](https://github.com/PrismJS/prism/issues/1360)) [[`f356dfe`](https://github.com/PrismJS/prism/commit/f356dfe)]
-
-### Other changes
-
-* __Website__
- * Site now loads over HTTPS!
- * Use HTTPS / canonical URLs ([#1390](https://github.com/PrismJS/prism/issues/1390)) [[`95146c8`](https://github.com/PrismJS/prism/commit/95146c8)]
- * Added Angular tutorial link [[`c436a7c`](https://github.com/PrismJS/prism/commit/c436a7c)]
- * Use rel="icon" instead of rel="shortcut icon" ([#1398](https://github.com/PrismJS/prism/issues/1398)) [[`d95f8fb`](https://github.com/PrismJS/prism/commit/d95f8fb)]
- * Fix Download page not handling multiple dependencies when from Redownload URL [[`c2ff248`](https://github.com/PrismJS/prism/commit/c2ff248)]
- * Update documentation for node & webpack usage [[`1e99e96`](https://github.com/PrismJS/prism/commit/1e99e96)]
-* Handle optional dependencies in `loadLanguages()` ([#1417](https://github.com/PrismJS/prism/issues/1417)) [[`84935ac`](https://github.com/PrismJS/prism/commit/84935ac)]
-* Add Chinese translation [[`f2b1964`](https://github.com/PrismJS/prism/commit/f2b1964)]
-
-## 1.14.0 (2018-04-11)
-
-### New components
-* __GEDCOM__ ([#1385](https://github.com/PrismJS/prism/issues/1385)) [[`6e0b20a`](https://github.com/PrismJS/prism/commit/6e0b20a)]
-* __Lisp__ ([#1297](https://github.com/PrismJS/prism/issues/1297)) [[`46468f8`](https://github.com/PrismJS/prism/commit/46468f8)]
-* __Markup Templating__ ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
-* __Soy__ ([#1387](https://github.com/PrismJS/prism/issues/1387)) [[`b4509bf`](https://github.com/PrismJS/prism/commit/b4509bf)]
-* __Velocity__ ([#1378](https://github.com/PrismJS/prism/issues/1378)) [[`5a524f7`](https://github.com/PrismJS/prism/commit/5a524f7)]
-* __Visual Basic__ ([#1382](https://github.com/PrismJS/prism/issues/1382)) [[`c673ec2`](https://github.com/PrismJS/prism/commit/c673ec2)]
-* __WebAssembly__ ([#1386](https://github.com/PrismJS/prism/issues/1386)) [[`c28d8c5`](https://github.com/PrismJS/prism/commit/c28d8c5)]
-
-### Updated components
-* __Bash__:
- * Add curl to the list of common functions. Close [#1160](https://github.com/PrismJS/prism/issues/1160) [[`1bfc084`](https://github.com/PrismJS/prism/commit/1bfc084)]
-* __C-like__:
- * Make single-line comments greedy. Fix [#1337](https://github.com/PrismJS/prism/issues/1337). Make sure [#1340](https://github.com/PrismJS/prism/issues/1340) stays fixed. [[`571f2c5`](https://github.com/PrismJS/prism/commit/571f2c5)]
-* __C#__:
- * More generic class-name highlighting. Fix [#1365](https://github.com/PrismJS/prism/issues/1365) [[`a6837d2`](https://github.com/PrismJS/prism/commit/a6837d2)]
- * More specific class-name highlighting. Fix [#1371](https://github.com/PrismJS/prism/issues/1371) [[`0a95f69`](https://github.com/PrismJS/prism/commit/0a95f69)]
-* __Eiffel__:
- * Fix verbatim strings. Fix [#1379](https://github.com/PrismJS/prism/issues/1379) [[`04df41b`](https://github.com/PrismJS/prism/commit/04df41b)]
-* __Elixir__
- * Make regexps greedy, remove comment hacks. Update known failures and tests. [[`e93d61f`](https://github.com/PrismJS/prism/commit/e93d61f)]
-* __ERB__:
- * Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
-* __Fortran__:
- * Make single-line comments greedy. Update known failures and tests. [[`c083b78`](https://github.com/PrismJS/prism/commit/c083b78)]
-* __Handlebars__:
- * Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
-* __Java__:
- * Add support for generics. Fix [#1351](https://github.com/PrismJS/prism/issues/1351) [[`a5cf302`](https://github.com/PrismJS/prism/commit/a5cf302)]
-* __JavaScript__:
- * Add support for constants. Fix [#1348](https://github.com/PrismJS/prism/issues/1348) [[`9084481`](https://github.com/PrismJS/prism/commit/9084481)]
- * Improve Regex matching [[`172d351`](https://github.com/PrismJS/prism/commit/172d351)]
-* __JSX__:
- * Fix highlighting of empty objects. Fix [#1364](https://github.com/PrismJS/prism/issues/1364) [[`b26bbb8`](https://github.com/PrismJS/prism/commit/b26bbb8)]
-* __Monkey__:
- * Make comments greedy. Update known failures and tests. [[`d7b2b43`](https://github.com/PrismJS/prism/commit/d7b2b43)]
-* __PHP__:
- * Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
-* __Puppet__:
- * Make heredoc, comments, regexps and strings greedy. Update known failures and tests. [[`0c139d1`](https://github.com/PrismJS/prism/commit/0c139d1)]
-* __Q__:
- * Make comments greedy. Update known failures and tests. [[`a0f5081`](https://github.com/PrismJS/prism/commit/a0f5081)]
-* __Ruby__:
- * Make multi-line comments greedy, remove single-line comment hack. Update known failures and tests. [[`b0e34fb`](https://github.com/PrismJS/prism/commit/b0e34fb)]
-* __SQL__:
- * Add missing keywords. Fix [#1374](https://github.com/PrismJS/prism/issues/1374) [[`238b195`](https://github.com/PrismJS/prism/commit/238b195)]
-
-### Updated plugins
-* __Command Line__:
- * Command Line: Allow specifying output prefix using data-filter-output attribute. ([#856](https://github.com/PrismJS/prism/issues/856)) [[`094d546`](https://github.com/PrismJS/prism/commit/094d546)]
-* __File Highlight__:
- * Add option to provide a download button, when used with the Toolbar plugin. Fix [#1030](https://github.com/PrismJS/prism/issues/1030) [[`9f22952`](https://github.com/PrismJS/prism/commit/9f22952)]
-
-### Updated themes
-* __Default__:
- * Reach AA contrast ratio level ([#1296](https://github.com/PrismJS/prism/issues/1296)) [[`8aea939`](https://github.com/PrismJS/prism/commit/8aea939)]
-
-### Other changes
-* Website: Remove broken third-party tutorials from homepage [[`0efd6e1`](https://github.com/PrismJS/prism/commit/0efd6e1)]
-* Docs: Mention `loadLanguages()` function on homepage in the nodeJS section. Close [#972](https://github.com/PrismJS/prism/issues/972), close [#593](https://github.com/PrismJS/prism/issues/593) [[`4a14d20`](https://github.com/PrismJS/prism/commit/4a14d20)]
-* Core: Greedy patterns should always be matched against the full string. Fix [#1355](https://github.com/PrismJS/prism/issues/1355) [[`294efaa`](https://github.com/PrismJS/prism/commit/294efaa)]
-* Crystal: Update known failures. [[`e1d2d42`](https://github.com/PrismJS/prism/commit/e1d2d42)]
-* D: Update known failures and tests. [[`13d9991`](https://github.com/PrismJS/prism/commit/13d9991)]
-* Markdown: Update known failures. [[`5b6c76d`](https://github.com/PrismJS/prism/commit/5b6c76d)]
-* Matlab: Update known failures. [[`259b6fc`](https://github.com/PrismJS/prism/commit/259b6fc)]
-* Website: Remove non-existent anchor to failures. Reword on homepage to make is less misleading. [[`8c0911a`](https://github.com/PrismJS/prism/commit/8c0911a)]
-* Website: Add link to Keep Markup plugin in FAQ [[`e8cb6d4`](https://github.com/PrismJS/prism/commit/e8cb6d4)]
-* Test suite: Memory leak in vm.runInNewContext() seems fixed. Revert [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)] to drastically improve tests execution time. [[`9bceece`](https://github.com/PrismJS/prism/commit/9bceece), [`7c7602b`](https://github.com/PrismJS/prism/commit/7c7602b)]
-* Gulp: Don't minify `components/index.js` [[`689227b`](https://github.com/PrismJS/prism/commit/689227b)]
-* Website: Fix theme selection on Download page, when theme is in query string or hash. [[`b4d3063`](https://github.com/PrismJS/prism/commit/b4d3063)]
-* Update JSPM config to also include unminified components. Close [#995](https://github.com/PrismJS/prism/issues/995) [[`218f160`](https://github.com/PrismJS/prism/commit/218f160)]
-* Core: Fix support for language alias containing dash `-` [[`659ea31`](https://github.com/PrismJS/prism/commit/659ea31)]
-
-## 1.13.0 (2018-03-21)
-
-### New components
-* __ERB__ [[`e6213ac`](https://github.com/PrismJS/prism/commit/e6213ac)]
-* __PL/SQL__ ([#1338](https://github.com/PrismJS/prism/issues/1338)) [[`3599e6a`](https://github.com/PrismJS/prism/commit/3599e6a)]
-
-### Updated components
-* __JSX__:
- * Add support for plain text inside tags ([#1357](https://github.com/PrismJS/prism/issues/1357)) [[`2b8321d`](https://github.com/PrismJS/prism/commit/2b8321d)]
-* __Markup__:
- * Make tags greedy. Fix [#1356](https://github.com/PrismJS/prism/issues/1356) [[`af834be`](https://github.com/PrismJS/prism/commit/af834be)]
-* __Powershell__:
- * Add lookbehind to fix function interpolation inside strings. Fix [#1361](https://github.com/PrismJS/prism/issues/1361) [[`d2c026e`](https://github.com/PrismJS/prism/commit/d2c026e)]
-* __Rust__:
- * Improve char pattern so that lifetime annotations are matched better. Fix [#1353](https://github.com/PrismJS/prism/issues/1353) [[`efdccbf`](https://github.com/PrismJS/prism/commit/efdccbf)]
-
-### Updated themes
-* __Default__:
- * Add color for class names [[`8572474`](https://github.com/PrismJS/prism/commit/8572474)]
-* __Coy__:
- * Inherit pre's height on code, so it does not break on Download page. [[`c6c7fd1`](https://github.com/PrismJS/prism/commit/c6c7fd1)]
-
-### Other changes
-* Website: Auto-generate example headers [[`c3ed5b5`](https://github.com/PrismJS/prism/commit/c3ed5b5)]
-* Core: Allow cloning of circular structures. ([#1345](https://github.com/PrismJS/prism/issues/1345)) [[`f90d555`](https://github.com/PrismJS/prism/commit/f90d555)]
-* Core: Generate components.js from components.json and make it exportable to nodeJS. ([#1354](https://github.com/PrismJS/prism/issues/1354)) [[`ba60df0`](https://github.com/PrismJS/prism/commit/ba60df0)]
-* Website: Improve appearance of theme selector [[`0460cad`](https://github.com/PrismJS/prism/commit/0460cad)]
-* Website: Check stored theme by default + link both theme selectors together. Close [#1038](https://github.com/PrismJS/prism/issues/1038) [[`212dd4e`](https://github.com/PrismJS/prism/commit/212dd4e)]
-* Tests: Use the new components.js file directly [[`0e1a8b7`](https://github.com/PrismJS/prism/commit/0e1a8b7)]
-* Update .npmignore Close [#1274](https://github.com/PrismJS/prism/issues/1274) [[`a52319a`](https://github.com/PrismJS/prism/commit/a52319a)]
-* Add a loadLanguages() function for easy component loading on NodeJS ([#1359](https://github.com/PrismJS/prism/issues/1359)) [[`a5331a6`](https://github.com/PrismJS/prism/commit/a5331a6)]
-
-## 1.12.2 (2018-03-08)
-
-### Other changes
-* Test against NodeJS 4, 6, 8 and 9 ([#1329](https://github.com/PrismJS/prism/issues/1329)) [[`97b7d0a`](https://github.com/PrismJS/prism/commit/97b7d0a)]
-* Stop testing against NodeJS 0.10 and 0.12 [[`df01b1b`](https://github.com/PrismJS/prism/commit/df01b1b)]
-
-## 1.12.1 (2018-03-08)
-
-### Updated components
-* __C-like__:
- * Revert [[`b98e5b9`](https://github.com/PrismJS/prism/commit/b98e5b9)] to fix [#1340](https://github.com/PrismJS/prism/issues/1340). Reopened [#1337](https://github.com/PrismJS/prism/issues/1337). [[`cebacdf`](https://github.com/PrismJS/prism/commit/cebacdf)]
-* __JSX__:
- * Allow for one level of nested curly braces inside tag attribute value. Fix [#1335](https://github.com/PrismJS/prism/issues/1335) [[`05bf67d`](https://github.com/PrismJS/prism/commit/05bf67d)]
-* __Ruby__:
- * Ensure module syntax is not confused with symbols. Fix [#1336](https://github.com/PrismJS/prism/issues/1336) [[`31a2a69`](https://github.com/PrismJS/prism/commit/31a2a69)]
-
-## 1.12.0 (2018-03-07)
-
-### New components
-* __ARFF__ ([#1327](https://github.com/PrismJS/prism/issues/1327)) [[`0bc98ac`](https://github.com/PrismJS/prism/commit/0bc98ac)]
-* __Clojure__ ([#1311](https://github.com/PrismJS/prism/issues/1311)) [[`8b4d3bd`](https://github.com/PrismJS/prism/commit/8b4d3bd)]
-* __Liquid__ ([#1326](https://github.com/PrismJS/prism/issues/1326)) [[`f0b2c9e`](https://github.com/PrismJS/prism/commit/f0b2c9e)]
-
-### Updated components
-* __Bash__:
- * Add shell as an alias ([#1321](https://github.com/PrismJS/prism/issues/1321)) [[`67e16a2`](https://github.com/PrismJS/prism/commit/67e16a2)]
- * Add support for quoted command substitution. Fix [#1287](https://github.com/PrismJS/prism/issues/1287) [[`63fc215`](https://github.com/PrismJS/prism/commit/63fc215)]
-* __C#__:
- * Add "dotnet" alias. [[`405867c`](https://github.com/PrismJS/prism/commit/405867c)]
-* __C-like__:
- * Change order of comment patterns and make multi-line one greedy. Fix [#1337](https://github.com/PrismJS/prism/issues/1337) [[`b98e5b9`](https://github.com/PrismJS/prism/commit/b98e5b9)]
-* __NSIS__:
- * Add support for NSIS 3.03 ([#1288](https://github.com/PrismJS/prism/issues/1288)) [[`bd1e98b`](https://github.com/PrismJS/prism/commit/bd1e98b)]
- * Add missing NSIS commands ([#1289](https://github.com/PrismJS/prism/issues/1289)) [[`ad2948f`](https://github.com/PrismJS/prism/commit/ad2948f)]
-* __PHP__:
- * Add support for string interpolation inside double-quoted strings. Fix [#1146](https://github.com/PrismJS/prism/issues/1146) [[`9f1f8d6`](https://github.com/PrismJS/prism/commit/9f1f8d6)]
- * Add support for Heredoc and Nowdoc strings [[`5d7223c`](https://github.com/PrismJS/prism/commit/5d7223c)]
- * Fix shell-comment failure now that strings are greedy [[`ad25d22`](https://github.com/PrismJS/prism/commit/ad25d22)]
-* __PowerShell__:
- * Add support for two levels of nested brackets inside namespace pattern. Fixes [#1317](https://github.com/PrismJS/prism/issues/1317) [[`3bc3e9c`](https://github.com/PrismJS/prism/commit/3bc3e9c)]
-* __Ruby__:
- * Add keywords "protected", "private" and "public" [[`4593837`](https://github.com/PrismJS/prism/commit/4593837)]
-* __Rust__:
- * Add support for lifetime-annotation and => operator. Fix [#1339](https://github.com/PrismJS/prism/issues/1339) [[`926f6f8`](https://github.com/PrismJS/prism/commit/926f6f8)]
-* __Scheme__:
- * Don't highlight first number of a list as a function. Fix [#1331](https://github.com/PrismJS/prism/issues/1331) [[`51bff80`](https://github.com/PrismJS/prism/commit/51bff80)]
-* __SQL__:
- * Add missing keywords and functions, fix numbers [[`de29d4a`](https://github.com/PrismJS/prism/commit/de29d4a)]
-
-### Updated plugins
-* __Autolinker__:
- * Allow more chars in query string and hash to match more URLs. Fix [#1142](https://github.com/PrismJS/prism/issues/1142) [[`109bd6f`](https://github.com/PrismJS/prism/commit/109bd6f)]
-* __Copy to Clipboard__:
- * Bump ClipboardJS to 2.0.0 and remove hack ([#1314](https://github.com/PrismJS/prism/issues/1314)) [[`e9f410e`](https://github.com/PrismJS/prism/commit/e9f410e)]
-* __Toolbar__:
- * Prevent scrolling toolbar with content ([#1305](https://github.com/PrismJS/prism/issues/1305), [#1314](https://github.com/PrismJS/prism/issues/1314)) [[`84eeb89`](https://github.com/PrismJS/prism/commit/84eeb89)]
-* __Unescaped Markup__:
- * Use msMatchesSelector for IE11 and below. Fix [#1302](https://github.com/PrismJS/prism/issues/1302) [[`c246c1a`](https://github.com/PrismJS/prism/commit/c246c1a)]
-* __WebPlatform Docs__:
- * WebPlatform Docs plugin: Fix links. Fixes [#1290](https://github.com/PrismJS/prism/issues/1290) [[`7a9dbe0`](https://github.com/PrismJS/prism/commit/7a9dbe0)]
-
-### Other changes
-* Fix Autoloader's demo page [[`3dddac9`](https://github.com/PrismJS/prism/commit/3dddac9)]
-* Download page: Use hash instead of query-string for redownload URL. Fix [#1263](https://github.com/PrismJS/prism/issues/1263) [[`b03c02a`](https://github.com/PrismJS/prism/commit/b03c02a)]
-* Core: Don't thow an error if lookbehing is used without anything matching. [[`e0cd47f`](https://github.com/PrismJS/prism/commit/e0cd47f)]
-* Docs: Fix link to the `` element specification in HTML5 [[`a84263f`](https://github.com/PrismJS/prism/commit/a84263f)]
-* Docs: Mention support for `lang-xxxx` class. Close [#1312](https://github.com/PrismJS/prism/issues/1312) [[`a9e76db`](https://github.com/PrismJS/prism/commit/a9e76db)]
-* Docs: Add note on `async` parameter to clarify the requirement of using a single bundled file. Closes [#1249](https://github.com/PrismJS/prism/issues/1249) [[`eba0235`](https://github.com/PrismJS/prism/commit/eba0235)]
-
-## 1.11.0 (2018-02-05)
-
-### New components
-* __Content-Security-Policy (CSP)__ ([#1275](https://github.com/PrismJS/prism/issues/1275)) [[`b08cae5`](https://github.com/PrismJS/prism/commit/b08cae5)]
-* __HTTP Public-Key-Pins (HPKP)__ ([#1275](https://github.com/PrismJS/prism/issues/1275)) [[`b08cae5`](https://github.com/PrismJS/prism/commit/b08cae5)]
-* __HTTP String-Transport-Security (HSTS)__ ([#1275](https://github.com/PrismJS/prism/issues/1275)) [[`b08cae5`](https://github.com/PrismJS/prism/commit/b08cae5)]
-* __React TSX__ ([#1280](https://github.com/PrismJS/prism/issues/1280)) [[`fbe82b8`](https://github.com/PrismJS/prism/commit/fbe82b8)]
-
-### Updated components
-* __C++__:
- * Add C++ platform-independent types ([#1271](https://github.com/PrismJS/prism/issues/1271)) [[`3da238f`](https://github.com/PrismJS/prism/commit/3da238f)]
-* __TypeScript__:
- * Improve typescript with builtins ([#1277](https://github.com/PrismJS/prism/issues/1277)) [[`5de1b1f`](https://github.com/PrismJS/prism/commit/5de1b1f)]
-
-### Other changes
-* Fix passing of non-enumerable Error properties from the child test runner ([#1276](https://github.com/PrismJS/prism/issues/1276)) [[`38df653`](https://github.com/PrismJS/prism/commit/38df653)]
-
-## 1.10.0 (2018-01-17)
-
-### New components
-* __6502 Assembly__ ([#1245](https://github.com/PrismJS/prism/issues/1245)) [[`2ece18b`](https://github.com/PrismJS/prism/commit/2ece18b)]
-* __Elm__ ([#1174](https://github.com/PrismJS/prism/issues/1174)) [[`d6da70e`](https://github.com/PrismJS/prism/commit/d6da70e)]
-* __IchigoJam BASIC__ ([#1246](https://github.com/PrismJS/prism/issues/1246)) [[`cf840be`](https://github.com/PrismJS/prism/commit/cf840be)]
-* __Io__ ([#1251](https://github.com/PrismJS/prism/issues/1251)) [[`84ed3ed`](https://github.com/PrismJS/prism/commit/84ed3ed)]
-
-### Updated components
-* __BASIC__:
- * Make strings greedy [[`60114d0`](https://github.com/PrismJS/prism/commit/60114d0)]
-* __C++__:
- * Add C++11 raw string feature ([#1254](https://github.com/PrismJS/prism/issues/1254)) [[`71595be`](https://github.com/PrismJS/prism/commit/71595be)]
-
-### Updated plugins
-* __Autoloader__:
- * Add support for `data-autoloader-path` ([#1242](https://github.com/PrismJS/prism/issues/1242)) [[`39360d6`](https://github.com/PrismJS/prism/commit/39360d6)]
-* __Previewers__:
- * New plugin combining previous plugins Previewer: Base, Previewer: Angle, Previewer: Color, Previewer: Easing, Previewer: Gradient and Previewer: Time. ([#1244](https://github.com/PrismJS/prism/issues/1244)) [[`28e4b4c`](https://github.com/PrismJS/prism/commit/28e4b4c)]
-* __Unescaped Markup__:
- * Make it work with any language ([#1265](https://github.com/PrismJS/prism/issues/1265)) [[`7bcdae7`](https://github.com/PrismJS/prism/commit/7bcdae7)]
-
-### Other changes
-* Add attribute `style` in `package.json` ([#1256](https://github.com/PrismJS/prism/issues/1256)) [[`a9b6785`](https://github.com/PrismJS/prism/commit/a9b6785)]
-
-## 1.9.0 (2017-12-06)
-
-### New components
-* __Flow__ [[`d27b70d`](https://github.com/PrismJS/prism/commit/d27b70d)]
-
-### Updated components
-* __CSS__:
- * Unicode characters in CSS properties ([#1227](https://github.com/PrismJS/prism/issues/1227)) [[`f234ea4`](https://github.com/PrismJS/prism/commit/f234ea4)]
-* __JSX__:
- * JSX: Improve highlighting support. Fix [#1235](https://github.com/PrismJS/prism/issues/1235) and [#1236](https://github.com/PrismJS/prism/issues/1236) [[`f41c5cd`](https://github.com/PrismJS/prism/commit/f41c5cd)]
-* __Markup__:
- * Make CSS and JS inclusions in Markup greedy. Fix [#1240](https://github.com/PrismJS/prism/issues/1240) [[`7dc1e45`](https://github.com/PrismJS/prism/commit/7dc1e45)]
-* __PHP__:
- * Add support for multi-line strings. Fix [#1233](https://github.com/PrismJS/prism/issues/1233) [[`9a542a0`](https://github.com/PrismJS/prism/commit/9a542a0)]
-
-### Updated plugins
-* __Copy to clipboard__:
- * Fix test for native Clipboard. Fix [#1241](https://github.com/PrismJS/prism/issues/1241) [[`e7b5e82`](https://github.com/PrismJS/prism/commit/e7b5e82)]
- * Copy to clipboard: Update to v1.7.1. Fix [#1220](https://github.com/PrismJS/prism/issues/1220) [[`a1b85e3`](https://github.com/PrismJS/prism/commit/a1b85e3), [`af50e44`](https://github.com/PrismJS/prism/commit/af50e44)]
-* __Line highlight__:
- * Fixes to compatibility of line number and line higlight plugins ([#1194](https://github.com/PrismJS/prism/issues/1194)) [[`e63058f`](https://github.com/PrismJS/prism/commit/e63058f), [`3842a91`](https://github.com/PrismJS/prism/commit/3842a91)]
-* __Unescaped Markup__:
- * Fix ambiguity in documentation by improving examples. Fix [#1197](https://github.com/PrismJS/prism/issues/1197) [[`924784a`](https://github.com/PrismJS/prism/commit/924784a)]
-
-### Other changes
-* Allow any element being root instead of document. ([#1230](https://github.com/PrismJS/prism/issues/1230)) [[`69f2e2c`](https://github.com/PrismJS/prism/commit/69f2e2c), [`6e50d44`](https://github.com/PrismJS/prism/commit/6e50d44)]
-* Coy Theme: The 'height' element makes code blocks the height of the browser canvas. ([#1224](https://github.com/PrismJS/prism/issues/1224)) [[`ac219d7`](https://github.com/PrismJS/prism/commit/ac219d7)]
-* Download page: Fix implicitly declared variable [[`f986551`](https://github.com/PrismJS/prism/commit/f986551)]
-* Download page: Add version number at the beginning of the generated files. Fix [#788](https://github.com/PrismJS/prism/issues/788) [[`928790d`](https://github.com/PrismJS/prism/commit/928790d)]
-
-## 1.8.4 (2017-11-05)
-
-### Updated components
-
-* __ABAP__:
- * Regexp optimisation [[`7547f83`](https://github.com/PrismJS/prism/commit/7547f83)]
-* __ActionScript__:
- * Fix XML regex + optimise [[`75d00d7`](https://github.com/PrismJS/prism/commit/75d00d7)]
-* __Ada__:
- * Regexp simplification [[`e881fe3`](https://github.com/PrismJS/prism/commit/e881fe3)]
-* __Apacheconf__:
- * Regexp optimisation [[`a065e61`](https://github.com/PrismJS/prism/commit/a065e61)]
-* __APL__:
- * Regexp simplification [[`33297c4`](https://github.com/PrismJS/prism/commit/33297c4)]
-* __AppleScript__:
- * Regexp optimisation [[`d879f36`](https://github.com/PrismJS/prism/commit/d879f36)]
-* __Arduino__:
- * Don't use captures if not needed [[`16b338f`](https://github.com/PrismJS/prism/commit/16b338f)]
-* __ASP.NET__:
- * Regexp optimisation [[`438926c`](https://github.com/PrismJS/prism/commit/438926c)]
-* __AutoHotkey__:
- * Regexp simplification + don't use captures if not needed [[`5edfd2f`](https://github.com/PrismJS/prism/commit/5edfd2f)]
-* __Bash__:
- * Regexp optimisation and simplification [[`75b9b29`](https://github.com/PrismJS/prism/commit/75b9b29)]
-* __Bro__:
- * Regexp simplification + don't use captures if not needed [[`d4b9003`](https://github.com/PrismJS/prism/commit/d4b9003)]
-* __C__:
- * Regexp optimisation + don't use captures if not needed [[`f61d487`](https://github.com/PrismJS/prism/commit/f61d487)]
-* __C++__:
- * Fix operator regexp + regexp simplification + don't use captures if not needed [[`ffeb26e`](https://github.com/PrismJS/prism/commit/ffeb26e)]
-* __C#__:
- * Remove duplicates in keywords + regexp optimisation + don't use captures if not needed [[`d28d178`](https://github.com/PrismJS/prism/commit/d28d178)]
-* __C-like__:
- * Regexp simplification + don't use captures if not needed [[`918e0ff`](https://github.com/PrismJS/prism/commit/918e0ff)]
-* __CoffeeScript__:
- * Regexp optimisation + don't use captures if not needed [[`5895978`](https://github.com/PrismJS/prism/commit/5895978)]
-* __Crystal__:
- * Remove trailing comma [[`16979a3`](https://github.com/PrismJS/prism/commit/16979a3)]
-* __CSS__:
- * Regexp simplification + don't use captures if not needed + handle multi-line style attributes [[`43d9f36`](https://github.com/PrismJS/prism/commit/43d9f36)]
-* __CSS Extras__:
- * Regexp simplification [[`134ed70`](https://github.com/PrismJS/prism/commit/134ed70)]
-* __D__:
- * Regexp optimisation [[`fbe39c9`](https://github.com/PrismJS/prism/commit/fbe39c9)]
-* __Dart__:
- * Regexp optimisation [[`f24e919`](https://github.com/PrismJS/prism/commit/f24e919)]
-* __Django__:
- * Regexp optimisation [[`a95c51d`](https://github.com/PrismJS/prism/commit/a95c51d)]
-* __Docker__:
- * Regexp optimisation [[`27f99ff`](https://github.com/PrismJS/prism/commit/27f99ff)]
-* __Eiffel__:
- * Regexp optimisation [[`b7cdea2`](https://github.com/PrismJS/prism/commit/b7cdea2)]
-* __Elixir__:
- * Regexp optimisation + uniform behavior between ~r and ~s [[`5d12e80`](https://github.com/PrismJS/prism/commit/5d12e80)]
-* __Erlang__:
- * Regexp optimisation [[`e7b411e`](https://github.com/PrismJS/prism/commit/e7b411e)]
-* __F#__:
- * Regexp optimisation + don't use captures if not needed [[`7753fc4`](https://github.com/PrismJS/prism/commit/7753fc4)]
-* __Gherkin__:
- * Regexp optimisation + don't use captures if not needed + added explanation comment on table-body regexp [[`f26197a`](https://github.com/PrismJS/prism/commit/f26197a)]
-* __Git__:
- * Regexp optimisation [[`b9483b9`](https://github.com/PrismJS/prism/commit/b9483b9)]
-* __GLSL__:
- * Regexp optimisation [[`e66d21b`](https://github.com/PrismJS/prism/commit/e66d21b)]
-* __Go__:
- * Regexp optimisation + don't use captures if not needed [[`88caabb`](https://github.com/PrismJS/prism/commit/88caabb)]
-* __GraphQL__:
- * Regexp optimisation and simplification [[`2474f06`](https://github.com/PrismJS/prism/commit/2474f06)]
-* __Groovy__:
- * Regexp optimisation + don't use captures if not needed [[`e74e00c`](https://github.com/PrismJS/prism/commit/e74e00c)]
-* __Haml__:
- * Regexp optimisation + don't use captures if not needed + fix typo in comment [[`23e3b43`](https://github.com/PrismJS/prism/commit/23e3b43)]
-* __Handlebars__:
- * Regexp optimisation + don't use captures if not needed [[`09dbfce`](https://github.com/PrismJS/prism/commit/09dbfce)]
-* __Haskell__:
- * Regexp simplification + don't use captures if not needed [[`f11390a`](https://github.com/PrismJS/prism/commit/f11390a)]
-* __HTTP__:
- * Regexp simplification + don't use captures if not needed [[`37ef24e`](https://github.com/PrismJS/prism/commit/37ef24e)]
-* __Icon__:
- * Regexp optimisation [[`9cf64a0`](https://github.com/PrismJS/prism/commit/9cf64a0)]
-* __J__:
- * Regexp simplification [[`de15150`](https://github.com/PrismJS/prism/commit/de15150)]
-* __Java__:
- * Don't use captures if not needed [[`96b35c8`](https://github.com/PrismJS/prism/commit/96b35c8)]
-* __JavaScript__:
- * Regexp optimisation + don't use captures if not needed [[`93d4002`](https://github.com/PrismJS/prism/commit/93d4002)]
-* __Jolie__:
- * Regexp optimisation + don't use captures if not needed + remove duplicates in keywords [[`a491f9e`](https://github.com/PrismJS/prism/commit/a491f9e)]
-* __JSON__:
- * Make strings greedy, remove negative look-ahead for ":". Fix [#1204](https://github.com/PrismJS/prism/issues/1204) [[`98acd2d`](https://github.com/PrismJS/prism/commit/98acd2d)]
- * Regexp optimisation + don't use captures if not needed [[`8fc1b03`](https://github.com/PrismJS/prism/commit/8fc1b03)]
-* __JSX__:
- * Regexp optimisation + handle spread operator as a whole [[`28de4e2`](https://github.com/PrismJS/prism/commit/28de4e2)]
-* __Julia__:
- * Regexp optimisation and simplification [[`12684c0`](https://github.com/PrismJS/prism/commit/12684c0)]
-* __Keyman__:
- * Regexp optimisation + don't use captures if not needed [[`9726087`](https://github.com/PrismJS/prism/commit/9726087)]
-* __Kotlin__:
- * Regexp simplification [[`12ff8dc`](https://github.com/PrismJS/prism/commit/12ff8dc)]
-* __LaTeX__:
- * Regexp optimisation and simplification [[`aa426b0`](https://github.com/PrismJS/prism/commit/aa426b0)]
-* __LiveScript__:
- * Make interpolated strings greedy + fix variable and identifier regexps [[`c581049`](https://github.com/PrismJS/prism/commit/c581049)]
-* __LOLCODE__:
- * Don't use captures if not needed [[`52903af`](https://github.com/PrismJS/prism/commit/52903af)]
-* __Makefile__:
- * Regexp optimisation [[`20ae2e5`](https://github.com/PrismJS/prism/commit/20ae2e5)]
-* __Markdown__:
- * Don't use captures if not needed [[`f489a1e`](https://github.com/PrismJS/prism/commit/f489a1e)]
-* __Markup__:
- * Regexp optimisation + fix punctuation inside attr-value [[`ea380c6`](https://github.com/PrismJS/prism/commit/ea380c6)]
-* __MATLAB__:
- * Make strings greedy + handle line feeds better [[`4cd4f01`](https://github.com/PrismJS/prism/commit/4cd4f01)]
-* __Monkey__:
- * Don't use captures if not needed [[`7f47140`](https://github.com/PrismJS/prism/commit/7f47140)]
-* __N4JS__:
- * Don't use captures if not needed [[`2d3f9df`](https://github.com/PrismJS/prism/commit/2d3f9df)]
-* __NASM__:
- * Regexp optimisation and simplification + don't use captures if not needed [[`9937428`](https://github.com/PrismJS/prism/commit/9937428)]
-* __nginx__:
- * Remove trailing comma + remove duplicates in keywords [[`c6e7195`](https://github.com/PrismJS/prism/commit/c6e7195)]
-* __NSIS__:
- * Regexp optimisation + don't use captures if not needed [[`beeb107`](https://github.com/PrismJS/prism/commit/beeb107)]
-* __Objective-C__:
- * Don't use captures if not needed [[`9be0f88`](https://github.com/PrismJS/prism/commit/9be0f88)]
-* __OCaml__:
- * Regexp simplification [[`5f5f38c`](https://github.com/PrismJS/prism/commit/5f5f38c)]
-* __OpenCL__:
- * Don't use captures if not needed [[`5e70f1d`](https://github.com/PrismJS/prism/commit/5e70f1d)]
-* __Oz__:
- * Fix atom regexp [[`9320e92`](https://github.com/PrismJS/prism/commit/9320e92)]
-* __PARI/GP__:
- * Regexp optimisation [[`2c7b59b`](https://github.com/PrismJS/prism/commit/2c7b59b)]
-* __Parser__:
- * Regexp simplification [[`569d511`](https://github.com/PrismJS/prism/commit/569d511)]
-* __Perl__:
- * Regexp optimisation and simplification + don't use captures if not needed [[`0fe4cf6`](https://github.com/PrismJS/prism/commit/0fe4cf6)]
-* __PHP__:
- * Don't use captures if not needed Golmote [[`5235f18`](https://github.com/PrismJS/prism/commit/5235f18)]
-* __PHP Extras__:
- * Add word boundary after global keywords + don't use captures if not needed [[`9049a2a`](https://github.com/PrismJS/prism/commit/9049a2a)]
-* __PowerShell__:
- * Regexp optimisation + don't use captures if not needed [[`0d05957`](https://github.com/PrismJS/prism/commit/0d05957)]
-* __Processing__:
- * Regexp simplification [[`8110d38`](https://github.com/PrismJS/prism/commit/8110d38)]
-* __.properties__:
- * Regexp optimisation [[`678b621`](https://github.com/PrismJS/prism/commit/678b621)]
-* __Protocol Buffers__:
- * Don't use captures if not needed [[`3e256d8`](https://github.com/PrismJS/prism/commit/3e256d8)]
-* __Pug__:
- * Don't use captures if not needed [[`76dc925`](https://github.com/PrismJS/prism/commit/76dc925)]
-* __Pure__:
- * Make inline-lang greedy [[`92318b0`](https://github.com/PrismJS/prism/commit/92318b0)]
-* __Python__:
- * Add Python builtin function highlighting ([#1205](https://github.com/PrismJS/prism/issues/1205)) [[`2169c99`](https://github.com/PrismJS/prism/commit/2169c99)]
- * Python: Add highlighting to functions with space between name and parentheses ([#1207](https://github.com/PrismJS/prism/issues/1207)) [[`3badd8a`](https://github.com/PrismJS/prism/commit/3badd8a)]
- * Make triple-quoted strings greedy + regexp optimisation and simplification [[`f09f9f5`](https://github.com/PrismJS/prism/commit/f09f9f5)]
-* __Qore__:
- * Regexp simplification [[`69459f0`](https://github.com/PrismJS/prism/commit/69459f0)]
-* __R__:
- * Regexp optimisation [[`06a9da4`](https://github.com/PrismJS/prism/commit/06a9da4)]
-* __Reason__:
- * Regexp optimisation + don't use capture if not needed [[`19d79b4`](https://github.com/PrismJS/prism/commit/19d79b4)]
-* __Ren'py__:
- * Make strings greedy + don't use captures if not needed [[`91d84d9`](https://github.com/PrismJS/prism/commit/91d84d9)]
-* __reST__:
- * Regexp simplification + don't use captures if not needed [[`1a8b3e9`](https://github.com/PrismJS/prism/commit/1a8b3e9)]
-* __Rip__:
- * Regexp optimisation [[`d7f0ee8`](https://github.com/PrismJS/prism/commit/d7f0ee8)]
-* __Ruby__:
- * Regexp optimisation and simplification + don't use captures if not needed [[`4902ed4`](https://github.com/PrismJS/prism/commit/4902ed4)]
-* __Rust__:
- * Regexp optimisation and simplification + don't use captures if not needed [[`cc9d874`](https://github.com/PrismJS/prism/commit/cc9d874)]
-* __Sass__:
- * Regexp simplification Golmote [[`165d957`](https://github.com/PrismJS/prism/commit/165d957)]
-* __Scala__:
- * Regexp optimisation Golmote [[`5f50c12`](https://github.com/PrismJS/prism/commit/5f50c12)]
-* __Scheme__:
- * Regexp optimisation [[`bd19b04`](https://github.com/PrismJS/prism/commit/bd19b04)]
-* __SCSS__:
- * Regexp simplification [[`c60b7d4`](https://github.com/PrismJS/prism/commit/c60b7d4)]
-* __Smalltalk__:
- * Regexp simplification [[`41a2c76`](https://github.com/PrismJS/prism/commit/41a2c76)]
-* __Smarty__:
- * Regexp optimisation and simplification [[`e169be9`](https://github.com/PrismJS/prism/commit/e169be9)]
-* __SQL__:
- * Regexp optimisation [[`a6244a4`](https://github.com/PrismJS/prism/commit/a6244a4)]
-* __Stylus__:
- * Regexp optimisation [[`df9506c`](https://github.com/PrismJS/prism/commit/df9506c)]
-* __Swift__:
- * Don't use captures if not needed [[`a2d737a`](https://github.com/PrismJS/prism/commit/a2d737a)]
-* __Tcl__:
- * Regexp simplification + don't use captures if not needed [[`f0b8a33`](https://github.com/PrismJS/prism/commit/f0b8a33)]
-* __Textile__:
- * Regexp optimisation + don't use captures if not needed [[`08139ad`](https://github.com/PrismJS/prism/commit/08139ad)]
-* __Twig__:
- * Regexp optimisation and simplification + don't use captures if not needed [[`0b10fd0`](https://github.com/PrismJS/prism/commit/0b10fd0)]
-* __TypeScript__:
- * Don't use captures if not needed [[`e296caf`](https://github.com/PrismJS/prism/commit/e296caf)]
-* __Verilog__:
- * Regexp simplification [[`1b24b34`](https://github.com/PrismJS/prism/commit/1b24b34)]
-* __VHDL__:
- * Regexp optimisation and simplification [[`7af36df`](https://github.com/PrismJS/prism/commit/7af36df)]
-* __vim__:
- * Remove duplicates in keywords [[`700505e`](https://github.com/PrismJS/prism/commit/700505e)]
-* __Wiki markup__:
- * Fix escaping consistency [[`1fd690d`](https://github.com/PrismJS/prism/commit/1fd690d)]
-* __YAML__:
- * Regexp optimisation + don't use captures if not needed [[`1fd690d`](https://github.com/PrismJS/prism/commit/1fd690d)]
-
-### Other changes
-* Remove comments spellcheck for AMP validation ([#1106](https://github.com/PrismJS/prism/issues/1106)) [[`de996d7`](https://github.com/PrismJS/prism/commit/de996d7)]
-* Prevent error from throwing when element does not have a parentNode in highlightElement. [[`c33be19`](https://github.com/PrismJS/prism/commit/c33be19)]
-* Provide a way to load Prism from inside a Worker without listening to messages. ([#1188](https://github.com/PrismJS/prism/issues/1188)) [[`d09982d`](https://github.com/PrismJS/prism/commit/d09982d)]
-
-## 1.8.3 (2017-10-19)
-
-### Other changes
-
-* Fix inclusion tests for Pug [[`955c2ab`](https://github.com/PrismJS/prism/commit/955c2ab)]
-
-## 1.8.2 (2017-10-19)
-
-### Updated components
-* __Jade__:
- * Jade has been renamed to __Pug__ ([#1201](https://github.com/PrismJS/prism/issues/1201)) [[`bcfef7c`](https://github.com/PrismJS/prism/commit/bcfef7c)]
-* __JavaScript__:
- * Better highlighting of functions ([#1190](https://github.com/PrismJS/prism/issues/1190)) [[`8ee2cd3`](https://github.com/PrismJS/prism/commit/8ee2cd3)]
-
-### Update plugins
-* __Copy to clipboard__:
- * Fix error occurring when using in Chrome 61+ ([#1206](https://github.com/PrismJS/prism/issues/1206)) [[`b41d571`](https://github.com/PrismJS/prism/commit/b41d571)]
-* __Show invisibles__:
- * Prevent error when using with Autoloader plugin ([#1195](https://github.com/PrismJS/prism/issues/1195)) [[`ed8bdb5`](https://github.com/PrismJS/prism/commit/ed8bdb5)]
-
-## 1.8.1 (2017-09-16)
-
-### Other changes
-
-* Add Arduino to components.js [[`290a3c6`](https://github.com/PrismJS/prism/commit/290a3c6)]
-
-## 1.8.0 (2017-09-16)
-
-### New components
-
-* __Arduino__ ([#1184](https://github.com/PrismJS/prism/issues/1184)) [[`edf2454`](https://github.com/PrismJS/prism/commit/edf2454)]
-* __OpenCL__ ([#1175](https://github.com/PrismJS/prism/issues/1175)) [[`131e8fa`](https://github.com/PrismJS/prism/commit/131e8fa)]
-
-### Updated plugins
-
-* __Autolinker__:
- * Silently catch any error thrown by decodeURIComponent. Fixes [#1186](https://github.com/PrismJS/prism/issues/1186) [[`2e43fcf`](https://github.com/PrismJS/prism/commit/2e43fcf)]
-
-## 1.7.0 (2017-09-09)
-
-### New components
-
-* __Django/Jinja2__ ([#1085](https://github.com/PrismJS/prism/issues/1085)) [[`345b1b2`](https://github.com/PrismJS/prism/commit/345b1b2)]
-* __N4JS__ ([#1141](https://github.com/PrismJS/prism/issues/1141)) [[`eaa8ebb`](https://github.com/PrismJS/prism/commit/eaa8ebb)]
-* __Ren'py__ ([#658](https://github.com/PrismJS/prism/issues/658)) [[`7ab4013`](https://github.com/PrismJS/prism/commit/7ab4013)]
-* __VB.Net__ ([#1122](https://github.com/PrismJS/prism/issues/1122)) [[`5400651`](https://github.com/PrismJS/prism/commit/5400651)]
-
-### Updated components
-
-* __APL__:
- * Add left shoe underbar and right shoe underbar ([#1072](https://github.com/PrismJS/prism/issues/1072)) [[`12238c5`](https://github.com/PrismJS/prism/commit/12238c5)]
- * Update prism-apl.js ([#1126](https://github.com/PrismJS/prism/issues/1126)) [[`a5f3cdb`](https://github.com/PrismJS/prism/commit/a5f3cdb)]
-* __C__:
- * Add more keywords and constants for C. ([#1029](https://github.com/PrismJS/prism/issues/1029)) [[`43a388e`](https://github.com/PrismJS/prism/commit/43a388e)]
-* __C#__:
- * Fix wrong highlighting when three slashes appear inside string. Fix [#1091](https://github.com/PrismJS/prism/issues/1091) [[`dfb6f17`](https://github.com/PrismJS/prism/commit/dfb6f17)]
-* __C-like__:
- * Add support for unclosed block comments. Close [#828](https://github.com/PrismJS/prism/issues/828) [[`3426ed1`](https://github.com/PrismJS/prism/commit/3426ed1)]
-* __Crystal__:
- * Update Crystal keywords ([#1092](https://github.com/PrismJS/prism/issues/1092)) [[`125bff1`](https://github.com/PrismJS/prism/commit/125bff1)]
-* __CSS Extras__:
- * Support CSS #RRGGBBAA ([#1139](https://github.com/PrismJS/prism/issues/1139)) [[`07a6806`](https://github.com/PrismJS/prism/commit/07a6806)]
-* __Docker__:
- * Add dockerfile alias for docker language ([#1164](https://github.com/PrismJS/prism/issues/1164)) [[`601c47f`](https://github.com/PrismJS/prism/commit/601c47f)]
- * Update the list of keywords for dockerfiles ([#1180](https://github.com/PrismJS/prism/issues/1180)) [[`f0d73e0`](https://github.com/PrismJS/prism/commit/f0d73e0)]
-* __Eiffel__:
- * Add class-name highlighting for Eiffel ([#471](https://github.com/PrismJS/prism/issues/471)) [[`cd03587`](https://github.com/PrismJS/prism/commit/cd03587)]
-* __Handlebars__:
- * Check for possible pre-existing marker strings in Handlebars [[`7a1a404`](https://github.com/PrismJS/prism/commit/7a1a404)]
-* __JavaScript__:
- * Properly match every operator as a whole token. Fix [#1133](https://github.com/PrismJS/prism/issues/1133) [[`9f649fb`](https://github.com/PrismJS/prism/commit/9f649fb)]
- * Allows uppercase prefixes in JS number literals ([#1151](https://github.com/PrismJS/prism/issues/1151)) [[`d4ee904`](https://github.com/PrismJS/prism/commit/d4ee904)]
- * Reduced backtracking in regex pattern. Fix [#1159](https://github.com/PrismJS/prism/issues/1159) [[`ac09e97`](https://github.com/PrismJS/prism/commit/ac09e97)]
-* __JSON__:
- * Fix property and string patterns performance. Fix [#1080](https://github.com/PrismJS/prism/issues/1080) [[`0ca1353`](https://github.com/PrismJS/prism/commit/0ca1353)]
-* __JSX__:
- * JSX spread operator break. Fixes [#1061](https://github.com/PrismJS/prism/issues/1061) ([#1094](https://github.com/PrismJS/prism/issues/1094)) [[`561bceb`](https://github.com/PrismJS/prism/commit/561bceb)]
- * Fix highlighting of attributes containing spaces [[`867ea42`](https://github.com/PrismJS/prism/commit/867ea42)]
- * Improved performance for tags (when not matching) Fix [#1152](https://github.com/PrismJS/prism/issues/1152) [[`b0fe103`](https://github.com/PrismJS/prism/commit/b0fe103)]
-* __LOLCODE__:
- * Make strings greedy Golmote [[`1a5e7a4`](https://github.com/PrismJS/prism/commit/1a5e7a4)]
-* __Markup__:
- * Support HTML entities in attribute values ([#1143](https://github.com/PrismJS/prism/issues/1143)) [[`1d5047d`](https://github.com/PrismJS/prism/commit/1d5047d)]
-* __NSIS__:
- * Update patterns ([#1033](https://github.com/PrismJS/prism/issues/1033)) [[`01a59d8`](https://github.com/PrismJS/prism/commit/01a59d8)]
- * Add support for NSIS 3.02 ([#1169](https://github.com/PrismJS/prism/issues/1169)) [[`393b5f7`](https://github.com/PrismJS/prism/commit/393b5f7)]
-* __PHP__:
- * Fix the PHP language ([#1100](https://github.com/PrismJS/prism/issues/1100)) [[`1453fa7`](https://github.com/PrismJS/prism/commit/1453fa7)]
- * Check for possible pre-existing marker strings in PHP [[`36bc560`](https://github.com/PrismJS/prism/commit/36bc560)]
-* __Ruby__:
- * Fix slash regex performance. Fix [#1083](https://github.com/PrismJS/prism/issues/1083) [[`a708730`](https://github.com/PrismJS/prism/commit/a708730)]
- * Add support for =begin =end comments. Manual merge of [#1121](https://github.com/PrismJS/prism/issues/1121). [[`62cdaf8`](https://github.com/PrismJS/prism/commit/62cdaf8)]
-* __Smarty__:
- * Check for possible pre-existing marker strings in Smarty [[`5df26e2`](https://github.com/PrismJS/prism/commit/5df26e2)]
-* __TypeScript__:
- * Update typescript keywords ([#1064](https://github.com/PrismJS/prism/issues/1064)) [[`52020a0`](https://github.com/PrismJS/prism/commit/52020a0)]
- * Chmod -x prism-typescript component ([#1145](https://github.com/PrismJS/prism/issues/1145)) [[`afe0542`](https://github.com/PrismJS/prism/commit/afe0542)]
-* __YAML__:
- * Make strings greedy (partial fix for [#1075](https://github.com/PrismJS/prism/issues/1075)) [[`565a2cc`](https://github.com/PrismJS/prism/commit/565a2cc)]
-
-### Updated plugins
-
-* __Autolinker__:
- * Fixed an rendering issue for encoded urls ([#1173](https://github.com/PrismJS/prism/issues/1173)) [[`abc007f`](https://github.com/PrismJS/prism/commit/abc007f)]
-* __Custom Class__:
- * Add missing noCSS property for the Custom Class plugin [[`ba64f8d`](https://github.com/PrismJS/prism/commit/ba64f8d)]
- * Added a default for classMap. Fixes [#1137](https://github.com/PrismJS/prism/issues/1137). ([#1157](https://github.com/PrismJS/prism/issues/1157)) [[`5400af9`](https://github.com/PrismJS/prism/commit/5400af9)]
-* __Keep Markup__:
- * Store highlightedCode after reinserting markup. Fix [#1127](https://github.com/PrismJS/prism/issues/1127) [[`6df2ceb`](https://github.com/PrismJS/prism/commit/6df2ceb)]
-* __Line Highlight__:
- * Cleanup left-over line-highlight tags before other plugins run [[`79b723d`](https://github.com/PrismJS/prism/commit/79b723d)]
- * Avoid conflict between line-highlight and other plugins [[`224fdb8`](https://github.com/PrismJS/prism/commit/224fdb8)]
-* __Line Numbers__:
- * Support soft wrap for line numbers plugin ([#584](https://github.com/PrismJS/prism/issues/584)) [[`849f1d6`](https://github.com/PrismJS/prism/commit/849f1d6)]
- * Plugins fixes (unescaped-markup, line-numbers) ([#1012](https://github.com/PrismJS/prism/issues/1012)) [[`3fb7cf8`](https://github.com/PrismJS/prism/commit/3fb7cf8)]
-* __Normalize Whitespace__:
- * Add Node.js support for the normalize-whitespace plugin [[`6c7dae2`](https://github.com/PrismJS/prism/commit/6c7dae2)]
-* __Unescaped Markup__:
- * Plugins fixes (unescaped-markup, line-numbers) ([#1012](https://github.com/PrismJS/prism/issues/1012)) [[`3fb7cf8`](https://github.com/PrismJS/prism/commit/3fb7cf8)]
-
-### Updated themes
-* __Coy__:
- * Scroll 'Coy' background with contents ([#1163](https://github.com/PrismJS/prism/issues/1163)) [[`310990b`](https://github.com/PrismJS/prism/commit/310990b)]
-
-### Other changes
-
-* Initial implementation of manual highlighting ([#1087](https://github.com/PrismJS/prism/issues/1087)) [[`bafc4cb`](https://github.com/PrismJS/prism/commit/bafc4cb)]
-* Remove dead link in Third-party tutorials section. Fixes [#1028](https://github.com/PrismJS/prism/issues/1028) [[`dffadc6`](https://github.com/PrismJS/prism/commit/dffadc6)]
-* Most languages now use the greedy flag for better highlighting [[`7549ecc`](https://github.com/PrismJS/prism/commit/7549ecc)]
-* .npmignore: Unignore components.js ([#1108](https://github.com/PrismJS/prism/issues/1108)) [[`1f699e7`](https://github.com/PrismJS/prism/commit/1f699e7)]
-* Run before-highlight and after-highlight hooks even when no grammar is found. Fix [#1134](https://github.com/PrismJS/prism/issues/1134) [[`70cb472`](https://github.com/PrismJS/prism/commit/70cb472)]
-* Replace [\w\W] with [\s\S] and [0-9] with \d in regexes ([#1107](https://github.com/PrismJS/prism/issues/1107)) [[`8aa2cc4`](https://github.com/PrismJS/prism/commit/8aa2cc4)]
-* Fix corner cases for the greedy flag ([#1095](https://github.com/PrismJS/prism/issues/1095)) [[`6530709`](https://github.com/PrismJS/prism/commit/6530709)]
-* Add Third Party Tutorial ([#1156](https://github.com/PrismJS/prism/issues/1156)) [[`c34e57b`](https://github.com/PrismJS/prism/commit/c34e57b)]
-* Add Composer support ([#648](https://github.com/PrismJS/prism/issues/648)) [[`2989633`](https://github.com/PrismJS/prism/commit/2989633)]
-* Remove IE8 plugin ([#992](https://github.com/PrismJS/prism/issues/992)) [[`25788eb`](https://github.com/PrismJS/prism/commit/25788eb)]
-* Website: remove width and height on logo.svg, so it becomes scalable. Close [#1005](https://github.com/PrismJS/prism/issues/1005) [[`0621ff7`](https://github.com/PrismJS/prism/commit/0621ff7)]
-* Remove yarn.lock ([#1098](https://github.com/PrismJS/prism/issues/1098)) [[`11eed25`](https://github.com/PrismJS/prism/commit/11eed25)]
-
-## 1.6.0 (2016-12-03)
-
-### New components
-
-* __.properties__ ([#980](https://github.com/PrismJS/prism/issues/980)) [[`be6219a`](https://github.com/PrismJS/prism/commit/be6219a)]
-* __Ada__ ([#949](https://github.com/PrismJS/prism/issues/949)) [[`65619f7`](https://github.com/PrismJS/prism/commit/65619f7)]
-* __GraphQL__ ([#971](https://github.com/PrismJS/prism/issues/971)) [[`e018087`](https://github.com/PrismJS/prism/commit/e018087)]
-* __Jolie__ ([#1014](https://github.com/PrismJS/prism/issues/1014)) [[`dfc1941`](https://github.com/PrismJS/prism/commit/dfc1941)]
-* __LiveScript__ ([#982](https://github.com/PrismJS/prism/issues/982)) [[`62e258c`](https://github.com/PrismJS/prism/commit/62e258c)]
-* __Reason__ (Fixes [#1046](https://github.com/PrismJS/prism/issues/1046)) [[`3cae6ce`](https://github.com/PrismJS/prism/commit/3cae6ce)]
-* __Xojo__ ([#994](https://github.com/PrismJS/prism/issues/994)) [[`0224b7c`](https://github.com/PrismJS/prism/commit/0224b7c)]
-
-### Updated components
-
-* __APL__:
- * Add iota underbar ([#1024](https://github.com/PrismJS/prism/issues/1024)) [[`3c5c89a`](https://github.com/PrismJS/prism/commit/3c5c89a), [`ac21d33`](https://github.com/PrismJS/prism/commit/ac21d33)]
-* __AsciiDoc__:
- * Optimized block regexps to prevent struggling on large files. Fixes [#1001](https://github.com/PrismJS/prism/issues/1001). [[`1a86d34`](https://github.com/PrismJS/prism/commit/1a86d34)]
-* __Bash__:
- * Add `npm` to function list ([#969](https://github.com/PrismJS/prism/issues/969)) [[`912bdfe`](https://github.com/PrismJS/prism/commit/912bdfe)]
-* __CSS__:
- * Make CSS strings greedy. Fix [#1013](https://github.com/PrismJS/prism/issues/1013). [[`e57e26d`](https://github.com/PrismJS/prism/commit/e57e26d)]
-* __CSS Extras__:
- * Match attribute inside selectors [[`13fed76`](https://github.com/PrismJS/prism/commit/13fed76)]
-* _Groovy__:
- * Fix order of decoding entities in groovy. Fixes [#1049](https://github.com/PrismJS/prism/issues/1049) ([#1050](https://github.com/PrismJS/prism/issues/1050)) [[`d75da8e`](https://github.com/PrismJS/prism/commit/d75da8e)]
-* __Ini__:
- * Remove important token in ini definition ([#1047](https://github.com/PrismJS/prism/issues/1047)) [[`fe8ad8b`](https://github.com/PrismJS/prism/commit/fe8ad8b)]
-* __JavaScript__:
- * Add exponentiation & spread/rest operator ([#991](https://github.com/PrismJS/prism/issues/991)) [[`b2de65a`](https://github.com/PrismJS/prism/commit/b2de65a), [`268d01e`](https://github.com/PrismJS/prism/commit/268d01e)]
-* __JSON_:
- * JSON: Fixed issues with properties and strings + added tests. Fix [#1025](https://github.com/PrismJS/prism/issues/1025) [[`25a541d`](https://github.com/PrismJS/prism/commit/25a541d)]
-* __Markup__:
- * Allow for dots in Markup tag names, but not in HTML tags included in Textile. Fixes [#888](https://github.com/PrismJS/prism/issues/888). [[`31ea66b`](https://github.com/PrismJS/prism/commit/31ea66b)]
- * Make doctype case-insensitive ([#1009](https://github.com/PrismJS/prism/issues/1009)) [[`3dd7219`](https://github.com/PrismJS/prism/commit/3dd7219)]
-* __NSIS__:
- * Updated patterns ([#1032](https://github.com/PrismJS/prism/issues/1032)) [[`76ba1b8`](https://github.com/PrismJS/prism/commit/76ba1b8)]
-* __PHP__:
- * Make comments greedy. Fix [#197](https://github.com/PrismJS/prism/issues/197) [[`318aab3`](https://github.com/PrismJS/prism/commit/318aab3)]
-* __PowerShell__:
- * Fix highlighting of empty comments ([#977](https://github.com/PrismJS/prism/issues/977)) [[`4fda477`](https://github.com/PrismJS/prism/commit/4fda477)]
-* __Puppet__:
- * Fix over-greedy regexp detection ([#978](https://github.com/PrismJS/prism/issues/978)) [[`105be25`](https://github.com/PrismJS/prism/commit/105be25)]
-* __Ruby__:
- * Fix typo `Fload` to `Float` in prism-ruby.js ([#1023](https://github.com/PrismJS/prism/issues/1023)) [[`22cb018`](https://github.com/PrismJS/prism/commit/22cb018)]
- * Make strings greedy. Fixes [#1048](https://github.com/PrismJS/prism/issues/1048) [[`8b0520a`](https://github.com/PrismJS/prism/commit/8b0520a)]
-* __SCSS__:
- * Alias statement as keyword. Fix [#246](https://github.com/PrismJS/prism/issues/246) [[`fd09391`](https://github.com/PrismJS/prism/commit/fd09391)]
- * Highlight variables inside selectors and properties. [[`d6b5c2f`](https://github.com/PrismJS/prism/commit/d6b5c2f)]
- * Highlight parent selector [[`8f5f1fa`](https://github.com/PrismJS/prism/commit/8f5f1fa)]
-* __TypeScript__:
- * Add missing `from` keyword to typescript & set `ts` as alias. ([#1042](https://github.com/PrismJS/prism/issues/1042)) [[`cba78f3`](https://github.com/PrismJS/prism/commit/cba78f3)]
-
-### New plugins
-
-* __Copy to Clipboard__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)]
-* __Custom Class__ ([#950](https://github.com/PrismJS/prism/issues/950)) [[`a0bd686`](https://github.com/PrismJS/prism/commit/a0bd686)]
-* __Data-URI Highlight__ ([#996](https://github.com/PrismJS/prism/issues/996)) [[`bdca61b`](https://github.com/PrismJS/prism/commit/bdca61b)]
-* __Toolbar__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)]
-
-### Updated plugins
-
-* __Autoloader__:
- * Updated documentation for Autoloader plugin [[`b4f3423`](https://github.com/PrismJS/prism/commit/b4f3423)]
- * Download all grammars as a zip from Autoloader plugin page ([#981](https://github.com/PrismJS/prism/issues/981)) [[`0d0a007`](https://github.com/PrismJS/prism/commit/0d0a007), [`5c815d3`](https://github.com/PrismJS/prism/commit/5c815d3)]
- * Removed duplicated script on Autoloader plugin page [[`9671996`](https://github.com/PrismJS/prism/commit/9671996)]
- * Don't try to load "none" component. Fix [#1000](https://github.com/PrismJS/prism/issues/1000) [[`f89b0b9`](https://github.com/PrismJS/prism/commit/f89b0b9)]
-* __WPD__:
- * Fix at-rule detection + don't process if language is not handled [[`2626728`](https://github.com/PrismJS/prism/commit/2626728)]
-
-### Other changes
-
-* Improvement to greedy-flag ([#967](https://github.com/PrismJS/prism/issues/967)) [[`500121b`](https://github.com/PrismJS/prism/commit/500121b), [`9893489`](https://github.com/PrismJS/prism/commit/9893489)]
-* Add setTimeout fallback for requestAnimationFrame. Fixes [#987](https://github.com/PrismJS/prism/issues/987). ([#988](https://github.com/PrismJS/prism/issues/988)) [[`c9bdcd3`](https://github.com/PrismJS/prism/commit/c9bdcd3)]
-* Added aria-hidden attributes on elements created by the Line Highlight and Line Numbers plugins. Fixes [#574](https://github.com/PrismJS/prism/issues/574). [[`e5587a7`](https://github.com/PrismJS/prism/commit/e5587a7)]
-* Don't insert space before ">" when there is no attributes [[`3dc8c9e`](https://github.com/PrismJS/prism/commit/3dc8c9e)]
-* Added missing hooks-related tests for AsciiDoc, Groovy, Handlebars, Markup, PHP and Smarty [[`c1a0c1b`](https://github.com/PrismJS/prism/commit/c1a0c1b)]
-* Fix issue when using Line numbers plugin and Normalise whitespace plugin together with Handlebars, PHP or Smarty. Fix [#1018](https://github.com/PrismJS/prism/issues/1018), [#997](https://github.com/PrismJS/prism/issues/997), [#935](https://github.com/PrismJS/prism/issues/935). Revert [#998](https://github.com/PrismJS/prism/issues/998). [[`86aa3d2`](https://github.com/PrismJS/prism/commit/86aa3d2)]
-* Optimized logo ([#990](https://github.com/PrismJS/prism/issues/990)) ([#1002](https://github.com/PrismJS/prism/issues/1002)) [[`f69e570`](https://github.com/PrismJS/prism/commit/f69e570), [`218fd25`](https://github.com/PrismJS/prism/commit/218fd25)]
-* Remove unneeded prefixed CSS ([#989](https://github.com/PrismJS/prism/issues/989)) [[`5e56833`](https://github.com/PrismJS/prism/commit/5e56833)]
-* Optimize images ([#1007](https://github.com/PrismJS/prism/issues/1007)) [[`b2fa6d5`](https://github.com/PrismJS/prism/commit/b2fa6d5)]
-* Add yarn.lock to .gitignore ([#1035](https://github.com/PrismJS/prism/issues/1035)) [[`03ecf74`](https://github.com/PrismJS/prism/commit/03ecf74)]
-* Fix greedy flag bug. Fixes [#1039](https://github.com/PrismJS/prism/issues/1039) [[`32cd99f`](https://github.com/PrismJS/prism/commit/32cd99f)]
-* Ruby: Fix test after [#1023](https://github.com/PrismJS/prism/issues/1023) [[`b15d43b`](https://github.com/PrismJS/prism/commit/b15d43b)]
-* Ini: Fix test after [#1047](https://github.com/PrismJS/prism/issues/1047) [[`25cdd3f`](https://github.com/PrismJS/prism/commit/25cdd3f)]
-* Reduce risk of XSS ([#1051](https://github.com/PrismJS/prism/issues/1051)) [[`17e33bc`](https://github.com/PrismJS/prism/commit/17e33bc)]
-* env.code can be modified by before-sanity-check hook even when using language-none. Fix [#1066](https://github.com/PrismJS/prism/issues/1066) [[`83bafbd`](https://github.com/PrismJS/prism/commit/83bafbd)]
-
-
-## 1.5.1 (2016-06-05)
-
-### Updated components
-
-* __Normalize Whitespace__:
- * Add class that disables the normalize whitespace plugin [[`9385c54`](https://github.com/PrismJS/prism/commit/9385c54)]
-* __JavaScript Language__:
- * Rearrange the `string` and `template-string` token in JavaScript [[`1158e46`](https://github.com/PrismJS/prism/commit/1158e46)]
-* __SQL Language__:
- * add delimeter and delimeters keywords to sql ([#958](https://github.com/PrismJS/prism/pull/958)) [[`a9ef24e`](https://github.com/PrismJS/prism/commit/a9ef24e)]
- * add AUTO_INCREMENT and DATE keywords to sql ([#954](https://github.com/PrismJS/prism/pull/954)) [[`caea2af`](https://github.com/PrismJS/prism/commit/caea2af)]
-* __Diff Language__:
- * Highlight diff lines with only + or - ([#952](https://github.com/PrismJS/prism/pull/952)) [[`4d0526f`](https://github.com/PrismJS/prism/commit/4d0526f)]
-
-### Other changes
-
-* Allow for asynchronous loading of prism.js ([#959](https://github.com/PrismJS/prism/pull/959))
-* Use toLowerCase on language names ([#957](https://github.com/PrismJS/prism/pull/957)) [[`acd9508`](https://github.com/PrismJS/prism/commit/acd9508)]
-* link to index for basic usage - fixes [#945](https://github.com/PrismJS/prism/issues/945) ([#946](https://github.com/PrismJS/prism/pull/946)) [[`6c772d8`](https://github.com/PrismJS/prism/commit/6c772d8)]
-* Fixed monospace typo ([#953](https://github.com/PrismJS/prism/pull/953)) [[`e6c3498`](https://github.com/PrismJS/prism/commit/e6c3498)]
-
-## 1.5.0 (2016-05-01)
-
-### New components
-
-* __Bro Language__ ([#925](https://github.com/PrismJS/prism/pull/925))
-* __Protocol Buffers Language__ ([#938](https://github.com/PrismJS/prism/pull/938)) [[`ae4a4f2`](https://github.com/PrismJS/prism/commit/ae4a4f2)]
-
-### Updated components
-
-* __Keep Markup__:
- * Fix Keep Markup plugin incorrect highlighting ([#880](https://github.com/PrismJS/prism/pull/880)) [[`24841ef`](https://github.com/PrismJS/prism/commit/24841ef)]
-* __Groovy Language__:
- * Fix double HTML-encoding bug in Groovy language [[`24a0936`](https://github.com/PrismJS/prism/commit/24a0936)]
-* __Java Language__:
- * Adding annotation token for Java ([#905](https://github.com/PrismJS/prism/pull/905)) [[`367ace6`](https://github.com/PrismJS/prism/commit/367ace6)]
-* __SAS Language__:
- * Add missing keywords for SAS ([#922](https://github.com/PrismJS/prism/pull/922))
-* __YAML Language__:
- * fix hilighting of YAML keys on first line of code block ([#943](https://github.com/PrismJS/prism/pull/943)) [[`f19db81`](https://github.com/PrismJS/prism/commit/f19db81)]
-* __C# Language__:
- * Support for generic methods in csharp [[`6f75735`](https://github.com/PrismJS/prism/commit/6f75735)]
-
-### New plugins
-
-* __Unescaped Markup__ [[`07d77e5`](https://github.com/PrismJS/prism/commit/07d77e5)]
-* __Normalize Whitespace__ ([#847](https://github.com/PrismJS/prism/pull/847)) [[`e86ec01`](https://github.com/PrismJS/prism/commit/e86ec01)]
-
-### Other changes
-
-* Add JSPM support [[`ad048ab`](https://github.com/PrismJS/prism/commit/ad048ab)]
-* update linear-gradient syntax from `left` to `to right` [[`cd234dc`](https://github.com/PrismJS/prism/commit/cd234dc)]
-* Add after-property to allow ordering of plugins [[`224b7a1`](https://github.com/PrismJS/prism/commit/224b7a1)]
-* Partial solution for the "Comment-like substrings"-problem [[`2705c50`](https://github.com/PrismJS/prism/commit/2705c50)]
-* Add property 'aliasTitles' to components.js [[`54400fb`](https://github.com/PrismJS/prism/commit/54400fb)]
-* Add before-highlightall hook [[`70a8602`](https://github.com/PrismJS/prism/commit/70a8602)]
-* Fix catastrophic backtracking regex issues in JavaScript [[`ab65be2`](https://github.com/PrismJS/prism/commit/ab65be2)]
-
-## 1.4.1 (2016-02-03)
-
-### Other changes
-
-* Fix DFS bug in Prism core [[`b86c727`](https://github.com/PrismJS/prism/commit/b86c727)]
-
-## 1.4.0 (2016-02-03)
-
-### New components
-
-* __Solarized Light__ ([#855](https://github.com/PrismJS/prism/pull/855)) [[`70846ba`](https://github.com/PrismJS/prism/commit/70846ba)]
-* __JSON__ ([#370](https://github.com/PrismJS/prism/pull/370)) [[`ad2fcd0`](https://github.com/PrismJS/prism/commit/ad2fcd0)]
-
-### Updated components
-
-* __Show Language__:
- * Remove data-language attribute ([#840](https://github.com/PrismJS/prism/pull/840)) [[`eb9a83c`](https://github.com/PrismJS/prism/commit/eb9a83c)]
- * Allow custom label without a language mapping ([#837](https://github.com/PrismJS/prism/pull/837)) [[`7e74aef`](https://github.com/PrismJS/prism/commit/7e74aef)]
-* __JSX__:
- * Better Nesting in JSX attributes ([#842](https://github.com/PrismJS/prism/pull/842)) [[`971dda7`](https://github.com/PrismJS/prism/commit/971dda7)]
-* __File Highlight__:
- * Defer File Highlight until the full DOM has loaded. ([#844](https://github.com/PrismJS/prism/pull/844)) [[`6f995ef`](https://github.com/PrismJS/prism/commit/6f995ef)]
-* __Coy Theme__:
- * Fix coy theme shadows ([#865](https://github.com/PrismJS/prism/pull/865)) [[`58d2337`](https://github.com/PrismJS/prism/commit/58d2337)]
-* __Show Invisibles__:
- * Ensure show-invisibles compat with autoloader ([#874](https://github.com/PrismJS/prism/pull/874)) [[`c3cfb1f`](https://github.com/PrismJS/prism/commit/c3cfb1f)]
- * Add support for the space character for the show-invisibles plugin ([#876](https://github.com/PrismJS/prism/pull/876)) [[`05442d3`](https://github.com/PrismJS/prism/commit/05442d3)]
-
-### New plugins
-
-* __Command Line__ ([#831](https://github.com/PrismJS/prism/pull/831)) [[`8378906`](https://github.com/PrismJS/prism/commit/8378906)]
-
-### Other changes
-
-* Use document.currentScript instead of document.getElementsByTagName() [[`fa98743`](https://github.com/PrismJS/prism/commit/fa98743)]
-* Add prefix for Firefox selection and move prefixed rule first [[`6d54717`](https://github.com/PrismJS/prism/commit/6d54717)]
-* No background for `` in `` [[`8c310bc`](https://github.com/PrismJS/prism/commit/8c310bc)]
-* Fixing to initial copyright year [[`69cbf7a`](https://github.com/PrismJS/prism/commit/69cbf7a)]
-* Simplify the “lang” regex [[`417f54a`](https://github.com/PrismJS/prism/commit/417f54a)]
-* Fix broken heading links [[`a7f9e62`](https://github.com/PrismJS/prism/commit/a7f9e62)]
-* Prevent infinite recursion in DFS [[`02894e1`](https://github.com/PrismJS/prism/commit/02894e1)]
-* Fix incorrect page title [[`544b56f`](https://github.com/PrismJS/prism/commit/544b56f)]
-* Link scss to webplatform wiki [[`08d979a`](https://github.com/PrismJS/prism/commit/08d979a)]
-* Revert white-space to normal when code is inline instead of in a pre [[`1a971b5`](https://github.com/PrismJS/prism/commit/1a971b5)]
-
-## 1.3.0 (2015-10-26)
-
-### New components
-
-* __AsciiDoc__ ([#800](https://github.com/PrismJS/prism/issues/800)) [[`6803ca0`](https://github.com/PrismJS/prism/commit/6803ca0)]
-* __Haxe__ ([#811](https://github.com/PrismJS/prism/issues/811)) [[`bd44341`](https://github.com/PrismJS/prism/commit/bd44341)]
-* __Icon__ ([#803](https://github.com/PrismJS/prism/issues/803)) [[`b43c5f3`](https://github.com/PrismJS/prism/commit/b43c5f3)]
-* __Kotlin ([#814](https://github.com/PrismJS/prism/issues/814)) [[`e8a31a5`](https://github.com/PrismJS/prism/commit/e8a31a5)]
-* __Lua__ ([#804](https://github.com/PrismJS/prism/issues/804)) [[`a36bc4a`](https://github.com/PrismJS/prism/commit/a36bc4a)]
-* __Nix__ ([#795](https://github.com/PrismJS/prism/issues/795)) [[`9b275c8`](https://github.com/PrismJS/prism/commit/9b275c8)]
-* __Oz__ ([#805](https://github.com/PrismJS/prism/issues/805)) [[`388c53f`](https://github.com/PrismJS/prism/commit/388c53f)]
-* __PARI/GP__ ([#802](https://github.com/PrismJS/prism/issues/802)) [[`253c035`](https://github.com/PrismJS/prism/commit/253c035)]
-* __Parser__ ([#808](https://github.com/PrismJS/prism/issues/808)) [[`a953b3a`](https://github.com/PrismJS/prism/commit/a953b3a)]
-* __Puppet__ ([#813](https://github.com/PrismJS/prism/issues/813)) [[`81933ee`](https://github.com/PrismJS/prism/commit/81933ee)]
-* __Roboconf__ ([#812](https://github.com/PrismJS/prism/issues/812)) [[`f5db346`](https://github.com/PrismJS/prism/commit/f5db346)]
-
-### Updated components
-
-* __C__:
- * Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
-* __C#__:
- * Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
- * Fix detection of float numbers ([#806](https://github.com/PrismJS/prism/issues/806)) [[`1dae72b`](https://github.com/PrismJS/prism/commit/1dae72b)]
-* __F#__:
- * Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
-* __JavaScript__:
- * Highlight true and false as booleans ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
-* __Python__:
- * Highlight triple-quoted strings before comments. Fix [#815](https://github.com/PrismJS/prism/issues/815) [[`90fbf0b`](https://github.com/PrismJS/prism/commit/90fbf0b)]
-
-### New plugins
-
-* __Previewer: Time__ ([#790](https://github.com/PrismJS/prism/issues/790)) [[`88173de`](https://github.com/PrismJS/prism/commit/88173de)]
-* __Previewer: Angle__ ([#791](https://github.com/PrismJS/prism/issues/791)) [[`a434c86`](https://github.com/PrismJS/prism/commit/a434c86)]
-
-### Other changes
-
-* Increase mocha's timeout [[`f1c41db`](https://github.com/PrismJS/prism/commit/f1c41db)]
-* Prevent most errors in IE8. Fix [#9](https://github.com/PrismJS/prism/issues/9) [[`9652d75`](https://github.com/PrismJS/prism/commit/9652d75)]
-* Add U.S. Web Design Standards on homepage. Fix [#785](https://github.com/PrismJS/prism/issues/785) [[`e10d48b`](https://github.com/PrismJS/prism/commit/e10d48b), [`79ebbf8`](https://github.com/PrismJS/prism/commit/79ebbf8), [`2f7088d`](https://github.com/PrismJS/prism/commit/2f7088d)]
-* Added gulp task to autolink PRs and commits in changelog [[`5ec4e4d`](https://github.com/PrismJS/prism/commit/5ec4e4d)]
-* Use child processes to run each set of tests, in order to deal with the memory leak in vm.runInNewContext() [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)]
-
-## 1.2.0 (2015-10-07)
-
-### New components
-
-* __Batch__ ([#781](https://github.com/PrismJS/prism/issues/781)) [[`eab5b06`](https://github.com/PrismJS/prism/commit/eab5b06)]
-
-### Updated components
-
-* __ASP.NET__:
- * Simplified pattern for `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-