2021-01-05-可能是最全能的Markdown写作软件——小书匠

我觉得我有资格进行Markdown编辑软件的测评,因为我真的是大面积的使用了不同的markdown写作软件来寻找小书匠,总的来说,小书匠是一款美观度稍差,但功能性可以打的全部其他markdown写作软件满地找牙的优秀产品,其在各个维度上的完成度都堪称优秀,而且还在不断迭代增加很实用的功能。

据不完全统计:

Mac平台:

Mweb、Ulysses、Bear

Win平台:

印象笔记、为知笔记、有道云笔记、MarkdownPad、Cmd Markdown、Obsidian

跨平台:

Typora、马克飞象、飞书、语雀、Notion、小书匠

按照自己的需求,众里寻他千百度,感谢有这样一款软件。

1. 我们为什么需要markdown?

markdown是一种轻量级标记语言格式,将不同的排版以纯文本形式表现,使得人们可以不用费力气在排版上,而专注于所记录的内容。

我们需要markdown是因为我们有知识的整理需要。我们对知识的认知主要有以下流程,观察、抽象、归纳推理、建立模型。以上过程环环相扣,再最后的最后,我们会以文字及图像的方式输出。

而在整个链条过程中,可以归纳为3个步骤,一是收集,二是整理,三是输出。所有的三个步骤我们都需要进行记录,而所有的记录不应过分繁琐,也不应过分简单。

不应过分繁琐是因为我们对知识收集的过程中,难以形成程式化的内容,过分强调格式会使我们忽略知识本身的价值,既原始资料的降熵过程。

不应过分简单的原因是,目前以印象笔记为代表的“一键剪藏”功能,使我们对知识的收集过分方便,经常遇见好的内容便一键剪藏留待以后看,而这样我们基本上永远也不会有机会继续看这些好的内容了,既拒绝做知识的搬运工。

所以,这中间的“度”是非常重要的。markdown则刚好是其中的一个平衡态,既不繁琐,也不过分简单。见到我们认为重要的知识,可以方便的将其主旨内容转换为纯文本文件,而在转换的过程中,亲自经过对知识的粗加工过程。(作为知识的收集部分,markdown还是显得有些笨重了,推荐flomo)

知识的整理和输出阶段,是markdown大显身手的部分。我们处于一个网络时代,网络时代的排版本就与纸媒不同,它不需要首行空格,也不需要将就版面印刷的方便,它可以随着屏幕的大小变化而随意更改。所以这赋予排版形态极大的自由度,它要在版式的易读性与排版的经济性之间做取舍。

markdown保留了传统排版中什么呢?不同级别标题的字号,加粗、斜体等区别,支持图文表格的混排,支持公式的输入,支持序列的生成等最基本的版式要求;那它抛弃了什么呢?抛弃了复杂的多图片横向排列,只支持居中,抛弃了区别字体,字号等不影响知识处理的非必要排版需求。若真的需要可以出门左转Tex。那它添加了什么呢?它添加了网络上经常可能用到的链接跳转,双链引用,标签管理等等极大方便文献整理并管理的手段。

以上只是关于markdown的只言片语,以期一叶知秋,markdown是为了网络时代的文献整理需求而开发的语言体系,它简洁的恰到好处。

2. 我们需要markdown编辑软件承担什么功能?

写文档,支持足够的表达形式,是一个文档编辑软件的基本要求。但仅仅能够做文档编辑工作却不足够,我需要的是一款能够配合我进行知识整理的软件。所以在提出Markdown编辑软件需要承担什么功能之前先谈一谈我的知识整理工作流。

我对于知识整理也是分为三个步骤的,第一步是资料的收集,主要来源是知网,IEEE论文,CSDN的一些博客文章,知乎的一些文章等,这些原始材料我称之为原始资料;第二步是资料的处理,利用对资料规范命名,分类,添加标签等方式将资料转换方便检索分类的粗加工资料;第三步是对资料学习后的输出,包括对资料内容的复现以及自己的原创文章等,这种资料我称之为精细加工资料

Markdown编辑软件主要是配合完成精细加工资料的手段。所以编辑软件需要承担的主要工作有编辑和输出两部分。所以编辑软件承担的功能也从这两类进行讨论。

2.1 编辑功能需求

对于编辑功能的要求要分成两个维度,一是功能足够,二是功能好用。下面简单列以下最基本的功能点,功能点里已经去掉所有Markdown软件的共性功能。

  1. Latex公式的支持
  2. 强大的图片插入能力
  3. 方便的表格插入功能
  4. 好用的高亮及预览功能

以上3条是最基本,但很多编辑器要么没有,要么做的不好的功能,下面分别详细说明。

2.1.1 Latex公式的支持

对于搞理工学科,公式编辑及显示是必要的,所以要排除掉所有不支持Latex公式的软件,如Bear以及大名鼎鼎的Ulysses等。Notion和飞书对Latex行内公式的支持也不好,把写好的markdown文档导入时无法自动渲染行内公式。

