开始使用新blog

又开始使用新博客
主要介绍了这个blog的迁移历史,以及使用hexo,octopress部署blog的一些相关资源。

为什么又要迁移

2018.6.23
这次迁移的原因是因为自己一不小心把vm删掉了(总是犯这种低级错误,老老实实定期把重要内容备份在本地disk上才是保险但有效的方式啊),连同上面所有的hexo的blog备份。github上虽然有之前记录的各种文档但始终仅仅是静态页面。趁着假期有一点时间就可以把之前的一些记录重新梳理校对下。

最早的blog是在csdn上,记录自己的一些小心思和学到的一些技术感想。算是自己一点一点觉得什么叫做认真生活,后来受到dbg的影响,开始搭建blog,从octpress到hexo,到了现在这里,如今dbg的blog也不再更新了。从blog也能看到自己掌握的一些技术的变化,从java,golang,docker到k8s再到现在的parallel与distributed,中间还零星的Python与ruby,看看过去的文章除了感叹物是人非与自己的幼稚之外也庆幸的是自己最起码也是认真过的。

为什么要迁移

为什么要迁移(大致写在2017年初的样子)

过了小半年左右的时光,又回来了。这一段的经历需要好好整理,回头看之前的blog又有了许多启发。首先是个人认为的一个blog应该具备的基本功能:markdown显示,分类检索,文章内容的目录,评论。之前使用的octopress,排版上也是不错的,但就是没有文章的目录显示的功能,找了一些相关的主题,也都不满意(主要是找不到文章目录的功能),看着同学使用hexo,心想索性迁移过来。吐槽有一些主题,花哨得恨不得上天,但是基本的功能都没有。

过程并不想原先想的那么顺利,因为版本问题折腾了好久,本来想先把新的blog部署在coding上,然后把旧的迁移过来,但是部署上去竟然背景都加载不出来,只能说disappointed。想着再部署到git试一试,结果把原来octopress的分支又弄乱了,索性直接迁移到新的blog上吧。

这也说明了一个问题,就是对知识一知半解的时候,是很危险的,这个时候只能按照通常的套路来,但是想要定制,或者玩一些花样的时候,一知半解的知识就满足不了需求了。比如这次,git的那些基本流程和操作是清楚的,但是octopress对于git分支的管理当初并没有细看,它执行rake deploy的操作,到底是更新哪个分支,也没有细看,git的一些不常用的操作也没弄懂,结果只能从头再来了。

到是之前的那些文章都在。

写什么样的blog

回头看看之前的blog,好多文章的价值并不高,因为仅仅是相关内容的粗浅罗列缺乏自己的思考,这些内容,看官方文档自然是更权威的,那自己罗列在一起的价值又在哪里呢?每次搜索一个问题的时候,会发现好多没用的文章,自己的文章,恐怕也是其中之一吧。所以以后没整理一篇,都要明确这一篇能够给自己,或者给别人带来什么样的价值,此点是很重要的。

万不可再“贡献”冗余文章了,同时再清理掉一些过时的文章,从这一点看,把之前的文章重新审视一遍,也是好的。

hexo部署blog的一些资源

定制hexo的一个教程(从源码的角度分析 比较有参考价值)
https://segmentfault.com/a/1190000006057336

hexo官方文档(吐槽下bd)

https://hexo.io/

通过在hexo中添加一些关键代码来控制文章是否在主页面上显示

https://github.com/giscafer/hexo-theme-cafe/issues/8

1
2
3
4
5
在_partial/archive.ejs中加简单的判断
<% if ( post.visible!==false){ %>
<%- partial('article', {post: post, index: true}) %>
<% } %>
除非文章加visible:false,不然都会默认显示

使用mac部署的时候,会遇到dtrace的依赖无法安装的问题,这个依赖mac是不支持的,相关的解决方案:

1
rm -rf node_modules/ && npm install –no-optional
还可以参考这个issue:

https://github.com/trentm/node-bunyan/issues/216

npm 命令的 no-optional的含义,可以参考:

http://unix.stackexchange.com/questions/168034/is-there-an-option-to-install-an-npm-package-without-dependencies

没有dtrace的时候,在一些主题上,使用是不影响的,但是有些主题的布局还是会采用dtrace的依赖包的,比如我使用的这个shihuangse主题(前端的问题真是解决起来很麻烦啊,Docker的优势又一次显现了)。后来使用linux部署,奇怪的问题才没有再出现,目前我也没有找到一个比较完美的方案。

