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