GitBook安装和使用


GitBook 编写API接口文档非常的不错,但由于访问太慢,在此搭建本地的GitBook

一、快速开始

  1. 安装Nodejs

Node安装教程

  1. 安装gitbook
npm install gitbook-cli -g
  1. 初始化一个目录
gitbook init
  1. 编写SUMMARY.md目录文件
* [简介](README.md)
* [第一章]()
	* [第一节](demo.md) 
* [第二章](demo1.md)
  1. 创建book.json文件,写入如下配置:
{
    "gitbook": ">=3.2.3",
    "language": "zh-hans",
    "title": "书名",
    "description": "文档描述",
    "structure": {
        "readme": "README.md",
        "summary": "SUMMARY.md"
    },
    "links": {
        "gitbook": false,
        "sharing": {
            "google": false,
            "facebook": false,
            "twitter": false,
            "all": false
        }
    },
    "plugins": [
        "-sharing",
        "-lunr", "-search", "search-plus",
        "anchor-navigation-ex-toc",
        "tbfed-pagefooter",
        "copy-code-button"
    ],
    "pluginsConfig":{
        "anchor-navigation-ex-toc" : {
            "showLevel":true,
            "multipleH1":false,
            "mode":"float",
            "float":{
                "floatIcon": "fa fa-navicon",
                "showLevelIcon": false,
                "level1Icon": "fa fa-hand-o-right",
                "level2Icon": "fa fa-hand-o-right",
                "level3Icon": "fa fa-hand-o-right"
            }
        },
        "tbfed-pagefooter": {
            "copyright":"&copy 2018 www.vchar.top",
            "modify_label": "本文档更新于:",
            "modify_format": "YYYY-MM-DD HH:mm"
        }
    }
}
  1. 运行命令测试是否成功
gitbook serve

浏览器访问:http://localhost:4000

一个gitbook教程写的很不错的地址: http://gitbook.zhangjikai.com/

二、安装

安装gitbook

要在本地安装gitbook需要先安装nodejs(安装教程)

在windows的cmd命令行工具中执行如下命令安装gitbook

npm install gitbook-cli -g

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

gitbook导出PDF相关安装

  • 安装PDF支持插件
npm install ebook-convert -g
  • 安装calibre软件

软件下载地址 https://calibre-ebook.com/download ;安装成功后配置环境变量path中将calibre安装目录配置上

  • 导出pdf
gitbook pdf

三、常用命令

初始化

在cmd命令行工具中切换到一个想创建书的目录下,执行如下命令:

gitbook init

执行成功后会在该目录下生成如下文件,这个2个文件是必须要的。

README.md   #这是一个简介文档,内容需要自己编写
SUMMARY.md  #这个是文档目录结构文档,需要自己编写
  • SUMMARY.md目录编写格式
* [简介](README.md)
* [第一章]()
	* [第一节](demo.md) 
* [第二章](demo1.md)

生成离线HTML页面

gitbook build

创建gitbook的目录应当如下:

├── book.json
	├── README.md
	├── SUMMARY.md
	├── directory-1
	|   ├── README.md
	|   └── something.md

执行成功后会将生成的离线页面和相关资源放到_book目录下

启动服务

gitbook serve

启动成功后可以通过 http://localhost:4000 访问预览

列出 gitbook 所有的命令

gitbook help

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

gitbook build --gitbook=3.2.2

列出本地所有的gitbook版本

gitbook ls

列出远程可用的gitbook版本

gitbook ls-remote

更新到gitbook的最新版本

gitbook update

卸载对应的gitbook版本

gitbook uninstall 2.0.1

输出错误信息

gitbook builid --debug

四、常用插件

记录一些实用的插件, 如果要指定插件的版本可以使用 plugin@1.2.1。本文记录的插件在 windows 下都是可以正常工作的。这里只是列举了一部分插件,如果有其它的需求,可以到 插件官网https://plugins.gitbook.com/ 去搜索相关插件。

支持中文搜索:search-plus

支持中文搜索, 需要将默认的 search 和 lunr 插件去掉。

{
  "plugins": ["-lunr", "-search", "search-plus"]
}

侧边悬浮导航\顶部:anchor-navigation-ex-toc

添加Toc到侧边悬浮导航以及回到顶部按钮。

插件引入

"plugins": [
	"anchor-navigation-ex-toc"
]

可用配置参数

"pluginsConfig": {
	"anchor-navigation-ex": {
		"showLevel": true,  #是否自动分级,即添加序号
		"associatedWithSummary": true,
		"printLog": false,  #是否显示日志
		"multipleH1": true, #是否有多个H1标题
		"mode": "float",
		"showGoTop":true,
		"float": {
			"floatIcon": "fa fa-navicon", # 原样式:fa-navicon
			"showLevelIcon": false,
			"level1Icon": "fa fa-hand-o-right",
			"level2Icon": "fa fa-hand-o-right",
			"level3Icon": "fa fa-hand-o-right"
		},
		"pageTop": {
			"showLevelIcon": false,
			"level1Icon": "fa fa-hand-o-right",
			"level2Icon": "fa fa-hand-o-right",
			"level3Icon": "fa fa-hand-o-right"
		}
	}
}

为页面添加页脚

