优化笔记博客系统

序言

国内的云笔记这些天又走了之前网盘的老路,限制免费用户。更有甚者,甚至连网络同步功能直接关闭。我都不知道,连同步功能都没有还叫什么云笔记 。

同时hexo博客也出了些问题,博客部署到github上,由于外网的原因,打开速度特别慢。有时可能不在同一台电脑上写博客,所以还要同步博客的源文件。博客的源文件文件数量很多,同步起来有点慢。另外博客源文件并不想暴露出来,要设为私有库。我的私有库受时间限制,只能去找别的托管网站。

注:gitbook即是一个工具的名称,也是一个网站的名称。

云笔记

近些天国内的各种云笔记又走了国内网盘的老路,限制免费用户,直觉告诉我可能要有一波云笔记要倒闭,只能想别的办法。

为知笔记

之前笔者一直用的是为知笔记。各种功能还算齐全。支持Markdown,还有Linux客户端,运行的也很稳定,用了快一年的时间,体验还是相当不错的。但是可能是受资金影响的原因,限制免费用户单机运行,云笔记成了记事本。而且导出功能并不是特别方便。

蚂蚁笔记

当我放弃了为知笔记的时候,想迁移到这个云笔记上面,开源,免费,功能强大。在github上有好几千star,支持Linux客户端。主题漂亮。但是运行的不是特别稳定,还没来得及迁移到上面,这个云笔记又成免费用户单机版。

有道云笔记

没办法只能继续挪窝,同时对云笔记市场表示担忧,感觉迟早要完蛋的感觉。支持Markdown的云笔记,大厂出品。虽然UI不太接受,同时也不支持Linux,但是还可以勉强用。用了两天,神奇的发现网易这么大的公司,投入这么多宣传,竟然也有这么不靠谱的产品。首先,笔记做长了,卡顿。这都不说了,神奇的还在后面,最操蛋的是Markdown不支持内部图片链接,也就是说所有的图片只能用外链。目前比较靠谱的解决方法,是把图片文件夹分享成外链再弄,总是让人感觉不舒服。还继续挪窝吧,靠谱的云笔记且支持Markdown貌似是不好找了。

gitbook

最后我是抛弃了云笔记,选择了gitbook+私有库来解决问题。虽然gitbook的社区并不算强大,但是好歹也是有个社区,可以提供一些插件。

gitbook有以下好处

  • git作为同步工具,svn也行。
  • 完美支持MarkDown,解决部分云笔记不支持MarkDown问题.
  • 跨平台。
  • 资源导出方便,通过gitbook官网或本地插件可以导出多种通用格式,包括epub,mobi,pdf等。
  • 不担心小公司倒闭,或者要挟收费,这家不好换那家。实在不行,自己建库。再不行,网盘同步。
  • 可以部署到博客上。

至于gitbook的配置搭建就不说了,官网有详细教程 toolchain documentation.。如果感觉npm慢的话,可以切换成阿里的源。只要执行下面一句就好

1
npm config set registry http://registry.npm.taobao.org

安装好gitbook后,可以下载一个GitBook Editor,它是gitbook官网的编辑器。这个编辑器到目前还不够完善,但是已经可用。感觉不好用的话,可以用各种MarkDown工具代替。

插件

网上的教程有很多介绍插件的,我推荐安装的一个插件是toggle-chapters。原生的gitbook不支持隐藏二级目录。加上这个插件,方便笔记管理。

下载命令:

1
$ npm install gitbook-plugin-toggle-chapters

配置book.json

1
2
3
{
"plugins": ["toggle-chapters"]
}

私有库

如果用gitbook作为同步网站的话,那么你的所有的笔记都是公开可见的,因为我有些只适合于做笔记。因此并不想公开展示。所以可以在github上开设私有库。如果没有github私有库,可以选择国内的一些托管平台。我用的是coding。把整个GitBook Editor的产生电子书的文件夹下,配置远程库。然后在gitbook Editor
上点击SAVE保存再提交。非常方便。

gitbook部署

我们可以为一个gitbook单独建立一个项目,配置项目pages。执行

1
gitbook build

生成网站,然后把生成的_book文件夹上传开启项目pages就行。用户也可以配置单独的域名。

这只是其中一种方法,如果用gitbook同步,本身就是部署好的。部署到国内的托管平台,速度会快一点。

博客

之前我的这个博客是用hexo部署到github上的。然后再把blog的源文件部署成私有库。即这个博客有两个库,一个是blog的库,一个是博客的源库。用了一段时间之后发现了有有个问题。

  • 因为github的服务器在海外,所以blog访问速度有点慢。
  • github的私有库要钱,但是同步的博客的源文件并不想公开。我的私有库有时间限制。

双库部署

针对访问速度慢,我的解决方案是这样的。

hexo部署的时候部署到两个库一个是github,一个是coding。如果乐意,可以把所有的git项目托管到多个平台上,这样更安全。愿意的同学,可以到网上找找,一个git项目如何配置多个远程库,很简单。这里不加介绍,下面是博客的多库部署,配置。并不是git项目的多平台托管。

修改配置文件

1
2
3
4
5
6
deploy:
type: git
repository:
github: xxx
coding: xxx
branch: master

同时配置域名解析,把一个域名解析到两个博客上,海外设置访问github。国内设置访问coding。之前一直是用github,毕竟github社区是无可比拟的,但是之后我可能会把私有库移植到国内的托管平台,速度更快。

遇到的问题

  • 博客源文件同步会可能回到Filename too long的问题。

在Git bash中,运行下列命令:

1
git config --global core.longpaths true
  • 同步博客源文件,主题同步不上。

删除主题目录下的.git文件夹就行了。

尾言

目前来看问题基本解决,不用担心某个托管网站停服,因为git项目迁移很方便。唯一担心的是一夜之间所有的托管平台,限制普通用户不能用私有库。学习gitbook的话可以参考以下这篇博客

感谢你的支持!