使用gitbook editor管理个人笔记/制作PDF电子书_weixin_33806914的博客-程序员秘密

技术标签: python  git  markdown  

环境: 全新的ubuntu16.04.2 LTS + Oh my ZSH

先来看一张在gitbook editor中编辑笔记的效果图, 左边是树状的目录结构(可以拖拽--editor会自动更新章节编号), 右边是markdown编辑区和预览区.

说明: 旧版的gitbook editor章节编号比如1.1, 1.2会自动生成,左边目录树节点可以任意拖动位置(章节号会自动重排), 这些功能对于个人组织笔记再完美不过, 但这些在新版的gitbook editor中已经没有了!



 

下载gitbook legacy: https://github.com/GitbookIO/editor-legacy/releases
文件名为: gitbook-linux64.tar.gz

## 安装node (我喜欢用nvm安装)
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
source ~/.zshrc
nvm ls-remote --lts
nvm install v4.8.0
npm install -g cnpm --registry=https://registry.npm.taobao.org

## 安装gitbook命令行(加上了@1.5.0参数 , 老版的)
cnpm install [email protected] -g  
注: 翻了一下git上的提交记录, 1.5.0是2014年的版本, 差不多对应gitbook legacy 1.0.x

使用gitbook editor随便写点什么东西。 然后开始用命令生成pdf
➜  gitbook pdf hello 
Starting build ...
Need to install ebook-convert from Calibre

## 安装 ebook-convert
从这里找到安装脚本 http://calibre-ebook.com/download_linux
一行命令搞定(版本是2.80.0), 我当时装的版本是2.16.0~

sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

 卸载的方法:sudo calibre-uninstall
默认装在了/opt/calibre ...
然后会建一堆符号链接,如下: 
Creating symlinks...
    Symlinking /opt/calibre/calibredb to /usr/bin/calibredb
    Symlinking /opt/calibre/web2disk to /usr/bin/web2disk
    Symlinking /opt/calibre/calibre to /usr/bin/calibre
    Symlinking /opt/calibre/ebook-viewer to /usr/bin/ebook-viewer
    Symlinking /opt/calibre/lrf2lrs to /usr/bin/lrf2lrs
    Symlinking /opt/calibre/ebook-convert to /usr/bin/ebook-convert
    Symlinking /opt/calibre/ebook-polish to /usr/bin/ebook-polish
    Symlinking /opt/calibre/ebook-device to /usr/bin/ebook-device
    Symlinking /opt/calibre/markdown-calibre to /usr/bin/markdown-calibre
    Symlinking /opt/calibre/ebook-edit to /usr/bin/ebook-edit
    Symlinking /opt/calibre/ebook-meta to /usr/bin/ebook-meta
    Symlinking /opt/calibre/calibre-smtp to /usr/bin/calibre-smtp
    Symlinking /opt/calibre/lrs2lrf to /usr/bin/lrs2lrf
    Symlinking /opt/calibre/lrfviewer to /usr/bin/lrfviewer
    Symlinking /opt/calibre/calibre-parallel to /usr/bin/calibre-parallel
    Symlinking /opt/calibre/calibre-debug to /usr/bin/calibre-debug
    Symlinking /opt/calibre/calibre-server to /usr/bin/calibre-server
    Symlinking /opt/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata
    Symlinking /opt/calibre/calibre-customize to /usr/bin/calibre-customize
Setting up command-line completion...
Installing zsh completion to: /usr/share/zsh/vendor-completions/_calibre
Installing bash completion to: /usr/share/bash-completion/completions/calibre
Setting up desktop integration...
Creating un-installer: /usr/bin/calibre-uninstall
Run "calibre" to start calibre 
呃, gitbook依赖的ebook-convert出现在了上面的列表之中。

## 生成电子书
假设电子书放在~/gitbook/hello下
cd ~/gitbook
gitbook pdf hello 会在hello目录下生成 book.pdf
gitbook epub hello 
gitbook mobi hello
cd hello
gitbook serve -p 8080 启动本地的http服务器


## Gitbook的基本规则 (转载部分)

Gitbook需要2个基本文件:

  • README.md
  • SUMMARY.md

README.md是关于你的书的介绍,而SUMMARY.md中则包含了书目,即章节结构,它的格式大致是:

* [第1章](c1.md)
 * [第1节](c1s1.md)
 * [第2节](c1s2.md)
* [第2章](c2.md)

剩下的东西就很好理解了,你只需要编写相应章节即可。在编辑完README.md和SUMMARY.md后,你可以运行以下命令:

$ gitbook serve -p 8080 .

Gitbook首先把你的Markdown文件编译为HTML文件,并根据SUMMARY.md生成书的目录。所有生存的文件都保存在当前目录下的一个名为_book的子目录中。完成这些工作后,Gitbook会作为一个HTTP Server运行,并在8080端口监听HTTP请求。

运行以上命令后,打开浏览器,在地址栏输入:http://localhost:8080即可看到你的书页了。

