Mac上搭建得心应手的写作环境[Typora+Gitbook]

一、初衷

身为一名学计算机出身的工科背景从业者,在写作上一直钟情于Markdown,截至目前发现最好用的编辑器是Typora,它凭借简洁、流畅的书写体验,让人爱不释手。随着近些年写作需求越来越多,笔者一直希望能够找到一个良好支持Markdown的笔记平台,用以管理自己的输出,因此开始调研一些成熟的产品,先后包括:

以上各笔记的对比分析可参考如下文章
《2020年最好用的云笔记软件推荐》

搜罗完一圈儿后发现,好用的太贵,不花钱的又总是在一些关键方面显得不足,例如:OneNote依赖翻墙、SimpleNote不能放图片等等。
纠结困惑之余,笔者突然想到,难道不能把Typora跟其他的工具结合起来,一同打造一个个人写作平台吗?
带着问题再经过一轮搜索后,最终锁定了Typora+Gitbook+NAS的解决方案。

二、解决方案简介

整个解决方案由三部分内容构成:

  • Typora:编辑工具
    Typora是一款十分值得安利的Markdown格式文本编辑器,它凭借实时预览、多平台支持、便捷的素材插入,以及诸多交互细节上的完美考量,较其他编辑器能带来更舒服的书写体验,因此深受众多用户的喜欢。

    Typora界面

  • Gitbook:图书构建及发布管理工具
    Git是目前世界上公认的最先进的分布式版本控制系统。乍眼一看,好像Gitbook跟Git是类似的工具,但实际上,Gitbook是一个基于Node.js的开源命令行工具,它可以实现对Markdown文档的有序组织和格式转化,即可以将Markdown文档组织成册,也可以将Markdown文档转化为HTML、PDF、eBook等格式。

  • Git/NAS:版本管理工具【可选】
    Git就不必多讲。NAS准确来说的话是网络存储器的统称,现在也常常被用作个人云的代名词。如果是个人的话,NAS的存储能力以及版本管理能力就足够满足需要。当然,如果你想把写的文档存储在个人电脑上,并能够很好的手动管理的话,其实Git和NAS都可以不需要。

三、搭建(以Mac为例)

版本信息
系统版本:MacOS Mojave 10.14.6
Node:v12.16.1
Npm:v6.13.4
Nvm:v0.35.3
GitBook CLI version:v2.3.2
GitBook version:v3.2.3

1、安装Typora

下载地址:https://www.typora.io/
根据系统类型,选择不同的安装包,目前支持Mac、Windows和Linux三个平台。

2、安装Gitbook

  • 安装Node.js
    如果系统已经安装brew,可以通过以下方式安装Nodejs
$ brew install node

也可以前往官网下载安装包
https://nodejs.org/en/

Nodejs下载

Node.js安装成功后,在命令行可通过以下方式查询到版本信息:

$ node -v        #查询node版本
v12.16.1         #显示结果
$ npm -v         #查询npm版本
6.13.4           #显示结果
  • 安装Nvm
    Nvm是Mac系统下比较推荐的Node版本管理工具,用于切换Node的不同版本。
$ brew install nvm

安装成功后,可以通过如下方式查看目前Node的版本配置信息:

$ nvm ls              #查询node配置情况
->       system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
  • 切换Node版本
    基于高版本的Node安装Gitbook v3.2.3,会在创建的文档实例转换成HTML后,出现目录无法点击跳转的情况,解决的办法就是将Node降级到v6.16.0版本后再安装Gitbook。
$ nvm install 6.16.0
$ nvm use 6.16.0
$ nvm ls
        v6.16.0
->       system
node -> stable (-> v6.16.0) (default)
stable -> 6.16 (-> v6.16.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/ * -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.19.0 (-> N/A)
lts/erbium -> v12.16.1 (-> N/A)
  • 安装Gitbook
    当Node版本切换完成后,执行如下命令安装Gitbook
$ sudo npm install -g gitbook-cli
/usr/local/bin/gitbook -> /usr/local/lib/node_modules/gitbook-cli/bin/gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 11.621s

$ gitbook init
Installing GitBook 3.2.3
...
warn: no summary file in this book 
info: create README.md 
info: create SUMMARY.md 
info: initialization is finished

至此,如果没有出现问题的话,那么整个搭建过程算是顺利完成。接下来就可以体验以下如何利用Gitbook来管理Markdown文档了。

四、使用

下面就以一个小例子,演示一下如何通过Typora和Gitbook来创建你的文档。

1、创建文档目录并初始化

我们按照如下指令,在桌面新建一个测试目录TestBook,进入该目录后,通过Gitbook初始化得到READMESUMMARY两个基础文件。这样,TestBook就变成了一个文档集,或更直白点说,它就是一本书。README像是书的序言,而SUMMARY则是书的目录。

$ cd ~/Desktop/
$ mkdir TestBook
$ cd TestBook
$ gitbook init
warn: no summary file in this book 
info: create README.md 
info: create SUMMARY.md 
info: initialization is finished 

2、编辑文档大纲并重新构建

用Typora打开TestBook,可以看到如下内容


TestBook

按照如下内容编辑TestBook的文档大纲

# Summary

* [什么是5W2H](README.md)

* [Part I:5W](part1/README.md)
  * [What](part1/what.md)
  * [Why](part1/why.md)
  * [Who](part1/who.md)
  * [When](part1/when.md)
  * [Where](part1/where.md)
* [Part II:2H](part2/README.md)
  * [How](part2/how.md)
  * [How much](part2/howmuch.md)

然后再使用Gitbook对TestBook进行初始化,生成大纲列出的各个md文件和子目录

$ gitbook init
info: create part1/README.md 
info: create part1/what.md 
info: create part1/why.md 
info: create part1/who.md 
info: create part1/when.md 
info: create part1/where.md 
info: create part2/README.md 
info: create part2/how.md 
info: create part2/howmuch.md 
info: create SUMMARY.md 
info: initialization is finished 

构建完成后,发现TestBook下的目录结构是这样的

TestBook
├── README.md
├── SUMMARY.md
├── part1/
|   ├── README.md
|   ├── what.md
|   ├──why.md
|   ├──who.md
|   ├──when.md
|   └── where.md
└── part2/
    ├── README.md
    ├── how.md
    └── howmuch.md

3、启动服务通过浏览器查看文档

对文档目录下的md文件分别进行编辑后,可执行如下命令生成html格式的文档并查看

# 构建过程
$ gitbook build
info: 7 plugins are installed 
info: 6 explicitly listed 
info: loading plugin "highlight"... OK 
info: loading plugin "search"... OK 
info: loading plugin "lunr"... OK 
info: loading plugin "sharing"... OK 
info: loading plugin "fontsettings"... OK 
info: loading plugin "theme-default"... OK 
info: found 10 pages 
info: found 0 asset files 
info: >> generation finished with success in 0.6s ! 

# 服务启动过程
$ gitbook serve
Live reload server started on port: 35729
Press CTRL+C to quit ...

info: 7 plugins are installed 
info: loading plugin "livereload"... OK 
info: loading plugin "highlight"... OK 
info: loading plugin "search"... OK 
info: loading plugin "lunr"... OK 
info: loading plugin "sharing"... OK 
info: loading plugin "fontsettings"... OK 
info: loading plugin "theme-default"... OK 
info: found 10 pages 
info: found 0 asset files 
info: >> generation finished with success in 0.6s ! 

Starting server ...
Serving book on http://localhost:4000

最后,打开浏览器,输入http://localhost:4000便可以访问文档了。

在线查看文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容