使用 Gitbook 打造前端文档落地平台

    最近遇到一些问题,就是团队中会有些伙伴踩得坑的收集问题或者有些较为复杂的业务需求文档共享上成本较高,所以考虑弄一个文档落地平台,供大家去沉淀、分享自己的问题或者感悟。诸如此类的东西有很多,参考其他组的方式,选择使用gitbook来作为我们组的沉淀平台\(^o^)/~下面来简单介绍下他的搭建和使用。

简单介绍下

GitBook 是使用 GitHub / Git 和 Markdown(或AsciiDoc)构建漂亮书籍的命令行工具(和Node.js库)。可以将您的内容作为网站(可定制和可扩展)或电子书(PDF,ePub或Mobi)输出。

GitBook.com 是使用 GitBook 格式创建和托管图书的在线平台。它提供托管,协作功能和易于使用的编辑器。

1

GitBook 安装

安装 GitBook 是很简单的。您的系统只需要满足这两个要求:

NodeJS(推荐使用v4.0.0及以上版本)

Windows,Linux,Unix 或 Mac OS X

通过NPM安装

安装 GitBook 的最好办法是通过 NPM。在终端提示符下,只需运行以下命令即可安装 GitBook:

 npm install gitbook-cli -g

gitbook-cli 是 GitBook 的一个命令行工具。它将自动安装所需版本的 GitBook 来构建一本书。

执行下面的命令,查看 GitBook 版本,以验证安装成功。

gitbook -V

安装历史版本

gitbook-cli 可以轻松下载并安装其他版本的GitBook来测试您的书籍:

gitbook fetch beta

使用 gitbook ls-remote 会列举可以下载的版本。

如何创建一本书

GitBook可以设置一个样板书:

 gitbook init

如果您希望将书籍创建到一个新目录中,可以通过运行 gitbook init ./directory 这样做。

使用下面的命令,会在项目的目录下生成一个 _book 目录,里面的内容为静态站点的资源文件:

 gitbook build

Debugging

您可以使用选项 --log=debug 和 --debug 来获取更好的错误消息(使用堆栈跟踪)。例如:

gitbook build ./ --log=debug --debug

启动服务

使用下列命令会运行一个 web 服务, 通过 http://localhost:4000/ 可以预览书籍

gitbook serve

GitBook 命令

这里主要介绍一下 GitBook 的命令行工具 gitbook-cli 的一些命令, 首先说明两点:

gitbook-cli 和 gitbook 是两个软件

gitbook-cli 会将下载的 gitbook 的不同版本放到 ~/.gitbook中, 可以通过设置GITBOOK_DIR环境变量来指定另外的文件夹

列出 gitbook 所有的命令

gitbook help

输出 gitbook-cli 的帮助信息

gitbook --help

生成静态网页

gitbook build

生成静态网页并运行服务器

gitbook serve(此处可以配置启动的目录)

生成时指定gitbook的版本, 本地没有会先下载

gitbook build --gitbook=2.0.1

列出本地所有的gitbook版本

gitbook ls

列出远程可用的gitbook版本

gitbook ls-remote

安装对应的gitbook版本

gitbook fetch 标签/版本号

更新到gitbook的最新版本

gitbook update

卸载对应的gitbook版本

gitbook uninstall 2.0.1

指定log的级别

gitbook build --log=debug

输出错误信息

gitbook builid --debug

Gitbook 目录结构

GitBook 项目结构

GitBook使用简单的目录结构。在 SUMMARY (即 SUMMARY.md 文件)中列出的所有 Markdown / Asciidoc 文件将被转换为 HTML。多语言书籍结构略有不同。

一个基本的 GitBook 电子书结构通常如下:

.

├── book.json

├── README.md

├── SUMMARY.md

├── chapter-1/

|  ├── README.md

|  └── something.md

└── chapter-2/

    ├── README.md

    └── something.md

GitBook 特殊文件的功能:

文件 描述

book.json 配置数据 (optional)

