模板与变量
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 |
词汇表的路径 |