知识体系-打造写作工作流

前言

我想将我的学习过程全部记录下来,技术,工作,生活,还是思维片段,所有能记的都要记下来,终生学习这个理念不单要植入自己的脑子还要形成肌肉记忆。

当然记录这件事情也一直在做,但是做得并不好,单纯的记录其实意义不大,如果能分享出去,并因此而获取一些正向的反馈,然后再激励自己去 学习 => 记录 => 分享 => 获得正向反馈 形成一个无限重复下去的闭环,这将是一件非常有意思的事情,就像本篇博文一样。

本文的重点是 记录 => 分享 两个环节,至于其它的,以后补充。

背景

起因是我的 Hexo 博客有很久没有更新了,因为每次写完一篇文章要再部署到博客网站,太麻烦了。

我所有的内容都放在了 GitHub:my-notes 这个仓库下,然后本地使用 VS Code 去整理和编辑, Git + GitHub + VS Code 这套组合拳足以秒杀市面上的大部分笔记管理软件。

当然好的软件自有其存在的价值,比如我会使用:

  1. ulysses 去记录我零散的思维片段,其在移动端的编辑体验非常棒;
  2. 有道云笔记将在微信或者在网络中看到的有价值的资源一键发送到有道云笔记进行临时备份;
  3. 滴墨书摘将实体书或者图片中(如:网易云音乐图片中的歌词,海报文案...)的文字自动提取出来进行归类;
  4. 从 Kindle 中导出的读书笔记。

以上种种,所有搜集来的素材,等空下来的时候(周末)再整理和细分到 my-notes 下。

然后我会用 docsify 把 my-notes 中的内容放在我的 笔记:文档网站 中展示出来;最后,将一些想要分享的文章提出来再放到我的 博客:质数的一 博客。如果有兴趣话,再同步更新到简书, 掘金,segmentfault,知乎各个平台。

tip: 如果你是个技术极客,或者愿意再折腾一下,那么在 VSCode 下再集成 Cacher(Gitss 的第三方管理平台) 的插件,当然前提是你需要把素材(代码片段)放到 Cache 下,你会进入到另一个界,神界,只需要 Shift + Option + I,素材(代码片段)就会自动插入到当前段落下。

Cacher 官方链接

以上就是我的整套写作流程了,素材的整理和搜集,到写文章,再到文章内容的呈现和分享。

下面的内容将更多的从技术(代码)层面进行阐述,如何让以上流程实现自动化。

前方高能!(非程序员)

docsify 和 Hexo 数据迁移

docsify 和 Hexo 的目录结构是不一样的,docsify 中的文章按照目录树的结构去组织的,这也是选择 docfisy 的原因,my-notes 本身就是一个 project,而 docsify 可以直接将整棵 project 树呈现出来。但是 Hexo 需要将所有的文章全部放在 source/_posts 目录下,并且 Hexo 的文章格式和 docsify 有差异的,这意味着在两者之间需要有一次文章格式的转换,于是需要将 docsify 中的树状目录转换为一维的形式,全部放在一个目录下去。

docsify 下的文章目录结构:

tree .
├── 算法
│   ├── 算法入门
│   │   ├── (0)Linux-C-编程.md
│   │   ├── (1)冒泡排序.md
│   │   ├── (10)-堆之队列的优化.md
│   │   ├── (2)快速排序.md
│   │   ├── (3)去除排序中的重复元素.md
│   │   ├── (4)队列.md
│   │   ├── (5)栈.md
│   │   ├── (6)Floyd最短路径算法.md
│   │   ├── (7)Dijkstra最短路径算法.md
│   │   ├── (8)邻接链表的非链表化实现.md
│   │   └── (9)树-二叉树-完全二叉树.md
│   └── 算法收藏夹
│       └── 红黑树探索笔记.pdf
├── 网络
│   └── HTTP-请求and响应.md
....more items

Hexo 下的文章目录结构:

ls hexo-blog/source/_posts
(0)Linux-C-编程.md                                        JS对象(2)值传递与引用传递.md                              http(2)模块之服务器端.md
(1)Linux进程基础.md                                       JS事件(3)EventUntil对象.md                                http模块(1)之客户端.md
(1)冒泡排序.md                                            JS高阶(3)数组去重与排序.md                                jQuery(1)选择器.md
(10)-堆之队列的优化.md                                    JS对象(3)经典对象创建与继承模式.md                        jQuery(2)事件.md
(2)Linux进程空间.md                                       JS对象(4)对象方法.md                                      jQuery(3)DOM属性与内容.md
(2)快速排序.md                                            JS对象(5)对象属性.md                                      jQuery(4)DOM节点操作.md
(3)Linux多线程与同步.md                                   JS设计模型(1)单例模式.md                                  jQuery(5)动画.md
...more items

嗯,需要一个脚本去完成这件事情,关于此部分的内容可以参考我的博文 博客: Hexo博客迁移与Node.js目录遍历

自动生成 docsify 文章导航目录

使用 docsify 还有一个问题是,每次添加新的文章都需要在 _sidebar.md 文件中添加一个新的文章链接, 内容大概如下:

bat _sidebar.md
   1   │ - [README](/README)
   2   │ - **migration_hexo**
   3   │   - [将Hexo部署到自有服务器](/migration_hexo/将Hexo部署到自有服务器)
   4   │   - [搭建Hexo博客站点](/migration_hexo/搭建Hexo博客站点)
   5   │ - **前端笔记**
   6   │   - **CSS**
   7   │     - **CSS-Secrets**
   8   │       - [字体排版](/前端笔记/CSS/CSS-Secrets/字体排版)
   9   │       - [形状](/前端笔记/CSS/CSS-Secrets/形状)
  16   │       - [FlexBox](/前端笔记/CSS/CSS3/FlexBox)

每添加一篇文章都要往这个文件里手动添加一个新的文章导航链接,非常麻烦,而且很容易出错,这种需要机械重复劳作的事情,显然也是通过一段代码就可以解决的 auto_generate_docsify_sidebar.js。该脚本会自动遍历当前工程下的所有目录然后根据所在的路径和文件名称自动生成 _sidebar.md 文件。

自动部署

Ok, 解决了 docsify 和 Hexo 之间的文章格式,接下就是部署的问题了,N 久以前我是将 Hexo 直接部署到 GitPages 中的,此部分内容可以参考我的博文 博客:Hexo系列之站点搭建篇 ,由于墙的存在以及种种原因,访问速度以及部署体验并不好,所以我又决定将 Hexo 部署我的腾讯云服务器中去,此部分内容可以参考我的博文 博客:Hexo系列之部署篇,嗯,当你可以将 Hexo 自动化部署到服务器之后,你会觉得实现 docsify 的自动化部署将会是件多么简单的事情,此部分内容可以参考 docsify 官方文档

那么,尽情享受码字的快感吧!

以上每个环节都有值得改进和优化的地方,我会不断更新这套流程,如果你有更好的 idea,也请告诉我。

相关推荐