不是所有支持Latex公式的编辑器都能把这个功能做好。其中Mweb仅仅是支持Latex语法,可以进行渲染,如果在只打开输入界面而不打开预览界面时,是无法查看输入的公式正确性的。

对于Latex公式输入来讲,什么样的特性会让人感到舒服呢?就是在输入公式时,旁边能够实时显示渲染结果的预览框。在这点上Typora和小书匠是唯二让我觉得做的很好的编辑器。他们俩完全是镜像方案,Typora的特点就是实时渲染,我们所输入的所有标记文字会以最终格式呈现,而小书匠是以标记语言存在而现实预览结果,其对比如图所示。

Typora公式预览

小书匠公式预览

但相比之下我更喜欢小书匠的实现方案,因为Markdown作为一种标记语言本身,纯文本的输入界面有其意义,Typora强行进行本地渲染,在点击渲染好的公式,公式重新编程标记语言后本身的长度会发生变化,这导致其他文字相应的移动,整个页面在编辑过程中一直在晃动,这很不优雅。

Typora渲染晃动

这里额外插依据Typora的另一处不优雅,就是在更改标题级别时必须右键点击选中,这也是反标记语言的行为。

Typora的标题级别更改

2.1.2 强大的图片插入能力

Markdown本身就是要支持图文混排的,所以能够插入图片不是问题,问题是Markdown文档作为一种标记语言文档,虽然其格式是.md,但我们可以将其理解成.txt格式,这种格式没有为图片插入提供空间,即文档内是不可能储存图片像素信息的。它的解决方案是给插入的图片一个链接,这个链接可以是本地某个文件夹的地址,也可以是一个网络地址。图片存在本地的问题是会降低Markdown文档的可移植性,因为文档到了另外一台电脑上,沿着相同的文件夹很可能找不到当初插入的图片,同时给别人发送一个文档还需要附加一个图片文件夹也背离了标记语言的初衷。

那么合理的解决方案是图片链接为一个网络链接,不管在什么电脑上,这个图片对应的网络链接具有唯一性。但是这就要求我们在插入图片时,先将图片上传到某网络平台,我们称这种平台叫做图床,再由图床生成图片链接,我们再将链接插入回Markdown编辑器中,完成图片的索引操作。但这样不仅增加了写作文档的割裂感,同时不符合操作逻辑。

好的Markdown编辑器应该是可以进行图床绑定,然后将插入到文档中的图片自动上传图床,并自动更改插入地址为网络地址。

对这个功能,除了小书匠以外Mweb和Typora以及马克飞象可以实现,但对于支持图床的数量就有明确区别,马克飞象是把图片保存在印象笔记中,Typora需要配合PicGo来实现这种功能,Mweb支持Google Photos、Imgur、七牛云、又拍云的图床服务,但google需要网络支持,Imgur比较慢,七牛云目前若不花钱已经不适用于当图床,会定期更换网址导致之前的图片地址失效,但又拍云不是很了解,总之支持比较有限。小书匠支持的服务如下,基本能够满足不花钱使用图床的功能。

小书匠支持的图床服务

最后一点是,小书匠支持对插入图片的简单编辑功能,这点很好,因为有时候就是想在图片中圈一下重点,那么只能重新截图,重新上传,这同样很不优雅。

小书匠的图片编辑功能

2.1.3 方便的表格插入能力

利用Markdown插入表格其实挺不友好的,但是很多时候没有办法,所以一个方便的插入表格的方式就显得重要起来,小书匠的表格插入方法是傻瓜式的。

小书匠插入表格

插入选择的行列后,会单独弹出一个会话框,就像平时的表格一样填写内容就好。

小书匠插入表格

表格输入后在标记语言中呈现是下面这样的,所以说标记语言对表格支持是较差的。

| 1   | 2   |
| --- | --- |
| 3   |4    |

| 1 | 2 | | — | — | | 3 |4 |

不得不说,Typora在表格支持这块,是真的很优雅,我认为排在小书匠之上,是唯一认为实时渲染优于标记语言的地方。

2.1.4 好用的高亮和预览功能

标记语言有什么缺点呢,看上去不分明是最主要的。只有一种字体很难体现层次感,这在写作过程中会对内容位置定位造成困难,所以从编程IDE援引过来的高亮及预览功能可以很好的提升标记语言的层次感。

比如章节标题,粗体,斜体,列表等,都会用不同颜色进行区分。

小书匠的高亮

预览也是很重要的,像Latex公式预览,和图片预览,方便我们在编辑文献时定位编辑位置。

2.2 输出功能需求

对于输出功能是怎样界定的呢?对于精细加工资料,我们是需要在未来反复查看或者是要展示给其他人看的。这涉及到如下几个方面的需求。

  1. 用什么平台储存这些精细加工资料
  2. 文档的导出格式有哪些

