模板与变量

1.模板

  • Gitbook 可以使用模板来扩展定制化功能
  • Gitbook 可以使用 Nunjucksjinja2 的语法
  • 熟悉 Python Web 开发会比较熟悉 jinja2
  • jinja2 语法简单,主要使用 {} 来标记需要处理的内容

1.1.jinja2语法

  • jinja2 主要有两种语法:

    • 1.控制结构(if、for): {% %}
    • 2.变量取值: {{ var }}
  • 1.控制结构

    • if: 与多数编程语言一样
# if
{% if var %}
    变量为: var
{% endif %}

# if elase
{% if var1 %}
    var1: var
{% elif var2 %}  
    var1: var
{% else %}
    unknow: var
{% endif %}
  • for: 类似于shellpython
{% for item in items %}
    item: {{ item }}
{% endfor %}

1.2.转义

  • 如果想原样输出内容,则可以进行转义
  • 比如在写这篇时,就需要将这一部分转义
{% raw %}
   原样输出 {{ 原样输出 }}
{% endraw %}

2.变量

  • Gitbook 变量主要包括: 全局变量Book变量Gitbook变量File变量Page变量其他变量

2.1.全局变量

  • Gitbook 内置了很多全局变量
变量 描述
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变量

  • 该变量用来获取生成 bookgitbook 的基本信息
变量 描述
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 词汇表的路径
Copyright by SKYNE all right reserved,powered by Gitbook 2022-04-25

results matching ""

    No results matching ""