gitbook既可以指一个通过git托管电子图书的网站,又可以指一个基于Node.js 的静态网页生成器,作为一个基于markdown文本标记语言的静态网页生成器,其不仅仅可以生成HTML,甚至可以生成PDF、epub等电子格式,是一个组织大型文档的好工具。

安装

gitbook是基于Node.js 的,所以需要用npm包管理来安排。如果在国内,可以通过使用淘宝镜像cnpm来替代npm进行加速安装。

npm install gitbook-cli -g

安装完成之后可以用gitbook -V来查看当前版本版本。

使用方法

gitbook的使用方法不困难,主要用到的命令有这几个。

初始化

gitbook init ./

运行完成会初始化当前目录


gitbook init
warn: no summary file in this book 
info: create README.md 
info: create SUMMARY.md 
info: initialization is finished 

在当前目录下新建README.md SUMMARY.md 这两个文件,其中SUMMARY.md 是整个文档的组织目录,对整个文档的结构起着绝对性的作用。

生成的SUMMARY.md长这个样子 :


# Summary

* [Introduction](README.md)

SUMMARY.md有两种组织形式

第一种可以体现出层次关系

# Summary
* [Introduction](README.md)
* [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)

效果是这样的:

第一种效果
第一种效果

第二种:

# 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)

效果是这样的:

第二种效果
第二种效果

我用的是第二种:


# Summary

* [前言](README.md)
* [摘要](ab/ab.md)
* [Abstract](ab/abe.md)

### 第一章 多铁材料与多铁性

* [多铁材料的研究背景](c1/s1.md)
* [多铁材料的基本原理](c1/s2.md)

### 第二章 二维多铁材料

* [二维材料](c2/s1.md)
* [二维材料的磁性质](c2/s2.md)
* [二维材料的铁电性](c2/s3.md)
* [二维多铁材料的研究背景](c2/s4.md)
* [典型的多铁二维材料](c2/s5.md)

### 第三章 多铁材料的设计与理论工具

* [多铁材料研究之中的基本方法](c3/s1.md)
* [材料理论设计的基本原理](c3/s2.md)
* [密度泛函理论](c3/s3.md)
* [对称性与空间群](c3/s4.md)

### 第四章 多铁材料的应用与发展前景

* [多铁材料的应用](c4/s1.md)
* [多铁材料研究的展望](c4/s2.md)
* [材料理论计算的新方法与发展](c4/s3.md)

### 总结

* [结论](c5/ed.md)

----

* [写在最后](c5/l.md)


目录结构

gb
├── ab
│   ├── abe.md
│   └── ab.md
├── _book
│   ├── ab
│   ├── c1
│   ├── c2
│   ├── c3
│   ├── c4
│   ├── c5
│   ├── gitbook
│   ├── index.html
│   ├── pic
│   └── search_index.json
├── book.json
├── c1
│   ├── s1.md
│   └── s2.md
├── c2
│   ├── s1.md
│   ├── s2.md
│   ├── s3.md
│   ├── s4.md
│   └── s5.md
├── c3
│   ├── s1.md
│   ├── s2.md
│   ├── s3.md
│   └── s4.md
├── c4
│   ├── s1.md
│   ├── s2.md
│   └── s3.md
├── c5
│   ├── ed.md
│   └── l.md
├── pic
│   ├── 001.png
│   ├── 002.png
│   ├── 003.ggb
│   ├── 003.png
│   ├── 004-1.png
│   ├── 004-2.png
│   ├── 005.png
│   ├── 006.png
│   ├── 007-1.png
│   ├── 007-2.png
│   ├── 008.png
│   ├── 009.png
│   ├── 010-1.png
│   ├── 010-2.png
│   ├── 010-3.png
│   ├── 010-4.png
│   ├── 011-1.png
│   ├── 011-2.png
│   ├── 012.png
│   ├── 013.png
│   ├── 014.png
│   ├── 015.png
│   ├── 016.png
│   ├── 017.png
│   ├── 018.png
│   ├── 019.png
│   ├── 020.png
│   ├── 021.png
│   ├── 022.png
│   ├── 023.png
│   ├── 024-1.png
│   ├── 024-2.png
│   ├── 024-3.png
│   ├── 025.png
│   ├── 026.png
│   ├── dl001.png
│   ├── ggb001.ggb
│   ├── p001.png
│   ├── p002.png
│   ├── p003.png
│   ├── p004.png
│   ├── p006.png
│   ├── p007.png
│   ├── p008-1.png
│   ├── p008-2.png
│   ├── p008-3.png
│   ├── p008-4.png
│   ├── p008-5.png
│   ├── s001.svg
│   ├── s002.svg
│   ├── t001.txt
│   ├── t002.txt
│   ├── t003.txt
│   ├── t004.txt
│   ├── t005.txt
│   ├── t006.txt
│   ├── tm.png
│   └── tu004.tex
├── README.md
└── SUMMARY.md

其中_book是编译后的html目录。

编译

有两个命令,一个是gitbook serve,这个命令会在4000端口打开一个静态文件服务器,如果markdown文件有更改,gitbook会实时编译并在网页端表现出来。

另一个是gitbook build,这个仅仅会编译html到_book里面。

常用的指令就怎么多,更高级的配置和插件需要在book.json里面安排。

配置与插件

book.js是主要的配置文件。

{
    "title": "二维多铁材料设计",
    "description": "采用gitbook组织的本科毕业论文",
    "author": "dogcraft",
    "language" : "zh-hans",
    "links": {
        "sidebar": {
            "Dogcraft": "https://www.dogcraft.top/",
            "BLOG": "https://dogcraft.top"
        }
    },
    "plugins": ["mathjax-pro","splitter","anchor-navigation-ex","tbfed-pagefooter"],
    "pluginsConfig": {
        "anchor-navigation-ex": {
            "showLevel": false
        },
        "tbfed-pagefooter": {
            "modify_label": "修订时间:",
            "modify_format": "YYYY-MM-DD HH:mm:ss"
        }
    }
}

配置文件也很简单,主要的配置项目一眼看上去就明白了,其中的插件安装方式比较特别,这种方式还是第一次见到。

安装插件时先把插件的名字写进book.json里面,然后运行 gitbook install就行了,gitbook会自动从npm里给安排好。

这里注意一点,在使用mathjax插件时会出现有时公式加载不出来的情况,从网上得到的资料来看是mathjax插件已经不再维护了,mathjax的升级和cdn的变动会导致不稳定,这里可以改用更换了全新cdn的mathjax-pro

目前组织好了的文档安置在https://www.dogcraft.top/gitbook/bkbylw/


2020.06.14

更正了链接url

连自己域名都写错的屑