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

<h2 id="1">一、什么是 Markdown?</h2>html

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

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

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

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

<h2 id="2">二、有哪些人在用 Markdown?</h2>微信

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

现现在,国内的博客园和 CSDN 等 IT 社区也都对 Markdown 提供了支持。Markdown 已经被被愈来愈多的知识工做者、写做爱好者等有文字编辑需求的群体普遍应用。网络

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

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

<h2 id="3">三、用 Markdown 的优点是什么?</h2>

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 的支持,如印象笔记、为知笔记、有道云笔记、简书等,让内容生产者能以较小的输入代价来输出富有表现力的内容,也给读者带来了统1、温馨、美好的阅读体验。

<h2 id="4">四、Markdown 的语法标准简介</h2>

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

<h2 id="5">五、怎么用 Markdown?</h2>

由于 Markdown 文档是纯文本格式的,因此你能够用任何你熟悉的文本编辑器来写 Markdown 文档。然而就比如程序员们都用 IDE 写代码同样,咱们通常也会挑一款趁手的 Markdown 编辑器来提高写做效率和写做体验。

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

<h2 id="6">六、如何选择 Markdown 编辑器?</h2>

现在市场上可选的 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 编辑器来用。

<h2 id="7">七、如何快速上手 Markdown?</h2>

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

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

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

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

<h2 id="8">八、总结</h2>

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

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

相关文章
相关标签/搜索