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
连自己域名都写错的屑