Markdown温故知新(1):Markdown面面观

1、什么是 Markdown?

从技术角度看,Markdown 是一种轻量级的标记语言。只需要在文档中增加一些标记符号,Markdown 引擎就能根据这些文本格式符号渲染出丰富多样的效果。

从应用角度看,Markdown 是一种用于编写结构化文档的纯文本格式。Markdown 使得我们能用易于读写的纯文本格式编写文档,然后转换成标准格式的 HTML 页面。

其实 Markdown 的工作原理很简单,就是通过引擎把预定义的标记语法转换成对应的 HTML 标签。Markdown 天然就是跨平台的,基本不会有兼容性问题,纯文本的格式使得其易于做版本管理,至于怎么渲染 HTML 那就是浏览器的事情了。

Markdown 通过简单的标记符号使得普通文本呈现出一定的格式,即内容和样式分离,巧妙的规避了繁重的排版工作,可以让使用者专注于内容写作,而不必过度分心到内容格式处理上,熟练之后,给人一种优雅的沉浸式写作体验。

2、有哪些人在用 Markdown?

曾几何时,Markdown 还只是在程序员群体中流行的书写格式,比如全球最大的开源代码库 GitHub 和全球最大的 IT 技术问答社区 StackOverFlow 的默认书写格式都是 Markdown

现如今,国内的博客园和 CSDN 等 IT 社区也都对 Markdown 提供了支持。Markdown 已经被被越来越多的知识工作者、写作爱好者等有文字编辑需求的群体广泛应用。

比如:作家们用 Markdown 来写书、写小说;写作爱好者们用 Markdown 来写日记、写文章;科研工作者和学生们用 Markdown 来记笔记、写论文;老师们用 Markdown 来写讲义;博主们用 Markdown 来写博文等等。

我个人主要是用 Markdown 来写技术文档和技术博客,比如本文就是用 Markdown 写成的。估计大部分程序员用 Markdown 也都是用来写文档、写博客、做幻灯片之类的吧。

3、用 Markdown 的优势是什么?

Markdown 的主要优点是易学、易读、易编写、易分享,且无需排版。Markdown 引擎会在用户输入的同时自动进行排版,所以写作者能够毫不费力地写出排版整齐的文章来。

一说写文档或写作软件,多数人首先想到的就是家喻户晓的 Word。的确 Word 功能很强大,而且多年以来 Word 一直都是全世界最流行的文字处理工具。但 Word 的功能堆砌过多,排版过程耗时费力,容易让人分心;且不同版本或平台可能还会有兼容性问题;版本管理更是无从谈起。

Markdown 几乎完美规避了 Word 的这些缺陷。一般来说,要成为一名 Word 达人,你需要熟练的掌握许多操作技巧,学习成本比较高。而 Markdown 日常使用仅需掌握几个简单的标记符号,学习成本很低。

Word 和 PowerPoint 的大部分功能对大部分人的大多数需求来说都是多余的。而 Markdown 则只解决可以用纯文本表示的问题,没有乱七八糟的样式和花里花俏的排版,显得很纯粹、很清新,给人一种极简主义的感觉。

Markdown 是一种天然兼容 HTML 的写作格式,因此能以 HTML 格式发布 Markdown 文档,而 HTML 格式是很方便分享的,且 HTML 天然是跨平台、跨终端的。很多工具甚至还允许 Markdown 文档以 PDF、Word、图片等格式发布。

对程序代码的良好支持是 Markdown 一大亮点,这大概也是很多技术博客积极采用 Markdown 的原因之一吧。

如今越来越多的网络笔记和内容社区都提供了对 Markdown 的支持,如印象笔记、为知笔记、有道云笔记、简书等,让内容生产者能以较小的输入代价来输出富有表现力的内容,也给读者带来了统一、舒适、美好的阅读体验。

4、Markdown 的语法标准简介

John Gruber 与 Aaron Swartz 合作开发了 Markdown,并于 2004 年以语法描述和 Perl 脚本的形式对外发布。John Gruber 还开发了一个用于将符合 Markdown 语法的纯文本文档转换为对应 HTML 的 Perl 工具。

在接下来的十多年中,Markdown 逐渐被各大软件社区采用,然而 Markdown 中只定义了标题、强调、列表、链接、代码块、引用、分割线这 7 类语法,本身的功能极为有限,一些特定的需求和场景无法被满足。很多人都希望作者能继续完善 Markdown,可作者再也没提供任何更新(其中 Aaron Swartz 在 2013 年自杀了)。

Reddit、Stack Exchange、GitHub 等组织曾合联合起来,想要将 Markdown 标准化,但在发布 Standard Markdown 之后,却被 John Gruber 要求改名,最后不得不改成了 CommonMark

慢慢的有人创建了转换工具,可以生成带有略微差异的 HTML 文档,也有人为 Markdown 增加了一些功能,如表格、清单、脚注等。于是乎就产生许多第三方的扩展语法,相应的,原作者定义的那些语法就被称之为标准语法了。

目前最知名、最主流的两个三方扩展语法分别是 GFM(GitHub Flavored Markdown)CommonMark

5、怎么用 Markdown?

因为 Markdown 文档是纯文本格式的,所以你可以用任何你熟悉的文本编辑器来写 Markdown 文档。然而就好比程序员们都用 IDE 写代码一样,我们一般也会挑一款趁手的 Markdown 编辑器来提升写作效率和写作体验。

