找同事问一个问题,看他打开自己的云笔记本搜索了一番。看到他的笔记本,分门别类,满满的都是干货。当时就感觉自愧不如,自己工作这么多年,现在回顾起来,毛积累没有。

自己也曾在cnblog、博客园等网站写过博客,也尝试过用很多云笔记,比如有道云笔记、wiz云笔记等。现在登录到账号上也能找到自己当初的笔记,可是最终都没有坚持下来。当然原因很多种,比如自己不喜欢网站记笔记,云笔记还要登录,软件设计的也不太符合自己的口味。还有就是云笔记同步到云端,感觉有点不安全的感觉,指不定那天停止服务自己不就白瞎了吗?还有就是之前中二使用linux开发,而linux系统又不太稳定,每次重装一遍系统,自己的笔记等就丢掉一次,所以到现在,还是什么都没有留下。当然最根本原因还是自己懒

一直在寻找一款用着顺手的编辑器,也在寻找一种记笔记的方式,后来终于找到了它。typora,全宇宙最好用的markdown工具。

  • 界面简洁,功能强大,尤其是表格的组织。
  • 所见所得,不用使用鼠标组织格式,全部使用markdown语法。
  • 用文件夹组织,完全按照目录来组织笔记。

最新版本还增加了搜索功能,堪称完美。

但是typora只是一个本地markdown编辑器,还是避免不了笔记丢失的风险,万一那天电脑硬盘坏掉,岂不完蛋。

怎样把笔记保存到云端呢?

答案是使用git与icloud

  1. 把笔记的目录建到icloud的目录,实时后台同步,一重保护。

  2. 使用git把自己的笔记提交到github等代码仓库,二重保护。

有了以上两重保护,这样再也不用担心自己的笔记会丢了。而且使用git记笔记的方式,有没有感觉很geek。

如果想要分享自己的想法,怎么办?

使用hugo,静态博客生成器,直接将markdown源码生成自己的专属网站,样式什么的都可以定义,自己的网站自己做主。生成的静态网站在国内可以托管到coding.net在国际上托管到github.com,两个网站,双重备份。

工作中,始终打开一个typora,放到你的第二屏幕就行了。

  • 工作中的的一些要点,记录下来。
  • 上网查的资料,保存下来,当做缓存,再次遇到直接从笔记中查找。
  • 攻克一个技术难点,收集到的资料、自己的归纳、自己的理解,全部记录下来。

不知不觉,你的技术就会慢慢积累了,几个月后再回首,满满的成就感。

知识库==技术积累

工作记录、技术笔记、跟自己的blog是否需要分开存放?

我认为最好不要分开存放。如果分开去存放,这样会把自己搞的很分裂,毕竟我们是个个体。而且积累主要是工作时间,时间长了你就会发现,博客又荒废了。而且总结我这几年的失败经验来说,写博客切忌讳抽出一整段时间来写,这样很难坚持与出成果。最好的方式就是每时每刻都用卡片的方式来写,而生成一篇博客就只要抽出很少的时间整理一下就可以了。

如果想做个区分,只要在目录级别上面做个区分就可以了,像我的组织方式:

Notes
├── post
└── works

上面是笔记,下面是工作记录,全部都放到一个Notes目录里面。

如果不想把自己的工作文档发到网上去?只需要在hugo的配置文件里面添加以下配置,这样就避免渲染了。

ignoreFiles = [ "works"]

如果你像我有洁癖的话,也可以将hugo的content目录也单独拿出来,这样只保存最原始的笔记,而不依赖某一个静态博客引擎。我的做法是放到iclod的目录,这样也能同步到icloud中。

不是所有的东西都要分享,有的笔记是我们不想公开,怎么办?只要修改notes的元数据,标记为草稿。

draft: true

想分享那篇,就设置为false,想取消分享,就再标记为草稿。这个也是比hexo强的地方,hexo就很难做到这点,让我很难受。

博客与笔记的范围划分其实就是draft的状态,如果是false,那么就是博客。反之就是笔记。而怎样发布到github.com与coding.net呢?手工去做?

赖惰才是程序员的本性,写个脚本就行了。

blogDir=/Users/lingfohn/Documents/Gitblog.me
cd $blogDir/.git_deploy
workspace=/Users/lingfohn/Documents/Gitblog.me/$(mktemp -d XXXXXXXXXXXXXXXX)
cd $blogDir
echo ${blogDir}
echo "build..........."
hugo
git init ${workspace}
cp -r ${blogDir}/public/* $workspace
git --git-dir=${workspace}/.git --work-tree=${workspace} add --all
git --git-dir=${workspace}/.git --work-tree=${workspace} commit -m "ssss"
echo "发布到coding.net"
git --git-dir=${workspace}/.git  --work-tree=${workspace} push git@git.coding.net:lingfohn/lingfohn.coding.me.git HEAD:master --force
echo "部署到github.com"
git --git-dir=${workspace}/.git  --work-tree=${workspace} push -u git@github.com:lingfohn/lingfohn.github.io.git HEAD:master --force
echo "清理workspace"
rm -rf $workspace/

什么执行脚本也麻烦?把它设置成git的hook。

$ ln -s /Users/lingfohn/Documents/Gitblog.me/deploy.sh pre-push

这样每次提交就可以自动部署了。

每次创建文件,如果不想到blog的目录怎么办?

alias typora='hugo --config /Users/lingfohn/Documents/Gitblog.me/config.toml --themesDir=/Users/lingfohn/Documents/Gitblog.me/themes'

这样打开item在任意目录,就可以创建文档了,而且也不用敲hugo了,用了typora这个别名,仿佛是typora提供的功能。

新增一个文档

$ typora new post/k8s/"你的文件名".md

实时预览

$ typora server -D

写完提交

$ cd ~/icloud/Notes && git add --all && git push 

这样一番操作,那么你写博客的成本只剩下写了。