其中位于左侧书目顶部的Introduction一节就编译自README.md,而书目本身自编译自SUMMARY.md。你要在自己的网站上发布新书,只需把_book目录复制到服务器相应目录即可。至此Gitbook的基本用法就介绍完毕。下面简单讨论下Gitbook的其他应用,包括Gitbook的插件、与Github的融合、Gitbook客户端、Gitbook平台,以及Gitbook的问题。

 

参考:http://www.ituring.com.cn/article/127645

转载于:https://my.oschina.net/uniquejava/blog/846540

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33806914/article/details/92507420

智能推荐

关于sqlite3与python的基本操作及问题处理_python sqlite3 男跟女_Miakura的博客-程序员秘密

以下文章基于用navicat显示sqlite3的方法,用python进行简单的数据库操作,并对出现的问题进行一个解答

开源分享 一(StickerCamera + 仿微信多图选择)_贴纸相机 开源_aicpzl的博客-程序员秘密

开源分享 一由于项目需要,后期会在项目中加入给图片贴图或者打标签的功能,无意在网上发现一个类似的开源项目,便在此分享,与大家分享学习。除了该项目外,也同时分享一个仿微信实现多图选择的例子,下面做简单介绍。一、StickerCamera 介绍:一款集成了相机,图片裁剪,给图片贴图,打标签的APP。所需要的编译是 java 8。运行效果展示:使用说明:实现相机功能实现对图片进行

1009: [HNOI2008]GT考试 AC自动机+矩阵乘法优化DP_200815147的博客-程序员秘密

Description   阿申准备报名参加GT考试,准考证号为N位数X1X2….Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。 他的不吉利数学A1A2…Am(0<=Ai<=9)有M位,不出现是指X1X2…Xn中没有恰好一段等于A1A2…Am. A1和X1可以为0题解:这题挺简单、挺套路的啊,把不吉利数字的AC自动机建出来,答案就相当于走完n...

从零开始学习jQuery (二) 万能的选择器_donghuang4738的博客-程序员秘密

本系列文章导航从零开始学习jQuery (一) 开天辟地入门篇从零开始学习jQuery (二) 万能的选择器从零开始学习jQuery (三) 管理jQuery包装集从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式从零开始学习jQuery (五) 事件与事件对象从零开始学习jQuery (六) jQuery中的Ajax从零开始学习j...

520小玩意之Python词云:导出与女票的微信聊天记录并分析_FORMAT-qi的博客-程序员秘密

用python看看自己和女票都聊了些什么事最终效果图:一、导出微信聊天文件写2种导出聊天记录的方法:一种是Mac版微信,另一种是iOS版微信。1.导出Mac版微信聊天记录Mac版微信在本地存放了聊天记录的数据库,数据库使用的是开源的 sqlcipher加密了里面的数据。在终端输入下面命令,可以查看这些数据库的路径。 ls -alh ~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.

AXI协议(二)-AXI-Lite主机解析及仿真_axi lite_小何的芯像石头的博客-程序员秘密

AXI协议(二)-AXI-Lite主端解析及仿真文章目录AXI协议(二)-AXI-Lite主端解析及仿真生成Master Axi-Lite示例IPMaster IP代码解析状态机控制解析初始状态init_txn_pulse写状态writes_done读状态reads_done比较状态compare_done状态机小结AXI-Lite Master协议解析写地址通道写通道写响应通道AXI协议实现总结仿真完整工程建立仿真流程小结在这一篇中,你将可能学会:AXI-Lite主端的示例代码理解如何自定义自己

随便推点

Eclipse maven 项目红叉 编译不报错问题处理_weixin_33946605的博客-程序员秘密

项目右键-> Maven -> Update Maven Project选中 :Force update 复选框转载于:https://www.cnblogs.com/ericyi/p/9674996.html

BGP 13条选路原则_weixin_33928137的博客-程序员秘密

If the next hop is unreachable, do not consider it.如果下一跳不可达,是不会参加选举的!1. weightPrefer the path that has the largest weight.思科的专有属性。2. Local PreferenceIf the routes have the sa...

ajax报错图片怎么处理,ajax报错,如下图,请问这怎么处理啊_初見目的博客-程序员秘密

满意答案WULIN3212018.08.02采纳率:44%等级:9已帮助:566人importandroid.net.Uri;importandroid.os.Bundle;importandroid.widget.MediaController;importandroid.widget.VideoView;importcom.lingnet.app.tv.R;importco...

zepplin报错:java.net.SocketException: Broken pipe (Write failed)_坐着吃灬炸鸡的博客-程序员秘密

zepplin报错:java.sql.SQLException: org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe (Write failed)虚拟机关机再重启后登录zepplin执行hive语句就开始报错。解决方法(1)在zeppelin安装目录下的bin目录将zeppelin服务重新启动zeppelin-daemon.sh stopzeppelin-daemon.sh

oracle 官网下载_weixin_34122810的博客-程序员秘密

1.官网;http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html2.数据库网址:’http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html ...

推荐文章

热门文章

相关标签