为什么要用 Markdown 编辑器呢?首先,Markdown 编辑器一般会提供菜单栏、工具栏以及快捷键支持,让我们能够方便快捷的输入内容;其次,好的 Markdown 编辑器还有会有所见即所得的实时预览功能,让我们能够实时预览当前的编辑效果。另外,有些 Markdown 编辑器还有诸如打印、导出、上传等强大又实用的功能,让我们的写作如虎添翼。

6、如何选择 Markdown 编辑器?

如今市场上可选的 Markdown 编辑器有很多,有桌面软件,也有在线工具,还有许多支持 Markdown 的博客平台和网络笔记,有收费的,也有免费。一般来说,所有编辑器都支持标准语法,而扩展语法则各有各的不同。我时常会上网搜一下,看有没有更好的编辑器可用。下面列出的是我接触过的一些 Markdown 工具:

  • MarkdownPad
    这是我平常用的最多的一个 Markdown 编辑器,它是 Windows 下的一个多功能 Markdown 编辑器。被很多网友盛赞为 Windows 平台上最好用的 Markdown 编辑器。MarkdownPad 支持实时预览,可定制编辑器,可自定义样式表,支持多种 Markdown 处理引擎,内置图片上传功能,以及其它编辑器普遍支持的一些功能。最得我心的是良好的快捷键支持,貌似别的编辑器都不重视这方面的用户体验。

  • Typora
    这是一款全平台(Mac、Windows、Linux)支持的编辑器,主要优点是对扩展语法的支持很全,功能细节可配置余地较大,但很多默认配置不太合理,需要自己去改,对用户要求较高。我在 Windows 上试用了一段时间,最后还是放弃了。主要是操作不习惯,比如看预览效果还得切换编辑器模式,给人感觉很怪,不知道是不是不重视 Windows 的缘故。

  • 马克飞象
    这是一款专为印象笔记打造的 Markdown 编辑器,提供了桌面客户端、Web 端、离线 Chrome App。

  • 印象笔记
    知名网络笔记,不仅支持 GFM 和 CommonMark 两种主流扩展,而且支持数学公式、流程图、时序图、甘特图、图表等高级扩展,还把这些功能都预置到工具栏中,可以一键生成。

  • 小书匠
    这是一款专为 Markdown 写作而设计的编辑器。全平台支持,且有 Web 版,功能很强大,支持很全面,但收费。

  • Cmd Markdown
    作业部落出品,全平台支持,且有 Web 版,还配套有博客平台。

  • Markdown Editor
    极简主义,仅支持最基本的语法,新手练习的话推荐用这个。

  • 为知笔记
    知名网络笔记,很多年前就支持了 Markdown。

  • 有道云笔记
    大厂出品的网络笔记,也支持 Markdown。

  • 简书
    一款支持 Markdown 的博客平台,必须注册才能用。

  • FarBox
    一款支持 Markdown 的博客平台,支持微信和 Dropbox,可以建立个人网站,不过 FarBox 是按阶梯收费的。官方提供的客户端编辑器倒是免费的,我感觉用起来还不错。

  • MdEditor
    一款开源的在线 Markdown 编辑器。

  • StackEdit
    国外的一款开源的在线 Markdown 编辑器。

  • Dillinger
    社区里有不少人推荐这个,但我试用后发现不够稳定。

  • MaHua
    界面有点简陋,而且会与搜狗输入法产生冲突,几乎没法儿用。

如果你是程序员的话,你也可以尝试把 VS Code、Notepad++、Sublime Text 等专业的编辑器打造成 Markdown 编辑器来用。

7、如何快速上手 Markdown?

为了让那些从没接触过 Markdown 的朋友也能比较顺畅和快速的上手 Markdown,这里给出我根据个人经验总结出来的一个学习思路和上手步骤:

  • 第一步:试想一下,如果你要写一篇文章,你首先会写什么?是标题,对吧?在 Markdown 中,你只需要在标题文字前加个#和空格,就会变成一个大标题,加两个#就会变成一个小一点的标题,以此类推。
  • 第二步:写完标题,就该写段落了,段落本身不需要任何标记,直接写就是了。如果你想突出段落中的某些文字,那么你可以在这写文字前后各加两个*表示粗体强调,或各加一个*表示斜体强调。
  • 第三步:在实际写作中,经常需要引用别处的某段话。在 Markdown 中,只需要在一段话的开头加个>和空格即可表示引用。
  • 第四步:当你要阐述一组并列或相关的多个观点时,使用列表往往能更清晰的表达你的意思,只需要在每一个观点的前面都加上-和空格即可。
  • 第五步:如果你是程序员,那么你肯定有展示代码的需求,在 Markdown 中,你只需要在代码的前面加 4 个空格即可。

以上的这几步操作,示例截图如下(截自 MarkdownPad2):

完成以上几步,你就已经可以写出一篇漂亮的小文章了。然后你再尝试在文章中加个链接、嵌张图片、画个表格,就可以作为演示文稿了。相信你最后大概率会爱上 Markdown 这种独特的书写方式。

8、总结

本文介绍了 Markdown 这个排版语言的主要方面。Markdown 旨在尽可能易于阅读和易于编写,所以如果你是经常写文章的人,或者是有较多文字编辑需求的人,那么学习用 Markdown 绝对是个明智的选择。

本文链接http://www.cnblogs.com/hanzongze/p/markdown-aspects.html
版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!

posted @ 2019-06-06 19:19  韩宗泽  阅读(703)  评论(1编辑  收藏  举报
回到顶部