“Keep Knowledge in Pain Text(用纯文本保存知识)”

纯文本能做的事

所有的软件源代码都是纯文本!

纯文本是即可以让机器运行,又可以让人类阅读的内容形式。

Unix 系统的底层设计充分利用了纯文本的独特性。

Markdown 的世界

Markdown 是内容和形式的最佳平衡,在最大限度保存内容的同时,用最小的代价记录了格式信息,整个文件格式的设计使他具备了很多的优势:文件小、内容易于编程、易于版本管理、易于差异比较、可读性高、专注内容同时兼顾格式、简洁、可扩展支持更多功能……

  • mermaid 使用 markdown 画流程图、甘特图、时序图(泳道图)、流程图等。 在线工具,可导出 SVG、PNG 等图片格式。
  • mscgen 在线时序图工具,可导出 SVG、PNG 等图片格式。
  • Markdown Plus MIT 开源代码 功能强大、齐全,基于 mermaid 库。
  • Markdown Mate 使用喜欢的工具编辑文件,使用 Markdown Mate 预览、打印和导出 PDF 等。
  • Haroopad 韩国做的一款 Markdown 客户端软件,支持 Win, macOS, Linux 等各个平台。
  • Editor.md 功能不错,但底层不是 mermaid,不支持甘特图,可能有点过时了。
  • StackEdit 开源代码 在线 Markdown 书写工具,可与 Google Drive 和 Dropbox 等整合。 Apache License 2.0
  • Slate 多功能编辑器,包含 Markdown 功能,但不是针对 Markdown 功能的。
  • react-mde A simple yet powerful and extensible Markdown Editor editor for React. React-mde is built on top of Draft.js.

实际上因为几乎所有的编程语言都是纯文本的,而程序应用几乎可以做任何事,所以说纯文本的威力自然强大,几乎可以做任何事!

如下是画甘特图的 markdown 文本:

gantt
dateFormat  YYYY-MM-DD
title Adding GANTT diagram to mermaid

section A section
Completed task            :done,    des1, 2014-01-06,2014-01-08
Active task               :active,  des2, 2014-01-09, 3d
Future task               :         des3, after des2, 5d
Future task2               :         des4, after des3, 5d

section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison          :crit, done, after des1, 2d
Create tests for parser             :crit, active, 3d
Future task in critical line        :crit, 5d
Create tests for renderer           :2d
Add to mermaid                      :1d

section Documentation
Describe gantt syntax               :active, a1, after des1, 3d
Add gantt diagram to demo page      :after a1  , 20h
Add another diagram to demo page    :doc1, after a1  , 48h

section Last section
Describe gantt syntax               :after doc1, 3d
Add gantt diagram to demo page      : 20h
Add another diagram to demo page    : 48h

重要的版本控制

我们知道重要的资料并非一次就能完善的,需要不断地修改演进,而这就需要保存它所有的历史进程,对于纯文本的内容就有了天然的优势:非常容易进行历史版本的保存和比较,其中非常著名的版本控制工具如:SVN 和 Git 等都具有类似的功能,可以保证重要资料的各个历史版本非常完善地保存,同时也有很多工具可以用于比较两个版本之间的区别,而非纯文本格式的文件就难以做到这些了,特别是版本比较,无法象纯文本那样具体看到前后版本的每一处区别,这在编程的源代码和写作领域非常有用,可以帮助开发人员或作家回忆当初的修改目的和具体的修改动作等。