Typora是一款支持实时预览的Markdown文本编辑器。它有OSX、Windows、Linux三个平台的版本,并且由于仍在测试中,是完全免费的。
一个文本编辑器,写得舒服是关键。我曾说过,「更有趣的是,一个笔记应用不会因为它支持Markdown语法而高级或易用很多。」,细枝末节处的人性化考虑才是最重要的。而Typora的编辑体验显然是经过深思熟虑设计的产物。
我认为:一个优秀的笔记应用应该给用户选择Markdown语法风格的权利。而Typora在这一点上是我目前见过所有Markdown笔记应用中做得最好的。
通过打开文件-偏好设置你会发现Typora为编辑体验的考虑细致到了令人叹为观止的程度。Typora中提供了大量有关Markdown偏好的设置,据此,你可以构建一个几乎完全适合自己的Markdown编辑器。下面我将依次介绍一些与文本编辑体验有关的功能亮点。
Typora的图片插入功能是广受好评的。要知道,Markdown原生不太注重图片插入的功能,但你可以在Typora中:
Typora会自动帮你插入符合Markdown语法的图片语句,并给它加上标题。
更强大的是,Typora支持在拖动或Ctrl+V网络图片后自动将其保存到本地。你可以在文件-偏好设置-编辑器-图片插入中选择复制到哪个路径,什么情况下需要复制。
这一功能保证了即使网络图片源失效了,你还有本地的备份可用。同时也能使你的文档文件夹更合理、完整。
「打字机模式」使得你所编辑的那一行永远处于屏幕正中。
「专注模式」使你正在编辑的那一行保留颜色,而其他行的字体呈灰色。
你可以在视图-专注模式/打字机模式中勾选使用这两个模式。
我想很果断地下这个结论:到现在还不支持编辑界面实时预览的Markdown编辑器基本可以退出市场了。Typora在这一方面显然已经领先了一大步——他们连Markdown语法的标记都在实时预览中消去了。当你离开正在编辑的有格式的文本段后,Typora会自动隐藏Markdown标记,只留下「所见即所得」的美妙。他们把这称为HybridView。
为了防止一些程序bug的发生(虽然在我使用下来感到是很少的)导致格式问题无法修改,Typora保留了一个「源代码模式」。你可以通过视图-源代码模式或左下角的>按钮进入。
Typora会根据你Markdown标记的H1、H2、H3……各级标题为你呈现一个大纲。
你也可以选择查看文件夹中的文件,但由于目前Typora只支持查看md文件,因此我认为文件侧边栏这个功能还是很鸡肋的。
在Typora中,你可以用:emoji:的形式来打出emoji,软件会自动给出图形的提示,还是比较好用的。
除了基本的文本编辑体验极佳之外,Typora还是一个非常优秀的学术文档编辑器。当然作为一个轻量级的、基于Markdown的编辑器,它不能与那些LaTeX编辑器相提并论,但它仍支持了许多可用于学术写作的功能。
Typora原生支持LaTeX语法,你有两种方式输入LaTeX风格的数学公式:
Typora中代码的插入也可以分为行内和块间两种:
在Markdown中插入表格一直是一件比较头疼的事情。在一般的Markdown编辑器中,你可以通过以下的格式插入表格:
|左对齐|右对齐|居中对齐||:-----|----:|:----:||单元格|单元格|单元格||单元格|单元格|单元格|乍一看还挺直观好用的是吧?但想想,一旦表格内容层次不齐,又或是表格长得难以下手,直接用键盘输入表格就显得十分麻烦和痛苦了。
好在Typora为我们提供了图形界面的插入表格的功能,你只需要在行内鼠标右键-插入-表格,并输入行数和列数,Typora就会自动生成一张样式不错的空表格。
链接引用类似于我们常在论文末尾看到的「参考文献」的写法,你可以通过[]:的语法来为你的文档加上链接引用。
除了前文提到的文件侧边栏,Typora还提供了一些耦合度不高的文件系统。
当我的一个朋友问我「Typora有什么好写的?」时,我回答「Typora是一个伪装成文本编辑器的浏览器」。是的,事实上如果你有一定的计算机基础,你可以找到许多有关于「Typora其实是一个浏览器」的蛛丝马迹。
在图片插入的选项中,Typora用了「复制图片到./${filename}.assets文件夹」的说法,而这其实是网页前端常用的Javascript字符串模板语法的风格。
再比如,Typora将更遵循GFM标准的Markdown语法模式称为「严格模式StrictMode」,这一说法常见于HTML和JavaScript编程中。类似「源代码模式」的说法也是同理。
当然,最明显的一点是当你按下Shift+F12快捷键时,页面会弹出一个基于Chrome的开发者工具栏,也就是我们在浏览器中常说的「审查元素」。
当我们把视角放在「Typora是一个支持Markdown语言的文本编辑器」的出发点来考虑这个问题,一切就都显得很明白了。
JohnGruber在2004年用Perl创造了Markdown语言,这个语言的目的是希望大家使用「易于阅读、易于撰写的纯文字格式,并选择性的转换成有效的XHTML(或是HTML)」。也就是说,在Markdown诞生之初,它就是为了被浏览器阅读而设计的。
我们在用Markdown语言撰写文稿的时候,其实本质上是在借助某种编程语言的转化(解析器)来编写一个HTML网页。Markdown从它诞生之初就与Web技术有着及其紧密的联系。
如果我说,我们每一篇文稿都是一个网页,那就很好理解了。Typora利用解析器先将我们写的Markdown文档解析成为HTML文档,再为它嵌入一个CSS样式,最后再加上可能需要的脚本等。
HTML是一种标记语言,主要负责构成网页的骨架,它包含所有不加装饰的网页元素。在Typora的使用场景下则是所有的文本、段落、标题等的记号。
你可以把一张网页想象成一幅数字油画,HTML就是那个黑白线条的底,上面写满了数字标记,示意你哪一块区域要涂什么颜色。而CSS则负责在对应的区域涂上颜色,甚至加上一些装饰等。
Typora支持许多常用的HTML标签,如果你了解HTML语法的话,你可以写出十分美观丰富的文档页面。
有了这一功能,我们就可以在Typora中创造出远超普通Markdown文档的页面效果。
Typora原生支持将文档导出为HTML格式的文件,并选择是否要嵌入style(也就是后文我将提到的CSS的部分)。
为了让文档更美观,我们可以为其加上CSSstyle。我认为Typora对CSS的支持让它成为一众桌面笔记应用中最与众不同的一个。在Typora中CSS被称为「主题」,但其本质仍是CSS文件。你可以在文件-偏好设置-主题-打开主题文件夹看到这些CSS文件。
除此以外,如果你有一定的Web编程基础,你当然也可以自己修改、新建适合你使用需求的CSS文件。我自己就写了一份名为WeChat的CSS文件,来符合我公众号特定的排版需求,例如正文是15px,页边距是8,小标题是18px等等。
使用Typora的「主题」功能写公众号的一个好处是,只需要每次都套用同样的主题,我们就可以在保证每次排版规范都相同的同时,节省许多重复的工作。
我想,能够潜心三年多打磨、测试一个产品,开发者们一定是倾注了极大的心血到这款笔记应用中。而在使用中,我也能体会到开发者的良苦用心。他们不想做知识的储备中心,不想做快速的草稿、笔记应用,也不想做任何和生产力无关的功能和特性。对于Typora的设计和构想,只有唯一的宗旨——「生产效率」。
因为移动端生产效率低,所以只有桌面端应用。因为左顾右盼的两栏式预览影响思路,所以他们甚至去掉了Markdown语法标记,只留下最终呈现的样式。因为Markdown是为了HTML呈现而设计的,所以他们提供了从入门到高级的一系列Web辅助功能……这一切都只是为了纯粹的生产效率。如果我们回头想想,Markdown语言本身,当初不也是为了高效地生成简单网页而诞生的吗?
最后,让我们一起期待这款顶级桌面文本生产力工具的正式版的到来吧!
原生应用启动往往几秒就可以了,内存占用也不会太高,electron启动就要好几秒(看机器),内存占用也要几百兆起步。