基于centos6构建私有gitbook平台
前言:
开源gitbook工具可以让你方便有效的管理自己的文章笔记、发布产品文档等。这里为了学习,基于centos系统构建一个私有的gitbook项目。与公有云gitbook平台相比,这里是简单的展示页面,后面可以进行相关的学习再更新此文章。
一、基础环境:参考链接:http://www.cnblogs.com/songqingbo/articles/5611532.html
nodejs
nginx
python2.7
npm 参考链接:快速切换npm源的开源工具--nrm
二、部署GitBook及calibre组件
1. 安装GitBook
$ npm install gitbook -g
$ npm install gitbook-cli -g
2.安装calibre
wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('/usr/local')"
命令的最后 main('/usr/local')
中/usr/local 为Calibre的安装目录,可根据需要修改。该步骤下载时间比较漫长,根据网络环境决定安装速度。
三、初始化demo
$ cd /var/www/html
$ mkdir gitbook
$ cd gitbook/
$ mkdir demo
$ cd demo/
$ gitbook init
执行最后一个命令之后会在 /var/www/html/gitbook/demo/
下生成 README.md
和 SUMMARY.md
两个文件,可以将Gitbook-editer客户端编写的文档文件上传到该目录下面。
四、生成HTML以及其他格式的文件
1.生成完整的静态 HTML:
$ cd /var/www/html/gitbook/demo/
$ gitbook build
会在/var/www/html/gitbook/demo/ 目录下生成 _book
目录,即为完整的HTML静态网站。使用nginx配置路径到/var/www/html/gitbook/demo/_book,即可通过页面进行访问
2.生成其他格式的文件
安装gitbook-pdf插件
1.手动安装phantomjs,直接通过npm下载安装会失败
淘宝镜像源下载地址:https://npm.taobao.org/dist/phantomjs/
这里以phantomjs-1.9.7-linux-x86_64.tar.bz2为例:
wget https://npm.taobao.org/mirrors/phantomjs/phantomjs-1.9.7-linux-x86_64.tar.bz2
tar xf phantomjs-1.9.7-linux-x86_64.tar.bz2 -C /usr/local/
#vim /etc/profile.d/phantomjs.sh
export PATH=$PATH:/usr/local/phantomjs-1.9.7-linux-x86_64/bin source /etc/profile 2. npm install gitbook-pdf -g
先切换到项目的目录下:比如本机的/home/gitbook/
PDF: 在执行这个命令的时候会报错,主要gcc版本比较低造成的,升级gcc参考文档:https://blog.csdn.net/rbpicsdn/article/details/79565383
gitbook pdf ./demo ./demo.pdf
ePub:
gitbook epub ./demo ./demo.epub
MOBI:
gitbook mobi ./demo ./demo.mobi
注:需要提前安装
Calibre
,Gitbook会使用其中的ebook-convert功能组件来完成书籍格式的转换。
基于centos6构建私有gitbook平台的更多相关文章
- 基于Docker构建Jenkins CI平台
1.部署gitlab 1.1 部署gitlab docker run -d \ --name gitlab \ -p 8443:443 \ -p 9999:80 \ -p 9998:22 \ -v $ ...
- 基于owncloud构建私有云储存网盘
注意事项:需要ping通外网 需要LAMP架构yum -y install httpd php php-mysql mariadb-server mariadb sqlite php-dom php- ...
- 基于MRS-ClickHouse构建用户画像系统方案介绍
业务场景 用户画像是对用户信息的标签化.用户画像系统通过对收集的各维度数据,进行深度的分析和挖掘,给不同的用户打上不同的标签,从而刻画出客户的全貌.通过用户画像系统,可以对各个用户进行精准定位,从而将 ...
- 视频私有云实战:基于Docker构建点播私有云平台
私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...
- DevOps实践之一:基于Docker构建企业Jenkins CI平台
基于Docker构建企业Jenkins CI平台 一.什么是CI 持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来 ...
- 基于Jmeter+maven+Jenkins构建性能自动化测试平台
一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...
- Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台
2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,Polaristech 技术专家刘洋在活动上做了<基于 ...
- 【docker构建】基于docker构建wordpress博客网站平台
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...
- 026.[转] 基于Docker及Kubernetes技术构建容器云平台 (PaaS)
[编者的话] 目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用.弹性伸缩和动态调整应用环境资源,提高研发运营效率. 本文简要介绍了与容 ...
随机推荐
- H5页面中唤起native app
现在各类app,分享出去的H5页面中,一般都会带着一个立即打开的按钮,如果本地安装了app,那么就直接唤起本地的app,如果没有安装,则跳转到下载.这是一个很正常的推广和导流量的策略,最近产品经理就提 ...
- C#委托Code
class Program { delegate double ProcessDelegate(double param1, double param2); static double Multipl ...
- 20155236 2016-2017-2 《Java程序设计》第四周学习总结
20155236 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 1.继承基本上就是避免多个类间重复定义共同行为. 继承的三个好处:减少代码冗余:维护变得简单 ...
- Exp2:后门原理与实践
Exp2:后门原理与实践 1 实践目标 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用socat获取主机操作Shell, 任务计划启动 (0.5分) 任务三: ...
- addclass,removeclass
定义和用法 addClass() 方法向被选元素添加一个或多个类. 该方法不会移除已存在的 class 属性,仅仅添加一个或多个 class 属性. 提示:如需添加多个类,请使用空格分隔类名. rem ...
- Entity Framework Context上下文管理(CallContext 数据槽)
Context上下文管理 Q1:脏数据 Q2:一次逻辑操作中,会多次访问数据库,增加了数据库服务器的压力 >在一次逻辑操作中实现上下文实例唯一 方法一:单例模式:内存的爆炸式增长 在整个运行期间 ...
- Vue项目按需打包Lodash
使用的是 webpack 模板 1. 首先安装 npm install lodash --save npm install lodash-webpack-plugin babel-plugin-lod ...
- 对接微信支付使用HMAC-SHA256使用签名算法实现方式
最近做微信押金支付对接,很多坑,心累!这里提醒一下各位: 首先,确保自己商户号进了白名单,没有需要联系客服,否则接口是调不通的,会一直提示参数错误 其次,确保接口文档是最新的,最好去官网去看,否则可能 ...
- 【C++】数组-二分法查找
1.原理 对于给定值的查找,如果大于该数组的中间元素,下一步在元素值大的区域继续与其中间元素比较:否则下一步在元素值小的区域内继续查找,直到找到目标元素.如果到最后还没有找到,则输出"数组中 ...
- 使用Netcat进行攻击
https://www.freebuf.com/column/135007.html 在网上找到了一个开启了ftp服务的服务: http://static.vhdong.com/Upload/Temp ...