2.2.1 用什么平台存储这些资料

首先,对于我们的精细加工资料,这些都是我们宝贵的财富,一旦出现文档丢失,图片丢失问题,会很伤心其付出心血的流失,也会很糟心当初的一些材料或试验结果难以复原。所以一定需要狡兔三窟,充分利用网盘,云笔记等功能多方备份,以防止资料丢失。

其次,我们的精细加工资料是我们的核心成果,其中会有相当一部分可以公布出来给别人看,丰富人类知识库,那么如何发布这些资料是很重要的功能。

再次,我们的精细加工资料很可能会经常被查询,那么如何对这些材料进行标记以方便查询也是很重要的功能。

  • 小书匠提供了如图所示的存储方案

主要分为3类,一是本次存储,二是网盘(webdav)存储,三是云笔记存储等。小书匠在存储方面真的是一骑绝尘,同时可以采用多种存储方式,全方位保障我们的资料安全。相比之下,其他软件可能就稍微若一点,但这点并不是拉开不同编辑器差距的地方,这里也是简单做以下介绍,每个人都有自己习惯的资料收集平台,按需选用。

小书匠的存储方案

  • 小书匠的发布能力

我们如何发布成果给其他人看呢,有人写公众号,有人写CSDN或知乎,有人写博客。对于写公众号、CSND和知乎的人,或许已经发现这些平台有些已经使用Markdown文档格式,有些没有,如果平时是用word等编辑器编写,复制到这些平台提供的编辑器中时,格式需要重新进行调整,很不方便。而markdown作为标准的标记语言,通过Markdown Here插件直接渲染,可以得到在各平台表现一致的阅读体验,这对于跨平台发布是及其友好的。

但这是Markdown语言本身的特性,小书匠可以将文档发布到Github,配合Github Pages建立自己的博客系统。利用Github Pages建立博客系统是目前的一种高体验主流方案,传统上传文章的方案是单独用markdown文档写完文章后,利用Github Desktop软件进行文章同步,这造成了很严重的割裂感,相比之下小书匠将这个过程实现的及其优雅。对于我来说,这简直是打到了我的七寸上。

  • 小书匠的文献组织能力

我们对于资料的整理,除了题目以外,还要给资料添加标签并分类,增加筛选维度,这在资料整理理论中是不可或缺的,方便的标签分类添加功能是文献组织所必须的。

小书匠有模板管理功能,我将自己的精细加工材料分成5大类,分别是做笔记、做文章、读论文、解问题和写随笔,不同类型用下面语句做标记。

category: 做文章

同样在模板中,给标签留下位置。通过存储在本地的不同文件夹中,这样就有分类、标签、题目、文件夹四个关键维度对文章进行分类,方便对资料的组织。

tags:     
	-  markdown     
	-  小书匠

小书匠模板

除了直接查询材料,小书匠支持在标签、分类、时间等几个方面对文献进行筛选,这又是一种文献组织形式。

小书匠资料查询

当然,小书匠的文献组织能力还不够强大,还难以像Evernote一样对图片内的文字进行OCR搜索,但我们可以将文献存储在Evernote中,利用Evernote的搜索能力增强文献组织能力。

还可以将文献同步的本地的Obsidian文件夹中,利用双链语法查看不同文献间的关系图谱。

Obsidian中的关系图谱

2.2.2 文档的导出格式有哪些

其实一张图片就可以解释这个问题。它的导出格式支持之多,令人很是惊讶,很多其他Markdown编辑软件,还需要借助PanDoc等软件实现类似的word格式导出等能力,小书匠直接全部集成了,绿色的是需要付费会员才支持的,但即使免费的部分,也够用了。

小书匠的导出格式

3. 小书匠的特色功能

下面所以说钱的问题,小书匠的付费会员价格是每年40元,学生第一次购买会送2年时长,相比之下国内的印象笔记利用双十一优惠等时段是每年80元左右,Evernote就很贵了,为知笔记也不便宜,给印象笔记做配套的马克飞象是每年79元,mWeb是128元买断,但前提是你得有一台mac。

下面是小书匠的付费会员功能,我上面介绍的那些都是免费的,看一看,这些付费功能能用到吗?我是用不到。

小书匠的会员功能

这篇文章是安利吗?是,如果你恰巧也被小书匠击中了痛点,又需要会员功能,或者纯粹看到写了这么一大篇文章的基础上被感动了,用下面的邀请码注册付费成为会员,我可能能够获得50天的会员时长奖励,苦笑,因为需要有2人付费才可以。

我真的是觉得小书匠好才给大家推荐的了,我目前除了不同电脑同步配置信息,也用不到会员功能。

邀请码:223_1g3diy

用户注册时请填写邀请码

小书匠完美吗?也不是,在使用过程中往往会遇到一些小bug,但在Github上报后总能很快得到更新解决,别看是个小团队,感觉几天就能更新一个小版本来添加功能或者修bug。