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

Markdown温故知新(1):Markdown面面观的更多相关文章

  1. Markdown温故知新(0):导航目录

    Markdown温故知新(0):导航目录 Markdown温故知新(1):Markdown面面观 Markdown温故知新(2):详解七大标准语法 Markdown温故知新(3):六个实用扩展语法 M ...

  2. 快速学习MarkDown语法及MarkDown拓展语法

    使用Markdown编辑器写博客 前半部分为效果后半部分为markdown格式,推荐开起两个窗口对比阅读 Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数 ...

  3. 基于 Blazui 的 Markdown 编辑器 Blazui.Markdown 尝鲜

    想做一个文档平台用来存放和展示 Blazui 的文档,然后基于 Markdown 写文档,但缺一个好用的 Blazor Markdown 编辑器,所以就顺便写一个了,功能上基本抄的 https://p ...

  4. Markdown温故知新(4):更多扩展语法及HTML

    1.强调(删除 & 高亮) 2.脚注(注脚) 3.数学公式 4.更多扩展语法 5.终极扩展之内嵌 HTML 5.1.文本修饰类标签 5.2.内容排版类标签 5.3.图片及多媒体标签 5.4.锚 ...

  5. Markdown温故知新(3):六个实用扩展语法

    目录 1.表格(Table) 2.待办事项或清单(To Do List) 3.自动目录 TOC 4.流程图 5.时序图 6.甘特图 7.总结 1.表格(Table) 没用过 Markdown 表格的人 ...

  6. Markdown温故知新(2):详解七大标准语法

    1.标题 2.强调(粗体 & 斜体) 3.列表 4.链接 & 图片 5.代码块 6.引用 7.分割线 8.总结 说明:在 Markdown 中,一行是指由换行符或回车符之外的字符构成的 ...

  7. Yii2项目实现Markdown功能 在线Markdown编辑器

    版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处. Yii中添加MarkDown编辑器 主要使用了两个网页Markdown编辑器,都带预览功能. 1,ijackua/yii2-lepture ...

  8. 我的Markdown的利器——Markdown Here、有道云笔记、iPic

    Markdown逐渐成为大家文章编辑的首选,这里推荐两个比较冷门的Markdown工具. 用什么当做Markdown的主力工具? 网上有很多人推荐的Markdown的工具包括专业的Markdown工具 ...

  9. Markdown语法简介 | Markdown Tutorial

    Markdown是一种轻量级标记语言,允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档. 与Word相比,使用Markdown最大的好处是可以使人们将注意力集中与文字本身而非排版 ...

随机推荐

  1. 11-numpy笔记-莫烦基础操作1

    代码 import numpy as np array = np.array([[1,2,5],[3,4,6]]) print('-1-') print('数组维度', array.ndim) pri ...

  2. OpenCV随机颜色,用于画图调试

    static Scalar randomColor(int64 seed) { RNG rng(seed); int icolor = (unsigned)rng; return Scalar(ico ...

  3. OpenStack产品摘要

    docs OpenStack 核心服务 计算 Nova:虚拟化设施资源管理 ZUN:容器管理 QINLING:Serveless Function 裸金属 IRONIC:裸金属资源管理 CYBORDF ...

  4. [POJ1189][BZOJ1867][CODEVS1709]钉子和小球

    题目描述 Description 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周围的钉子的距离都等于d,每个格子的宽度也都等于d,且 ...

  5. ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于(Wi-Fi模块AT指令TCP透传方式),MQTT通信控制升级

    实现功能概要 前面的版本都是,定时访问云端的程序版本,如果版本不一致,然后下载最新的升级文件,实现升级. 这一节,在用户程序里面加入MQTT通信,执行用户程序的时候,通过接收MQTT的升级命令实现升级 ...

  6. Xamarin.Forms移动开发系列2:创建和调试

    摘要 本文将介绍如何通过VS2019创建Xamarin.Forms应用程序,以及如何进行调试. 前言 本文介绍Xamarin.Froms应用程序的创建和调试. 开发环境 1.Visual Studio ...

  7. Linux性能优化实战学习笔记:第三十五讲

    一.上节回顾 前面内容,我们学习了 Linux 网络的基础原理以及性能观测方法.简单回顾一下,Linux网络基于 TCP/IP 模型,构建了其网络协议栈,把繁杂的网络功能划分为应用层.传输层.网络层. ...

  8. 《TP5.0学习笔记---模板变量输出、替换和赋值篇》

    原文地址:http://blog.csdn.net/self_realian/article/details/75214922 模板变量输出.替换和赋值 我们看一下文件编译的结果,我们知道我们现在写的 ...

  9. java8 HashTable 原理

    HashTable原理 Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现.Hashtable中的方法是同步的,而HashMap方法(在 ...

  10. 是的 你没看错!!!用JAVA为MCU开发物联网程序?

      是的 你没看错!!!用JAVA为MCU开发物联网程序?          一直以来,物联网设备这种嵌入式硬件,对于Java软件开发者来说,就是Black Magic Box,什么中断.寄存器,什么 ...