模板

GitBook可使用模板特性来扩展定制化功能。

GitBook使用 NunjucksJinja2 的语法。

语法使用大括号{}来标记需要处理的内容。

变量

变量会从书本内容中寻找对应的值。

如果你想简单地显示一个变量,你可以使用{{variable}}语法。

定义变量

变量被定义在 book.json 文件中:

{
    "variables": {
        "mapull": "码谱,让编程更容易。"
    }
}

这样定义了一个变量 mapull,取值为 "码谱,让编程更容易。"

显示变量

定义在 book.json 中的变量可以在 book 作用域下被访问:

这会从书本的变量中寻找 mapull 并显示它。变量的名字可以存在点 (dot) 来查找属性。你同样可以使用方括号语法。

在页面上{{ book.mapull }}的语法会被显示为 -> 码谱,让编程更容易。

在页面上{{ book["mapull"] }}的语法会被显示为 -> 码谱,让编程更容易。

如果对应的值没有定义,那么什么也不会显示。

下面这些语句不会输出任何东西,如果 foo 没有定义的话:

{{ book.foo }}{{ book.foo.far }}{{ book.foo.bar.baz }}

在页面上{{ book.foo }}的语法会被显示为 ->

什么都没有被显示出来,是因为根本没有定义该变量。

上下文变量

一些变量也可以用来获取当前文件或GitBook实例的信息。

变量内容比较多,参见 变量

标签

标签是在章节和模板中执行操作的特殊块

If

if 测试一个条件并让你选择性的显示内容。它的行为的和编程语言中的 if 一样。

如果 variable 被定义了并且是真的,那么 "变量为真" 就会被显示出来。否则,没有任何东西会被显示。

    {% if variable %}
        变量为真
    {% endif %}

你可以使用elif和else来指定选择性条件:

    {% if hungry %}
        我很饿
    {% elif tired %}
        我很累
    {% else %}
        我很好!
    {% endif %}

for

for 迭代数组和字典。

让我们来看一下 book.json 中的变量:

{ 
  "variables": { 
    "ides": [ { "name": "Eclipse" }, { "name": "IntelliJ IDEA" },{ "name": "Visual Studio Code" } ]
  }
 }

编程常用的IDE:

{% for ides in ide %}

{{ide.name}}

{% endfor %}

上面的例子使用 ides 数组的每项的 name 属性作为显示的值,列出了所有的IDE。

转义

如果你想要输出任何特殊的目标标签,你可以使用raw,任何在其中的内容都会原样输出。

{% raw %}
   这些内容 {{ 不会被处理 }}
{% endraw %}

results matching ""

    No results matching ""