octopress使用的一些资源

看到大波哥用Octopress搭建的博客还挺不错的,于是也跟风搞了一个。还有一个原因是原来在cnblog上面的旧博客对markdown编辑方式的支持简直是丑cry,默认的时候,字太小,都挤在中间的匡匡中,有的时候自己都不想看,抽时间把旧的还蛮有价值的文章一点一点搬过来。

Octopress摸索了一下,勉强可以做一些简单的操作了,再搞一搞语法高亮,加上一些定制的组件,就更好了。

把一些octpress使用时候的参考资料也记录在下面:

基本的使用命令:

http://octopress.org/docs/blogging/

vim设置编码格式:

:set fileencoding=utf-8

vim设置无bomb:

:set nobomb
http://segmentfault.com/q/1010000000256502

相关的定制可以参考看这个blog:

http://www.cnblogs.com/oec2003/archive/2013/05/31/3109577.html

这个定制教程也不错:

http://foggry.com/blog/2014/04/28/custom-your-octopress-blog/

更换主题教程

http://blog.flatironschool.com/how-to-install-a-custom-theme-on-octopress/

每次编辑好之后可以 rake preview 命令在本地看一下效果

具体部署的时候,可以参考这个:http://www.tuicool.com/articles/jYZ7jy

主要是 rake generate 、 rake preiew 、 rake deploy 几个命令的使用。

在首页显示摘要,默认的情况下,显示的是文章所有的内容,如果只想显示摘要部分,可以用这个标记:

<!中划线中划线more中划线中划线> , 后面部分就会自动被隐藏起来。

注意代码块是三个反引号 或者直接用标签 pre code 的标签

其他

有几次 报了下面的错误

jekyll 2.5.3 | Error: Pygments can’t parse unknown language: class.

主要是因为代码块引入的问题,注意代码块和文字之间都留好空格,还有 如果用 三个单引号 表示代码块不行的话,就换成 < pre >< code > 。。。< /code >< /pre >的表示试试看。

还有一个挺郁闷的地方就是,每次从编辑器中拷过来的代买,都被弄成了一行,感觉有什么显示不出来的奇怪字符在后面,也可能是从虚拟机里面拷出来的原因,格式不对。还得放到txt中把没用的东西都过滤掉。手工重新调整一次,比较麻烦。

hexo debug

主要是一些hexo使用过程中的一些debug记录

hexo deploy的时候ENOSPC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
INFO  Start processing
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: watch /home/parallels/Documents/hexoblog/themes/cafe/ ENOSPC
at exports._errnoException (util.js:873:11)
at FSWatcher.start (fs.js:1234:19)
at Object.fs.watch (fs.js:1262:11)
at createFsWatchInstance (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:37:15)
at setFsWatchListener (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:80:15)
at FSWatcher.NodeFsHandler._watchWithNodeFs (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:228:14)
at FSWatcher.NodeFsHandler._handleDir (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:407:19)
at FSWatcher.<anonymous> (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:455:19)
at FSWatcher.<anonymous> (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:460:16)
at FSReqWrap.oncomplete (fs.js:82:15)
FATAL watch /home/parallels/Documents/hexoblog/themes/cafe/ ENOSPC
Error: watch /home/parallels/Documents/hexoblog/themes/cafe/ ENOSPC
at exports._errnoException (util.js:873:11)
at FSWatcher.start (fs.js:1234:19)
at Object.fs.watch (fs.js:1262:11)
at createFsWatchInstance (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:37:15)
at setFsWatchListener (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:80:15)
at FSWatcher.NodeFsHandler._watchWithNodeFs (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:228:14)
at FSWatcher.NodeFsHandler._handleDir (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:407:19)
at FSWatcher.<anonymous> (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:455:19)
at FSWatcher.<anonymous> (/home/parallels/Documents/hexoblog/node_modules/chokidar/lib/nodefs-handler.js:460:16)
at FSReqWrap.oncomplete (fs.js:82:15)

需要修改一个系统参数:

1
2
3
4
5
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
hexo deploy的时候permission denied(public key)
https://www.zhihu.com/question/21402411
+
https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agen

推荐文章