"plugins": [
	"tbfed-pagefooter"
],
"pluginsConfig": {
	"tbfed-pagefooter": {
		"copyright":"&copy 2018 www.xx.com",
		"modify_label": "本文档修订时间:",
		"modify_format": "YYYY-MM-DD HH:mm:ss"
	}
}

复制的按钮: copy-code-button

为代码块添加复制的按钮。

{
	"plugins": ["copy-code-button"]
}

多个版本: versions-select

添加版本选择的下拉菜单,针对文档有多个版本的情况

"plugins": [ "versions-select" ]

"pluginsConfig":{
	"versions": {
			"options": [
				{
					"value": "https://www.gitbook.com",
					"text": "v1.0"
				},
				{
					"value": "https://www.gitbook.com",
					"text": "v2.0"
				}
			]
		}
}

anchors

添加 Github 风格的锚点样式

"plugins" : [ "anchors" ]

五、 bookjson

默认样式book.json配置文件

{
	"gitbook": ">=3.2.3",
	"language": "zh-hans",
	"title": "书名",
	"description": "文档描述",
	"structure": {
		"readme": "README.md",
		"summary": "SUMMARY.md"
	},
	"links": {
		"gitbook": false,
		"sharing": {
			"google": false,
			"facebook": false,
			"twitter": false,
			"all": false
		}
	},
	"plugins": [
		"-sharing",
		"-lunr", "-search", "search-plus",
		"anchor-navigation-ex-toc",
		"tbfed-pagefooter",
		"copy-code-button",
		"versions-select"
	],
	"pluginsConfig":{
		"anchor-navigation-ex-toc" : {
			"showLevel":true,
			"multipleH1":false,
			"mode":"float",
			"float":{
				"floatIcon": "fa fa-navicon",
				"showLevelIcon": false,
				"level1Icon": "fa fa-hand-o-right",
				"level2Icon": "fa fa-hand-o-right",
				"level3Icon": "fa fa-hand-o-right"
			}
		},
		"tbfed-pagefooter": {
			"copyright":"&copy 2018 www.vchar.top",
			"modify_label": "本文档更新于:",
			"modify_format": "YYYY-MM-DD HH:mm"
		},
		"versions": {
				"options": [
					{
						"value": "https://gitbook.com",
						"text": "v1.0"
					},
					{
						"value": "https://gitbook.com",
						"text": "v2.0"
					}
				]
			}
	}
}

效果图如下:

theme-api API文档主题

{
	"plugins": ["theme-api"],
	"pluginsConfig": {
		"theme-api": {
			"theme": "dark"
		}
	}
}

模板

{
	"gitbook": ">=3.2.3",
	"language": "zh-hans",
	"title": "书名",
	"description": "文档描述",
	"structure": {
		"readme": "README.md",
		"summary": "SUMMARY.md"
	},
	"links": {
		"gitbook": false,
		"sharing": {
			"google": false,
			"facebook": false,
			"twitter": false,
			"all":false
		}
	},
	"plugins": [
		"-sharing",
		"-lunr", "-search", "search-plus",
		"anchor-navigation-ex-toc",
		"tbfed-pagefooter",
		"copy-code-button",
		"versions-select",
		"theme-api"
	],
	"pluginsConfig":{
		"anchor-navigation-ex-toc" : {
			"showLevel":true,
			"multipleH1":false,
			"mode":"float",
			"float":{
				"floatIcon": "fa fa-navicon",
				"showLevelIcon": false,
				"level1Icon": "fa fa-hand-o-right",
				"level2Icon": "fa fa-hand-o-right",
				"level3Icon": "fa fa-hand-o-right"
			}
		},
		"tbfed-pagefooter": {
			"copyright":"&copy 2018 www.vchar.top",
			"modify_label": "本文档更新于:",
			"modify_format": "YYYY-MM-DD HH:mm"
		},
		"versions": {
			"options": [
				{
					"value": "https://gitbook.com",
					"text": "v1.0"
				},
				{
					"value": "https://gitbook.com",
					"text": "v2.0"
				}
			]
		},
		"theme-api":{
			"theme": "dark",
			"languages": [
				{
					"lang": "js",
					"name": "JavaScript",
					"default": true
				},
				{
					"lang": "java",
					"name": "Java"
				}
			]
		}
	}
}

API文档的语法

定义方法

{% method %}

打印; 展示 JavaScript 和 Java 如何输出信息

{% sample lang="js" %} 这里演示 JavaScript 如何输出信息到控制台

console.log('Hello World');
{% sample lang="java" %} 这里演示 Java 如何输出信息到控制台

System.out.println("Hello World");
{% common %} 这里是 JavaScript 和 Java 共同的信息

{% endmethod %}

{% method %}

定义变量 这里演示 JavaScript 和 Java 如何定义变量

{% sample lang="js" %} 这里演示 JavaScript 如何定义变量:

var i = 0;
var j = "a";
var k = new function() {

}
{% sample lang="java" %} 这里演示 Java 如何定义变量

int i = 0;
String j = "a";
Object o = new Object();
{% endmethod %}

效果图如下:


特别提醒:扫码关注微信订阅号'起岸星辰',实时掌握IT业界技术资讯! 转载请保留原文中的链接!
  目录