模板与变量
1.模板
Gitbook 可以使用模板来扩展定制化功能 
Gitbook 可以使用 Nunjucks 和 jinja2 的语法 
- 熟悉 
Python Web 开发会比较熟悉 jinja2 
jinja2 语法简单,主要使用 {} 来标记需要处理的内容 
1.1.jinja2语法
jinja2 主要有两种语法:
- 1.控制结构(if、for): 
{%  %} 
- 2.变量取值: 
{{ var }} 
 
1.控制结构
 
{% if var %}
    变量为: var
{% endif %}
{% if var1 %}
    var1: var
{% elif var2 %}  
    var1: var
{% else %}
    unknow: var
{% endif %}
{% for item in items %}
    item: {{ item }}
{% endfor %}
1.2.转义
- 如果想原样输出内容,则可以进行转义
 
- 比如在写这篇时,就需要将这一部分转义
 
{% raw %}
   原样输出 {{ 原样输出 }}
{% endraw %}
2.变量
Gitbook 变量主要包括: 全局变量、Book变量、Gitbook变量、File变量、Page变量、其他变量 
2.1.全局变量
| 变量 | 
描述 | 
| book | 
book.json的全书信息+配置设置 | 
| gitbook | 
GitBook特定信息 | 
| page | 
当前页特定信息 | 
| file | 
与当前页特定信息相关联的文件 | 
| readme | 
自述相关内容 | 
| glossary | 
词汇相关内容 | 
| summary | 
菜单相关内容 | 
| languages | 
多语言书籍列表 | 
| output | 
输出相关内容 | 
| config | 
book.json相关内容 | 
2.2.Book变量
- 该变量主要是 
book.json 中配置的数据。如果想自定义变量,Book变量是最佳选择 
| 变量 | 
描述 | 
| book.language | 
多语言书的当前语言 | 
| book.[value] | 
在book.json中的variables下的所有其他值都可以在这里访问 | 
- 可以在
book.json增加自定义变量: variables 
{
    "variables": {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    }
}
2.3.Gitbook变量
- 该变量用来获取生成 
book 的 gitbook 的基本信息 
| 变量 | 
描述 | 
| gitbook.time | 
当前时间(当你运行gitbook命令时) | 
| gitbook.version | 
GitBook用于生成图书的版本 | 
2.4.File变量
| 变量 | 
描述 | 
| file.path | 
原始页面的路径 | 
| file.mtime | 
修改时间,上次修改文件的时间 | 
| file.type | 
用于编译此文件的语法解析器的名称(例如:markdown,asciidoc等) | 
2.5.Page变量
| 变量 | 
描述 | 
| page.title | 
页面标题 | 
| page.previous | 
内容表中的前一页(可以是“null”) | 
| page.next | 
内容表中的下一页(可以是“null”) | 
| page.dir | 
文本方向,基于配置(rtl或ltr) | 
2.6.其他变量
| 变量 | 
描述 | 
| summary.parts | 
内容列表,可以访问整个目录(SUMMARY.md) | 
| languages.list | 
本书的语言环境列表 | 
| output.name | 
输出生成器的名称,可能的值是website,json,ebook | 
| output.format | 
当output.name ==“ebook”,format定义将生成的电子书格式,可能的值是pdf,epub或mobi | 
| readme.path | 
自述文件的路径 | 
| glossary.path | 
词汇表的路径 |