README.md 电子书的前言或简介 (required)

SUMMARY.md 电子书目录 (optional)

GLOSSARY.md 词汇/注释术语列表 (optional)

静态文件和图片

静态文件是在 SUMMARY.md 中未列出的文件。除非被忽略,否则所有静态文件都将复制到输出路径。

忽略文件和文件夹

GitBook将读取 .gitignore,.bookignore 和 .ignore 文件,以获取要过滤的文件和文件夹。这些文件中的格式遵循 .gitignore 的规则:

# This is a comment

# Ignore the file test.md

test.md

# Ignore everything in the directory "bin"

bin/*

项目与子目录集成

对于软件项目,您可以使用子目录(如 docs/ )来存储项目文档的图书。您可以配置根选项来指示 GitBook 可以找到该图书文件的文件夹:

.

├── book.json

└── docs/

    ├── README.md

    └── SUMMARY.md

在 book.json 中配置以下内容:

{

    "root": "./docs"

}

Summary

GitBook 使用 SUMMARY.md 文件来定义本书的章节和子章节的结构。 SUMMARY.md 文件用于生成本书的目录。

SUMMARY.md 的格式是一个链接列表。链接的标题将作为章节的标题,链接的目标是该章节文件的路径。

向父章节添加嵌套列表将创建子章节。

简单示例:

# Summary

* [Part I](part1/README.md)

    * [Writing is nice](part1/writing.md)

    * [GitBook is nice](part1/gitbook.md)

* [Part II](part2/README.md)

    * [We love feedback](part2/feedback_please.md)

    * [Better tools for authors](part2/better_tools.md)

每章都有一个专用页面(part#/README.md),并分为子章节。

锚点

目录中的章节可以使用锚点指向文件的特定部分。

# Summary

### Part I

* [Part I](part1/README.md)

    * [Writing is nice](part1/README.md#writing)

    * [GitBook is nice](part1/README.md#gitbook)

* [Part II](part2/README.md)

    * [We love feedback](part2/README.md#feedback)

    * [Better tools for authors](part2/README.md#tools)

部分

目录可以分为以标题或水平线 ---- 分隔的部分:

# Summary

### Part I

* [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)

Parts 只是章节组,没有专用页面,但根据主题,它将在导航中显示。

页面

Markdown 语法

默认情况下,GitBook 的大多数文件都使用 Markdown 语法。 GitBook 推荐使用这种语法。所使用的语法类似于 GitHub Flavored Markdown syntax 。

此外,你还可以选择 AsciiDoc 语法。

页面内容示例:

# Title of the chapter

This is a great introduction.

## Section 1

Markdown will dictates _most_ of your **book's structure**

## Section 2

...

页面前言

页面可以包含一个可选的前言。它可以用于定义页面的描述。前面的事情必须是文件中的第一件事,必须采取在三虚线之间设置的有效YAML的形式。这是一个基本的例子:

---

description: This is a short description of my page

---

# The content of my page

...

Glossary

允许您指定要显示为注释的术语及其各自的定义。根据这些术语,GitBook 将自动构建索引并突出显示这些术语。

GLOSSARY.md 的格式是 h2 标题的列表,以及描述段落:

## Term

Definition for this term

## Another term

With it's definition, this can contain bold text

and all other kinds of inline markup ...

Gitbook 配置

GitBook 允许您使用灵活的配置自定义您的电子书。

这些选项在 book.json 文件中指定。对于不熟悉 JSON 语法的作者,您可以使用 JSONlint 等工具验证语法。

常规设置

变量 描述

root 包含所有图书文件的根文件夹的路径,除了 book.json

structure 指定自述文件,摘要,词汇表等的路径,参考 Structure paragraph.

title 您的书名,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预填的。

description 您的书籍的描述,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预填的。

author 作者名。在GitBook.com上,这个字段是预填的。

isbn 国际标准书号 ISBN

language 本书的语言类型 —— ISO code 。默认值是 en

direction 文本阅读顺序。可以是 rtl (从右向左)或 ltr (从左向右),默认值依赖于 language 的值。

gitbook 应该使用的GitBook版本。使用 SemVer 规范,并接受类似于 “> = 3.0.0” 的条件。

author

作者姓名,在GitBook.com上,这个字段是预先填写的。

例:

"author" : "victor zhang"

description

电子书的描述,默认值是从 README 中提取出来的。在GitBook.com上,这个字段是预先填写的。

例:

"description" : "Gitbook 教程"

direction

文本的方向。可以是 rtl 或 ltr,默认值取决于语言的值。

例:

"direction" : "ltr"

gitbook

应该使用的GitBook版本。使用SemVer规范,接受类似于 >=3.0.0 的条件。

例:

"gitbook" : "3.0.0",

"gitbook" : ">=3.0.0"

language

Gitbook使用的语言, 版本2.6.4中可选的语言如下:

en, ar, bn, cs, de, en, es, fa, fi, fr, he, it, ja, ko, no, pl, pt, ro, ru, sv, uk, vi, zh-hans, zh-tw

例:

"language" : "zh-hans",

links

在左侧导航栏添加链接信息

例:

"links" : {

    "sidebar" : {

        "Home" : "https://github.com/atlantis1024/gitbook-notes"

    }

}

root

包含所有图书文件的根文件夹的路径, book.json 文件除外。

例:

"root" : "./docs",

structure

指定 Readme、Summary、Glossary 和 Languages 对应的文件名。

styles

自定义页面样式, 默认情况下各generator对应的css文件

例:

"styles": {

    "website": "styles/website.css",

    "ebook": "styles/ebook.css",

    "pdf": "styles/pdf.css",

    "mobi": "styles/mobi.css",

    "epub": "styles/epub.css"

}

例如要使 h1、h2 标签有下边框, 可以在 website.css 中设置

h1 , h2{

    border-bottom: 1px solid #EFEAEA;

}

title

电子书的书名,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预先填写的。

例:

"title" : "gitbook-notes",

plugins

插件及其配置在 book.json 中指定。有关详细信息。

自 3.0.0 版本开始,GitBook 可以使用主题。有关详细信息,请参阅  the theming section 。

变量 描述

plugins 要加载的插件列表

pluginsConfig 插件的配置

添加插件

"plugins": [

    "splitter"

]

添加新插件之后需要运行 gitbook install 来安装新的插件

去除自带插件

Gitbook 默认带有 5 个插件:

highlight

search

sharing

font-settings

livereload

想要去除他们可以这样

"plugins": [

    "-search"

]

更多具体的细节,可以参考这篇文章:使用 Gitbook 打造你的电子书

就写到这,不多说啦,搬砖去咯( ̄▽ ̄)/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,069评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,212评论 1 287
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,912评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,424评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,741评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,194评论 1 206
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,553评论 2 307
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,289评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,923评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,251评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,775评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,144评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,698评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,936评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,658评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,214评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,159评论 2 258

推荐阅读更多精彩内容

  • 概述 GitBook 是使用 GitHub / Git 和 Markdown(或AsciiDoc)构建漂亮书籍的命...
    辉这样说阅读 3,003评论 0 4
  • 本文详细讲解了 Gitbook 生成电子书的完整过程,内容包括:安装、命令、配置、文档结构、生成电子书、部署。限于...
    静默虚空阅读 11,126评论 9 138
  • 首先先献上 我的 GitBook 地址,可以在我的 博客 导航栏处找到,下面进行相关的介绍。 背景 由于之前都把零...
    Blankj阅读 257,762评论 14 228
  • 1. GitHub 1.1. 创建账户 https://github.com/ 在上面注册账户: gitexam...
    蝴蝶泉nq阅读 4,512评论 1 3
  • 走狗公案的产生,一种说法是因郑板桥与袁枚交恶,袁枚故意编造事实黑郑燮的。还举例说清末民初的国学大师章太炎对...
    乂安_0990阅读 713评论 0 0