Markdown温故知新(1):Markdown面面观
- 1、什么是 Markdown?
- 2、有哪些人在用 Markdown?
- 3、用 Markdown 的优势是什么?
- 4、Markdown 的语法标准简介
- 5、怎么用 Markdown?
- 6、如何选择 Markdown 编辑器?
- 7、如何快速上手 Markdown?
- 8、总结
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面面观的更多相关文章
- Markdown温故知新(0):导航目录
Markdown温故知新(0):导航目录 Markdown温故知新(1):Markdown面面观 Markdown温故知新(2):详解七大标准语法 Markdown温故知新(3):六个实用扩展语法 M ...
- 快速学习MarkDown语法及MarkDown拓展语法
使用Markdown编辑器写博客 前半部分为效果后半部分为markdown格式,推荐开起两个窗口对比阅读 Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数 ...
- 基于 Blazui 的 Markdown 编辑器 Blazui.Markdown 尝鲜
想做一个文档平台用来存放和展示 Blazui 的文档,然后基于 Markdown 写文档,但缺一个好用的 Blazor Markdown 编辑器,所以就顺便写一个了,功能上基本抄的 https://p ...
- Markdown温故知新(4):更多扩展语法及HTML
1.强调(删除 & 高亮) 2.脚注(注脚) 3.数学公式 4.更多扩展语法 5.终极扩展之内嵌 HTML 5.1.文本修饰类标签 5.2.内容排版类标签 5.3.图片及多媒体标签 5.4.锚 ...
- Markdown温故知新(3):六个实用扩展语法
目录 1.表格(Table) 2.待办事项或清单(To Do List) 3.自动目录 TOC 4.流程图 5.时序图 6.甘特图 7.总结 1.表格(Table) 没用过 Markdown 表格的人 ...
- Markdown温故知新(2):详解七大标准语法
1.标题 2.强调(粗体 & 斜体) 3.列表 4.链接 & 图片 5.代码块 6.引用 7.分割线 8.总结 说明:在 Markdown 中,一行是指由换行符或回车符之外的字符构成的 ...
- Yii2项目实现Markdown功能 在线Markdown编辑器
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处. Yii中添加MarkDown编辑器 主要使用了两个网页Markdown编辑器,都带预览功能. 1,ijackua/yii2-lepture ...
- 我的Markdown的利器——Markdown Here、有道云笔记、iPic
Markdown逐渐成为大家文章编辑的首选,这里推荐两个比较冷门的Markdown工具. 用什么当做Markdown的主力工具? 网上有很多人推荐的Markdown的工具包括专业的Markdown工具 ...
- Markdown语法简介 | Markdown Tutorial
Markdown是一种轻量级标记语言,允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档. 与Word相比,使用Markdown最大的好处是可以使人们将注意力集中与文字本身而非排版 ...
随机推荐
- 11-numpy笔记-莫烦基础操作1
代码 import numpy as np array = np.array([[1,2,5],[3,4,6]]) print('-1-') print('数组维度', array.ndim) pri ...
- OpenCV随机颜色,用于画图调试
static Scalar randomColor(int64 seed) { RNG rng(seed); int icolor = (unsigned)rng; return Scalar(ico ...
- OpenStack产品摘要
docs OpenStack 核心服务 计算 Nova:虚拟化设施资源管理 ZUN:容器管理 QINLING:Serveless Function 裸金属 IRONIC:裸金属资源管理 CYBORDF ...
- [POJ1189][BZOJ1867][CODEVS1709]钉子和小球
题目描述 Description 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周围的钉子的距离都等于d,每个格子的宽度也都等于d,且 ...
- ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于(Wi-Fi模块AT指令TCP透传方式),MQTT通信控制升级
实现功能概要 前面的版本都是,定时访问云端的程序版本,如果版本不一致,然后下载最新的升级文件,实现升级. 这一节,在用户程序里面加入MQTT通信,执行用户程序的时候,通过接收MQTT的升级命令实现升级 ...
- Xamarin.Forms移动开发系列2:创建和调试
摘要 本文将介绍如何通过VS2019创建Xamarin.Forms应用程序,以及如何进行调试. 前言 本文介绍Xamarin.Froms应用程序的创建和调试. 开发环境 1.Visual Studio ...
- Linux性能优化实战学习笔记:第三十五讲
一.上节回顾 前面内容,我们学习了 Linux 网络的基础原理以及性能观测方法.简单回顾一下,Linux网络基于 TCP/IP 模型,构建了其网络协议栈,把繁杂的网络功能划分为应用层.传输层.网络层. ...
- 《TP5.0学习笔记---模板变量输出、替换和赋值篇》
原文地址:http://blog.csdn.net/self_realian/article/details/75214922 模板变量输出.替换和赋值 我们看一下文件编译的结果,我们知道我们现在写的 ...
- java8 HashTable 原理
HashTable原理 Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现.Hashtable中的方法是同步的,而HashMap方法(在 ...
- 是的 你没看错!!!用JAVA为MCU开发物联网程序?
是的 你没看错!!!用JAVA为MCU开发物联网程序? 一直以来,物联网设备这种嵌入式硬件,对于Java软件开发者来说,就是Black Magic Box,什么中断.寄存器,什么 ...