私は雲に、生成された静的なWebサイトの展開、多くのプログラマは、電子書籍、チュートリアルやブログを書き、記事をたくさん読んで、リポジトリにGitBookを展開する方法については、すべての一見不足し、自動的にサーバー上に構築するためにGitBookを使用したいと考えていサーバー上。
だから、私は記録していた次の日には、独自のクラウドサーバーをGitBookする方法を段階的にリリースされます。
まず第一には、ツールの助けを必要としています。
- GitBook
- GitLab
- GitLabランナー
- nginxの
- クラウドサーバ(のような:アリクラウドサーバー)
- ドッカー
- ドメイン名
ローカル開発
多くは地元の初期化GitBookで文書を書き始める方法についてのチュートリアルを書きました。ここでは簡単な説明。
初期化はgitbook init
、2つのファイルが生成されますREADME.md
とSUMMARY.md
、README.md
不慣れすべきではない、それはドキュメントですが、SUMMARY.md
実際には、書籍の章ディレクトリ。
:これら二つの文書では十分ではありません、我々は我々自身の情報、あなたがファイルを作成する必要があり、この時間の一部を初期化する必要がありbook.json
、私のプロフィールを参照してください。
{
"language": "zh",
"plugins": ["tbfed-pagefooter", "sitemap-general", "rss", "copy-code-button", "disqus", "donate", "custom-js-css", "highlight"],
"pluginsConfig": {
"custom-js-css": {
"js": [
"./bootstrap4/js/bootstrap.bundle.min.js",
"./bootstrap4/js/bootstrap.min.js"
],
"css": [
"./bootstrap4/css/bootstrap-grid.min.css",
"./bootstrap4/css/bootstrap-reboot.min.css",
"./bootstrap4/css/bootstrap.min.css"
]
},
"donate": {
"wechat": "/images/wechat.jpeg",
"alipay": "/images/alipay.jpeg",
"title": "觉得不错点个赞",
"button": "点赞"
},
"disqus": {
"shortName": "coding"
},
"rss": {
"title": "coding01 自我量化",
"description": "coding01 自我量化",
"author": "叶梅树",
"feed_url": "https://ziwolianghua.coding01.cn/rss",
"site_url": "https://ziwolianghua.coding01.cn/",
"managingEditor": "[email protected]",
"webMaster": "[email protected]",
"categories": [
"ziwolianghua"
]
},
"sitemap-general": {
"prefix": "https://ziwolianghua.coding01.cn"
},
"tbfed-pagefooter": {
"copyright":"Copyright © coding01 2018",
"modify_label": "该文件修订时间:",
"modify_format": "2019-11-3 21:20:20"
}
}
}
ここでは、プラグインの主な用途は以下のとおりです。
"tbfed-pagefooter", "sitemap-general", "rss", "copy-code-button", "disqus", "donate", "custom-js-css", "highlight"
これらのプラグインは、自分の状況に応じて決定することができ、もちろん、私たちは、カスタムの数を選択しているjs
とcss
、次のように全体の構造は次のとおりです。
私たちは、結果の実装を確認するために、プラグインをインストールすることができます。
gitbook install && gitbook serve
はじめと開口部:次に、2本の論文を書くことができます。
私たちを参照してくださいSUMMARY.md
ファイルを:
# Summary
## [介绍](README.md)
## 1. 理论
### 1.1 开篇
* [1.1.1 前言](1.1.1.md)
あなたも見ることができREADME.md
たコンテンツ:
# 自动化自我量化
## 关于系统
由于我使用的是 iPhone + rMBP + Apple Watch ,所以本文的大部分内容是基于 Apple 生态下写的,如果你是 Android 生态设备,可以尝试类似的工具和方法论。
## 关于作者
> coding01 自由程序员
## LICENSE
![知识共享许可协议 Figure: 知识共享许可协议](https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png)
[知识共享许可协议 Figure: 知识共享许可协议](http://creativecommons.org/licenses/by-nc-nd/4.0/)
結果は以下の通りであります:
ここで私は、基本的なカスタムスタイルの効果を満たすために私が前に書かれている記事、「はじめに」置きます:
この基本的なGitBook現地生産が完了し、次のステップは、サーバーにデプロイする方法を見てすることです。
私は、クラウドサーバーを持っているので、GitLabコードのバージョン管理を行うことが推奨され、その後、カスタムドメイン名を設定し、GitBook eBookの静的ファイルは、独自のサーバー上に展開されるように置きます。
这里重点不是说如何部署 GitLab,而是说另一个问题,因为 GitBook build 之后的实际上是纯静态网站,可以直接使用 Nginx 或其他来配置域名直接访问。
所以这里的难点是,如何将代码 commit
到 GitLab 后,直接 gitbook build
产生静态网站内容,放置指定的路径下,提供 Nginx 等解析。
这里推荐使用「Gitlab Runner」。
Gitlab Runner
如果我们自己已经使用Gitlab docker 环境,或者看我之前的 blog,应该知道我是基于 Laradock,所以直接注册一个 Gitlab Runner。
在注册之前,需要拿到该 Gitlab 项目的 Gitlab Runner token:
然后注册一个 Gitlab Runner:
dc exec gitlab-runner gitlab-runner register
注:一样的,你也可以直接进入 Gitlab Runner 容器,在配置文件中添加。
创建后,即可以在项目设置中看到:
这里,我们使用 docker
模式,创建 node
镜像,供下文的 GitBook 编译,生成静态网站。
好了,接下来就是编写 .gitlab-ci.yml
文件了:
image: node:latest
build:
stage: build
artifacts:
paths:
- _book
script:
- npm install gitbook-cli -g
- gitbook install
- gitbook build
tags:
- build
test:
stage: test
script:
- echo "no tests."
tags:
- test
deploy:
stage: deploy
script:
- rm -rf /var/www/ziwolianghua/*
- cd _book
- cp -rf . /var/www/ziwolianghua
- echo "发布成功!"
tags:
- deploy
only:
- master
这里配置了三个 tag:build、test 和 deploy,和 GitLab Runner 设置的 tags 配合使用。当满足 build、test 时,就会触发我们刚才定义的 ziwolianghua_build_test
Runner,也就会执行我们定义好的 build
和 test
jobs,编译和测试我们网站。
我们将本地代码 push 到 Gitlab 看看效果:
build 和 test 成功后,我们接下来就需要把生成的静态代码部署到指定路径上,这时候不再是 docker
模式了,改为 shell
,因为我们在相同的服务器部署网站,而且通过 docker 共享 volumn,将文件存放地方和 nginx 共享,这样就可以直接在 nginx 容器下配置访问。
接下来,配置第二个 「Gitlab-Runner」:
好了,我们再看看 jobs 运行结果
发布成功。
这时候我们只需配置 ngnix 去访问这个路径即可,这里就不再赘述了。
直接访问链接 https://ziwolianghua.coding01.cn 看看效果:
总结
从本地使用 GitBook init
开始写 blog 和电子书,然后代码托管到 GitLab 上,再利用 GitLab Runner 自动化编译和部署网站,一气呵成。这样做的好处是,只要写好的 markdown 电子书扔到项目中,在目录文件上添加路径即可,我们可以随时随地更新和提交原始代码,完全不用考虑在本地部署 GitBook 环境了,而生成静态文件的任务交给服务器自动完成。
「完」