这篇文章就是在Boostnote 中写成的XDhtml
有一阵子,我沉迷于“笔记软件狩猎”中——就是不停寻找各类各样的笔记软件,再一个个试用,企图从中选出一个最强大的。回想起来,我尝试过有道云笔记、印象笔记、Quiver、Boostnote、OneNote、Yu Writer、Leanote(在本地搭建),等等。大部分都是浅尝辄止,例如OneNote,当我发现它不支持代码块语法高亮时,就放弃了它。目前仍然在使用的是Boostnote,而且也是最令我满意的。git
Boostnote自夸为“for developer”的笔记软件,除了书写Markdown以及实时预览以外,还支持绘图(UML、流程图、时序图)、制表,甚至能够添加LaTeX公式。github
GitHub上能够找到官方对Boostnote绘图能力的简单示例,但我用得极少。不论是画UML、流程图,仍是时序图,方法都是“写代码”。画UML用的是PlantUML的语法(你甚至能够在首选项中找到PlantUML服务器的地址),画流程图用的是flowchart.js的语法。我本身很喜欢这类语绘的方式,只须要熟悉一下语法,画起来图来比鼠标拖拖拉拉不知道要高到哪里去了。说到时序图,我更喜欢用sdedit。shell
制表只须要敲入竖线和横线便可。例如,下面的内容编程
|这|是|一| |-|-|-| |个|表|格|
在Boostnote中预览时的效果是以下这样的浏览器
这 | 是 | 一 |
---|---|---|
个 | 表 | 格 |
制表在Emacs的org-mode中有更风骚的表现。好比,按下tab键可让光标跳至下一个单元格,同时会自动调整每一列的宽度;甚至,还能够在单元格中使用公式。服务器
既然能够嵌入LaTeX,那么下列的内容编程语言
$$ \LaTeX $$
就可以用来绘制酷炫版的LaTeX logo了,以下所示编辑器
$$ \LaTeX $$ui
只惋惜这玩意儿不是inline的。
Markdown这门标记语言本来也支持代码块,但稍微现代的编辑器都应当至少支持语法高亮才行。在Boostnote中即使不进行预览,代码块中的代码也是彩色的。
Boostnote自动保存笔记内容,这点上每一个人的口味可能仍是不太同样的。
尽管能够将剪贴板中的图片粘贴到Boostnote的笔记中,却不能将图片复制到剪贴板中。惟一的办法,就是在粘贴了图片后,按照笔记中的文件路径,在Finder中找到这个文件,而后再复制。
不像Yu Writer和Typora,Boostnote既不支持目录也不支持大纲模式。若是用来写篇幅很长的文章,而且须要频繁在相距比较远的章节之间切换的话,会写得比较辛苦。但也能够认为,Markdown,或者说Boostnote这样的笔记软件,原本也不适合写做大型文档。遇到这种事情,仍是应当出动字处理软件(好比Word)或者TeX。
Boostnote没有将笔记的内容以朴素的Markdown形式保存为一个.md文件,而是存储成后缀名为.cson的文件格式。这意味着,即使哪一天有一款完美的Markdown编辑器出现了,也没法在其中查看和编辑这些Boostnote生成的文档。
我不是从入手了Mac以后才开始记笔记的,在此以前,我用Emacs的org-mode来记笔记,但也许称其为FAQ更恰当。使用org-mode,写做方式、浏览方式,以及载体都是一致的——用org-mode的语法来写做,同时写下的也就是所看到的(org-mode没有预览一说),最后,存储的也是纯粹的、敲入的文本。但用org-mode来记笔记也有本身的缺陷:
所以,才打算构筑新的笔记系统。但新的笔记系统应当不只仅能够解决org-mode遇到的问题,而是应该贴合个人核心需求才行。我本身曾经总结过,笔记软件应该知足以下的要求:
看下来更像是在物色一款好用的Markdown文件编辑器。但一款优秀的Markdown文件编辑器就会是一款优秀的笔记软件吗?我看未必。
实际上,对代码的语法高亮的要求,暴露了一个关键因素,就是:即使我写入的是Markdown代码,也但愿可以以渲染后的效果展现出来。因此,为何不直接使用富文原本书写笔记内容。若是是富文本的编辑器,那么通常便不会是以朴素的.md文件的格式来存储的了,但这并无什么太值得在乎的,毕竟谁也不会闲着没事就将笔记内容在各个软件间迁移着玩。
若是是一些能够公开的笔记,那么直接记录到博客中也不失为一个好办法——博客能够被搜索引擎索引,以后若是想要查找记录过的内容的话,也能够借助于搜索引擎强大的搜索能力来实现。不过,现阶段,我更喜欢这些笔记是私密的。
个人笔记也几乎不会与他人分享,所以不论是书写格式仍是存储格式,都只须要我本身用着开心就足够了。大多数状况下,笔记的用途实际上是代码片断,在须要的时候可以复制出来略做修改,用到其它地方——例如粘贴到shell中运行,解决一些临时的问题。若是不是由于我喜欢记下最终结果的前因后果的话,Boostnote的代码片断功能也许才是最适合个人选择。另外,因为大部分的代码都很是地短,即使没有语法高亮浏览器来也不是大问题,因此语法高亮的须要也就不那么迫切了。
如今看来,Boostnote并非最合适的(打脸了)。Evernote和Leanote是我用过的笔记软件中比较强有力的两个竞争者。因为Leanote比Evernote支持更多的目录层级,而且还能够选择建立Markdown笔记(而不只仅是富文本笔记),因此我大概会选择用Leanote来做为接下来的笔记软件的主力吧。
用Typora来写,用ElasticSearch来索引笔记,好像也不错?!