2.3.1. 创建及使用

Gitbook 的基本用法非常简单,基本上就只有两步:

  1. 使用 gitbook init 初始化书籍目录
  2. 使用 gitbook serve 编译預覽书籍

2.3.1.1. 创建书籍

mkdir book
cd book
gitbook init

#輸出
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished

使用tree命令查看目录树
tree
#輸出
.
├── README.md
└── SUMMARY.md

README.md 及 SUMMARY.md 是两个必要文件

2.3.1.2. 格式

GitBook 约定了下面这些文件的作用:

  • README:书本的介绍
  • SUMMARY:章节结构
  • LANGS:多语言书籍
  • GLOSSARY:术语描述的清单

至少需要一个 README 和 SUMMARY 文件来构建一本书。

2.3.1.3. 自述和介绍

书本的第一页内容是从文件 README.md 中提取的。如果这个文件名没有出现在 SUMMARY 中,那么它会被添加为章节的第一个条目。

使用其他文件替代README.md

一些托管在 GitBook 上的书更加喜欢将 README.md 文件作为项目的介绍而不是书的介绍。

可以在 book.json 中定义某个文件作为 README 。

2.3.1.4. 章节设置

通过 SUMMARY.md 定义目录结构,通过 gitbook init 自动生成目录结构对应的文件夹和 Markdown 文件。也可以先创建好章节目录及文件,再回来编辑目录。

目录示例

 #Summary
 * [第一章](chapter1.md)
 * [第二章](chapter2.md)
 * [第三章](chapter3.md)

多层结构目录示例

 #Summary
* [第一章](section1/README.md)
    * [第一节](section1/example1.md)
    * [第二节](section1/example2.md)
* [第二章](section2/README.md)
    * [第一节](section2/example1.md)

使用标题或水平分割线将目录分成几个部分

# Summary

### Part I

* [Introduction](README.md)
* [Writing is nice](part1/writing.md)
* [GitBook is nice](part1/gitbook.md)

### Part II

* [We love feedback](part2/feedback_please.md)
* [Better tools for authors](part2/better_tools.md)

----

* [Last part without title](part3/title.md)

2.3.1.5. 多语言

GitBook 支持多种语言编写图书。每种语言必须是一个子目录,子目录结构与 GitBook 结构相同(拥有各自的 README.md 、 SUMMARY.md 以及实际内容文件), LANGS.md 在外层父目录(书籍项目根目录),其内容格式如下:

LANGS.md

* [English](en/)
* [zh-hans](zh-hans/)
* [zh-tw](zh-tw/)

示例:Learn Git

2.3.1.6. 忽略目录和文件

GitBook 会读取 .gitignore,.bookignore 以及 .ignore 这三个档案,根据里面的内容,忽略特定的文件或子目录。(格式为一行一个文件或目录。)

.gitignore

# 忽略 test.md 文件
test.md

# 忽略 "bin" 目录下所有文件
bin/*

2.3.1.7. 术语表

在术语表中指定要显示的术语和其各自的定义。基于这些条件 gitbook 会自动建立索引,并在内容页面中高亮显示这些术语。注意不支持中文术语

GLOSSARY.md

# git
是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools 一个类似Norton Commander界面的文件管理器)不同。

# GitHub
GitHub是通过Git进行版本控制的软件源代码托管服务平台,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

2.3.1.8. 封面

cover.jpgcover_small.jpg缩略图

最佳尺寸

缩略图
文件 cover.jpg cover_small.jpg
大小 1800x2360 200x262

插件 autocover 同样可以实现,参照 https://github.com/GitbookIO/plugin-autocover

2.3.1.9. 模板 待添加

注意与配置中 variables 有关

2.3.1.10. 内容引用

内容参考 (conref) 是便于用来重复使用其他文件和书本内容。

导入本地文件

使用 include 标签导入其他文件的内容真的很简单:

{% include "./test.md" %}

从其他书本导入文件

GitBook 同样能处理使用了git协议的include路径:

{% include "git+https://github.com/GitbookIO/documentation.git/README.md#0.0.1" %}

git的url格式是:

git+https://[email protected]/project/blah.git/file#commit-ish

真实的git url应该以 .git 结尾,导入的文件名从 .git 之后的 url 片段提取。

commit-ish 可以是任何可以作为 git checkout 参数的标签,sha,或分支。默认是 master

继承

模板继承是一种重复使用模板的简单方式。当写完一个模板,你可以定义 "block" 让字模板来替换。继承链可以任意长。

block 在模板中定义了一个区域并用一个名字标识了它。基类模板可以指定一些块,而子类可以用新的内容替换它们。

{% extends "./mypage.md" %}

{% block pageContent %}
# This is my page content
{% endblock %}

在文件 mypage.md 中,你应该指定用来替换内容的块。

{% block pageContent %}
This is the default content
{% endblock %}

# License

{% import "./LICENSE" %}

2.3.1.11. gitbook指令集

gitbook help 指令查看所有指令集,如下

build [book] [output]       build a book
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
    --format                Format to build to (Default is website; Values are website, json, ebook)
    --[no-]timing           Print timing debug information (Default is false)

serve [book] [output]       serve the book as a website for testing
    --port                  Port for server to listen on (Default is 4000)
    --lrport                Port for livereload server to listen on (Default is 35729)
    --[no-]watch            Enable file watcher and live reloading (Default is true)
    --[no-]live             Enable live reloading (Default is true)
    --[no-]open             Enable opening book in browser (Default is false)
    --browser               Specify browser for opening book (Default is )
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
    --format                Format to build to (Default is website; Values are website, json, ebook)

install [book]              install all plugins dependencies
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

parse [book]                parse and print debug information about a book
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

init [book]                 setup and create files for chapters
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

pdf [book] [output]         build a book into an ebook file
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

epub [book] [output]        build a book into an ebook file
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)

mobi [book] [output]        build a book into an ebook file
    --log                   Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled) 
Copyright © augustdoit 2020 all right reserved,powered by Gitbook该文件修订时间: 2020-10-12 14:43:08

results matching ""

    No results matching ""