GitBook 是一个基于 Node.js 的命令行工具,可使用 Markdown 来制作精美的电子书.

但是Gitbook由于网络问题,许多其他人发布的项目不能直接查看,或者保存.但是我们可以通过Github将fork Gitbook 源码到自己的Github,并设置Github Pages 页面访问, 来实现保存Gitbook项目的目的.

GitHub Pages 简单说就是一个可以托管静态网站的 Git 项目,支持使用 markdown 语法以及 Jekyll 来构建,或者直接使用已经生成好的静态站点。我们就可以使用GitPages搭建自己的个人博客. 这是我使用GitPages搭建的个人博客.

由于 gitbook 书籍可以通过 gitbook 本地构建出 site 格式,所以可以直接将构建好的书籍直接放到 GitHub Pages 中托管,之后,可以通过如下地址访问书籍:

<username>.github.io/<project>

例如:这本书中使用的例子 ‘test’ 项目可以通过地址:chengweiv5.github.io/test 来访问。

当访问 meiko-zhang.github.io/test 时,会访问 meiko-zhang/test 项目的 gh-pages 分支的内容,所以需要为项目创建一个 gh-pages 分支,并且将静态站点内容放入其中。也就是说,test 项目将有如下两个分支:

  • master, 保存书籍的源码
  • gh-pages, 保存书籍编译后的 HTML 文件

安装GitBook

我们需要通过Github上的源码生成对应的HTML才能在Github Pages上访问.所以需要安装Gitbook.
请参考GitBook的安装和使用方法.

我们的操作中还需要使用到Git.
请参考Git的安装和使用 .

编译书籍

首先,创建一个文件夹,用户来存放要编译的书籍.

mkdir book && cd book

将需要编译的数据源码仓库从Github上clone到当前文件夹中.

git clone git@github.com:meiko-zhang/test.git

使用 gitbook build 将书籍内容输出到默认目录,也就是当前目录下的 _book 目录。

gitbook build

build 失败的可能是配置出现了错误,可以根据提示修改book.json 的配置信息.
注意:记得修改book.json后提交到github上.

git add book.json
git commit -m "update book.json"
git push -u origin master

创建 gh-pages 分支

执行如下命令来创建分支,并且删除不需要的文件:

git checkout --orphan gh-pages
git rm -f --cached -r .
git clean -df
rm -rf *~

现在,目录下应该只剩下 _book 目录了,首先,忽略一些文件:

echo "*~" > .gitignore
echo "_book" >> .gitignore
git add .gitignore
git commit -m "Ignore some files"

然后,加入 _book 下的内容到分支中:

cp -r _book/* .
git add .
git commit -m "Publish book"

上传书籍内容到 GitHub

现在,可以将编译好的书籍内容上传到 GitHub 中 book 项目的 gh-pages 分支了,虽然这里还没有创建分支,上传和创建会一步完成!

git push -u origin gh-pages

现在,书籍的内容已经上传到 GitHub 上,所以通过访问 meik-zhanggithub.io/test 就可以阅读 test 这本书了!

参考此书籍,总结完善后发表本文,并将此本书发布在Github Pages上.

将Gitbook上的书籍发布在GitHubPages上相关推荐

  1. gitbook搭建在线书籍

    说明 通过Gitbook我们能快速的编写自己的电子书,方便将零散的知识整理成体系化的知识.本文介绍从0开始搭建自己的电子书并发布,以及gitbook的使用技巧,如果没有发布到公网的需求可以不看ng相关 ...

  2. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...

    当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...

  3. 从0到1,一步步开发React的loading组件,并发布到npm上

    没有发布过npm包的同学,可能会对NPM对开发有一种蜜汁敬畏,觉得这是一个很高大上的东西.甚至有次面试,面试官问我有没有发过npm包,当时只用过还没写过,我想应该挺难的,就小声说了没有,然后就让我回去 ...

  4. html5画布可以p图,HTML5图像适合发布在画布上

    我正在研究HTML5移动应用程序.我正在使用画布元素和文件上传元素. 每当用户从手机上点击这个文件上传元素.他看到两种选择. 1.选择现有的照片 2.拍摄新照片HTML5图像适合发布在画布上 如果他选 ...

  5. 解决用img src=%# Eval(ShowPhoto)%动态绑定图片,发布到IIS上无法显示的问题

    用<img src="<%# Eval("ShowPhoto")%>"动态绑定图片,再本地用VS2008运行时正常 发布到IIS上图片显示不出 ...

  6. linux上运行项目,发布项目到 Linux 上运行 Core 项目

    目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下,我们windows上的项目如何发布项目到Linux上运行 ...

  7. 动手开始创建第一个 Angular 应用并通过 gh-pages 发布到 Github 上

    命令行创建: ng new jerryfirstapp 创建完毕: ng serve --open,然后 localhost:4200 能看到如下页面: 创建一个新的 gh-pages 分支: git ...

  8. mysql数据库发布到web服务器上_web应用发布至服务器

    1.生成web应用的war包. 在IDEA中,新增一个Artifacts的实体.类型为web application:archive ,意为web应用存档.即把文件夹形式的web应用打包成MIS.wa ...

  9. Vue封装预约日期插件和发布到npm上

    插件代码 <template><div class="subscribe-time" v-show="setting.display"> ...

最新文章

  1. 程序员要避免的五种程序注释方式
  2. 解决CPC撰写文档报错问题“无法获取“AxforApplication”控件的窗口句柄。不支持无窗口的 ActiveX 控件”
  3. 建库、建表、建约束、插入测试数据
  4. Fedora 11 上安装subversion 和apache服务器
  5. snowflake分布式自增长id的java实现
  6. SQLi-LABS(21~25a关详解)
  7. 1027 Colors in Mars (20 分)_20行代码AC
  8. docker从仓库找镜像
  9. CLR via C# 阅读 笔记
  10. axure原型怎么让文字自动换行_理解「回车」和「换行」,纠正数据输入过程中的坏习惯...
  11. html5 心,HTML5你必须知道的28个新特性
  12. 动态设置HTML:v-html
  13. 项目管理实践之版本控制工具SVN在Windows平台下的平台搭建
  14. java中io流浅析
  15. java代理模式与反射机制
  16. python增量爬虫_python网络爬虫——增量式爬虫
  17. cad批量 谷歌翻译lisp_LISP批量打开CAD图操作
  18. Error: EBUSY: resource busy or locked, lstat ‘D:\pagefile.sys‘
  19. Nachos实习——Lab3同步机制实习报告
  20. eclipse c语言 自动补全,eclipse里头怎么设C/C++的智能提示

热门文章

  1. dataGridView 粘贴数据并更新到数据库及发送邮件
  2. 5G资费其实已经大幅下降,消费者不愿用5G在于信号太差了
  3. hash table html,javascript 哈希表(hashtable)的简单实现
  4. 体育馆管理系统开发日记 (5)——用例规约
  5. Just for fun ----Linux创造的那些传奇
  6. 凌恩客户文献|宏基因组binning解析中国浓味白酒窖泥微生物群落MAGs和代谢潜力
  7. 【DSP】CCS6.1导入CCS3.3工程全过程以及“N个报错”的解决办法
  8. tensorflow分类任务——TFRecord读取自己制作的数据集
  9. 基于模糊C均值聚类(FCM)的图像分割原理+python代码详解
  10. 关于maven的java面试题汇总