Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 travis + gitbook + github pages 优雅地发布自己的书 #48

Open
riskers opened this issue Jan 23, 2019 · 12 comments
Open

使用 travis + gitbook + github pages 优雅地发布自己的书 #48

riskers opened this issue Jan 23, 2019 · 12 comments
Labels
tools 工具、小技巧

Comments

@riskers
Copy link
Owner

riskers commented Jan 23, 2019

作者: 一波不是一波

转载请注明出处并保留原文链接( #48 )和作者信息。

这篇文章教你怎么用 gitbook + travis 在 github pages 上优雅地发布书籍。

模板: https://github.com/riskers/gitbook-template/tree/master

效果: https://riskers.github.io/gitbook-template/

项目结构

git clone https://github.com/riskers/gitbook-template

cd gitbbok-template && rm -rf .git # 去掉模板中的历史记录

修改模板:

  • .travis.yml:
    • recipients: 修改成你的邮件
    • REF: 修改你项目的 github 地址
  • book.json: 修改 gitbook 相应配置,不是这里的重点,不多介绍。配置结果见 https://riskers.github.io/gitbook-template/ ,可根据喜好自己修改
  • chap01chap02 对应 SUMMARY.md 中的地址,就是这本书的内容了。

然后就是在 github 上新建一个项目,并且 push 上去,然后你能看见这样的项目结构:

github pages

如果没有注册过 github pages 服务,还要先注册(注册过程略)。

新建 gh-pages 分支:

git checkout -b gh-pages
git push origin gh-pages

在项目『Settings』-> 『GitHub Pages』开启 github pages 服务:

Travis

给这个项目开启 Travis 服务: https://github.com/marketplace/travis-ci

最后你应该能看到这个界面:

个人设置里申请 token 好让 Travis 有权限改这个项目:

然后选择 repo,点击生成按钮:

复制生成的 token,填写在 Travis 的设置-全局变量中,并且取名为 TOKEN:

试试效果

添加一行字:

然后 push 上去,可以看到 Travis CI 在跑了:

稍作等待,跑完之后,可以在 gh-pages 下看到 Travis CI 给我们推过来了 gitbook build 之后的内容:

可以在 github pages https://riskers.github.io/gitbook-template/chap01/1-1.html 上看到效果:

完成!

后续

这一阵在用 gitbook 写一本电子书,发现多于两本就要收费了,而老版本是不收费的,所以我最近一直在用老版本。但可能是维护少的原因,老版本的同步总是不及时,于是我放弃了 gitbook 服务。

本来想在本地 gitbook build,然后 push 到 pages 服务,但是这样太不优雅了,就琢磨了一下怎么用 CI 来做这件事,刚好之前在公司折腾过一阵 gitlab ci,很快就解决了。

至此,我做到了在 master 上写 md,然后 push 到 master, Travis 自动执行 gitbook build,并且把生成好的文档 push 到 gh-pages,好让 pages 服务生效。全自动的,是不是很优雅?哈哈。

顺便做个广告,这两本书都是按照这种方式写的:


向我捐助 | 关于我 | 工作机会


@riskers riskers added the tools 工具、小技巧 label Jan 23, 2019
@riskers riskers changed the title 使用 travis + gitbbok + github pages 优雅地发布自己的书 使用 travis + gitbook + github pages 优雅地发布自己的书 Jan 24, 2019
@AngusFu
Copy link

AngusFu commented Jan 25, 2019

很好奇 vscode 里面这个主题叫啥?

@riskers
Copy link
Owner Author

riskers commented Jan 25, 2019

@AngusFu Eva

@Lotus-Blue
Copy link

所以最终是实现了超过两本还是没实现?

@riskers
Copy link
Owner Author

riskers commented Mar 3, 2020

所以最终是实现了超过两本还是没实现?

实现了

@Lotus-Blue
Copy link

所以最终是实现了超过两本还是没实现?

实现了

感谢你的教程,还有为什么我没看到评论区的?我看到你给的图片中有呢

@tuihou123321
Copy link

image
开源项目,只有100次构建试用,还是得付费呀

@riskers
Copy link
Owner Author

riskers commented Jun 9, 2021

感谢你的教程,还有为什么我没看到评论区的?我看到你给的图片中有呢

评论是 disqus 插件实现的,需要梯子。

@Lotus-Blue
Copy link

感谢你的教程,还有为什么我没看到评论区的?我看到你给的图片中有呢

评论是 disqus 插件实现的,需要梯子。

原来这样👌

@riskers
Copy link
Owner Author

riskers commented Jun 9, 2021

image
开源项目,只有100次构建试用,还是得付费呀

去年 travis 好像不再支持免费了,其实可以尝试下使用 Github Action,自从他出来后,travis 变得没什么意义了。

@HenryBeWell
Copy link

Travis CI 执行报错Error:

info: install plugin "todo" (*) from NPM with version 0.1.3 
/home/travis/.gitbook/versions/3.2.3/node_modules/npm/node_modules/aproba/index.js:25
    if (args[ii] == null) throw missingRequiredArg(ii)
                          ^
Error: Missing required argument #1
    at andLogAndFinish (/home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/fetch-package-metadata.js:31:3)
    at fetchPackageMetadata (/home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/fetch-package-metadata.js:51:22)
    at resolveWithNewModule (/home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/install/deps.js:490:12)
    at /home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/install/deps.js:491:7
    at /home/travis/.gitbook/versions/3.2.3/node_modules/npm/node_modules/iferr/index.js:13:50
    at /home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/fetch-package-metadata.js:37:12
    at addRequestedAndFinish (/home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/fetch-package-metadata.js:67:5)
    at returnAndAddMetadata (/home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/fetch-package-metadata.js:121:7)
    at pickVersionFromRegistryDocument (/home/travis/.gitbook/versions/3.2.3/node_modules/npm/lib/fetch-package-metadata.js:138:20)
    at /home/travis/.gitbook/versions/3.2.3/node_modules/npm/node_modules/iferr/index.js:13:50
The command "gitbook install" failed and exited with 1 during .

好像是安装todo插件的问题。。。

@riskers
Copy link
Owner Author

riskers commented Jul 30, 2021

@HenryBeWell 可以去掉试试

@MarvinXu
Copy link

MarvinXu commented Nov 6, 2021

gitbook上支持批注评论,cli版好像也有个插件,有没有试过?
https://github.com/GitbookIO/plugin-comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tools 工具、小技巧
Projects
None yet
Development

No branches or pull requests

6 participants