Markdown杂谈
文章索引:
直到你读到这段文字的半小时前,我还是一名彻彻底底的Markdown小白。无论是平时记录信息、整理数据,还是写点经验文档,做点知识总结,从文案编辑、排版到定稿,Word与TXT承包了我的一切文字向需求。我的个人习惯是纯数据、纯文本的较短篇幅内容以TXT记录,而大纲、论文等涉及文字编辑排版的用Word记录。然而,Markdown到底何德何能,动摇了一个在如今互联网软件生态下从出生就没更换过文字处理方式的这么个山顶洞人?
为什么选择Markdown?
要说为什么在这么多文字编辑与数据记录方式中选择了Markdown,得从当今的写作需求说起。
在这个碎片化信息的时代,通常有两大类打字需求:
一是最基础的信息传递,例如QQ、微信的实时交流,或是微博、朋友圈、B站的搜索、评论、弹幕等不强调实时性的信息交互;
二是进行知识的输出与整理,例如知乎回答、博客创作、专栏整理、公众号文章等社交媒体平台上,通常需要进行一定程度的排版、美化,以纯文本式内容创作作为主要方式的情况。
正是因为纯文本式创作在如今自媒体流量时代这一大环境下的市场需求,使Markdown编辑器如同雨后春笋般蓬勃发展,且在互联网开源潮流之下产生了1+1>2
的奇妙反应,极低的学习成本与生产效率的显著提高使Markdown成为当今时代内容输出者的"基本功"。
而我,正是在真正使用与实践了Markdown之后,才意识到这门简洁轻便,出身于HTML的标记语言到底蕴含了多大的魅力,使得无数创作者们奉为圭臬。
简单来说,Markdown只用两个字就完全征服了我——
一为 快 ,二为 美 。
注:本文Markdown语法及拓展均以Typora环境为例
Markdown的快与美,是Word鞭长莫及的。
就好比我们想要实现前文概述中对''快''与''美''两字的强调,如果在Word所需要进行的操作应该是:
- 鼠标拖选所需修改格式的文字/段落
- 寻找菜单栏中的加粗工具并点击
- 寻找菜单栏中的变色工具,选择红色并点击
- 寻找菜单栏中的字体工具,寻找所需的字体、字号
在Word中的这段操作,需要建立在熟悉每个所使用的功能对应图形工具栏中的位置的前提之下。显然,在写作的过程中,这一停下在键盘飞舞的双手,转而操作鼠标并寻找相应位置点击的操作,十分影响写作思路的连贯与写作时的心态。试想一下你在进行一次技术文档的梳理总结,哪怕内容只是短短的三五百字,光是关键词的强调与重要段落的编辑,怎么说也得不下十次打断你的进度。哪怕是第一遍不加标记的写完,最后再读第二次从头寻找关键词强调,也得耗费相当多的精力。写作是脑力活,编辑是体力活,因为低效劳动的硬伤阻碍了思绪的进展,显然是不太能接受的。
在这种以文字样式调整为主的场合下,在市面上绝大多数Markdown编辑器下实现这一复杂过程,都只需要简短的标记符号,加上短短几句前端代码来添加一下HTML标签:
一为**<font color=red size=4 face="微软雅黑">快</font>**,二为**<font color=red size=4 face="微软雅黑">美</font>**。
这种添加标签的方式,关键词都是最为基础常见的单词,甚至都说不上需要特地花时间记忆。相比于Markdown直接干脆的键盘输入,Word的鼠标图形化操作虽然简单直观,但是对思路与进度的干扰,多少显得有点力不从心。
然而,光靠写代码标签取代繁琐的鼠标点击修改文字样式,还完全没展现出快与美的一面。Markdown最重要且最为核心的,是它简明快捷的排版与标记方式。例如我想强调表达这个观点,除了采用例如这样加粗、变色、增大字体尺寸的方式来直接表达自己想表述的重点外,同样还可以通过引用别人的观点来起到佐证与材料补充:
我首先要说的是,学习Markdown非常容易,不到半小时就可以学完日常所需的大部分功能。如果你经常需要进行文字编写的工作,无论你的文字最终是在网页上还是纸上,我都建议你使用Markdown。因为,Markdown能够在不打断你写作思路的前提下,让你可以几乎同时完成文字录入和排版的工作。这简直太棒了,不是吗?
像这么一段排版干净整洁的引用,我只用了简单的一个字符 ‘>’ :
'>'+'空格'+引用内容
而像这种简洁优雅的代码框,更是Markdown一绝。比如就拿经典的hello world为例:
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}
只需要三个反引号``` 与代码所使用的语言,就可以实现归家般的感觉。
例:
```PHP
echo ("PHP是世界上最好的语言")
```
也许,我们只需要在某句话中加一句for (int i=0;i<100;i++){ n=n+i; }
的简单循环:
'`' + 内容 + '`'
同样的,对于内容的强调,传统的斜体、加粗、高亮,通过markdown编译器肯定是信手拈来:
斜体 加粗 加粗并斜体 高亮
*斜体*
**加粗**
***加粗并斜体***
==高亮==/<mark>高亮 </mark>
或者,想加个优雅的数学公式:
$e^{i\pi}+1=0$
$e^{i\pi}+1=0$
$公式$ 插入当前行
$$公式$$ 单独一行
角标同样也可以方便的添加: (Typora为例)
H2 0 X2 N3 an
H~2~O X^2^
N<sub>3</sub> a<sup>n</sup>
下划线与删除线的添加也同样十分简单:
<u>下划线内容</u> Typora内快捷键Ctrl+U
~~删除线内容~~ <del>下划线内容</del>
到了这里,标记部分差不多告一段落了,那么可以考虑加个分割线进行处理。分割线的实现也很简单:三个连续的***
或---
就可以快速的实现分割段落的效果。
除了这些实用的标记,排版的便携度更是Markdown的灵魂。我在写这篇絮语时用到了目录排版的 多级标题效果,而这放到Word需要多少的工作量想必经历过论文生成目录的同学已经开始头皮发麻了。但是,在Markdown只需要按标题等级输入相应数量的 ‘#’ 并加个空格就可以轻松地实现:
# Markdown杂谈
## 为什么选择Markdown?
###
·
·
·
当然,说到排版自然少不了列表了,Markdown在这方面的实现也很经典:
有序列表: '数字' + '.' + '空格' +内容
无序列表: '*'或'+'或'-' + '空格' +内容
例如我想用一个列表表示我的文章内容安排:
- Markdown优点杂谈
- Markdown软件推荐
- Markdown生态搭建
可能想给下次周末安排做一个简单的选项筛选:
- 学习
- 看电影
- 健身房
宅家补番打mai出勤
甚至,你能做出一个本周目标进度表:
- [ ] 看完《思考快与慢》
- [ ] 复习《 模拟电子技术》
- [ ] 学习日语
- [x] 补《钢之炼金术师》
- [x] 在上单回家时偷偷放峡谷先锋单吃镀层
'*/+/-' + '空格' + '[空格]'或'[x]' + '空格' +内容
/*若文章编辑上传时不支持markdown复选框格式
勾选 <input type='checkbox' checked/>
未勾选 <input type='checkbox' />
*/
表格的创建也是Markdown一大特色,通常 |
来分隔不同的单元格,使用 -
来分隔表头和其他行,而对齐也可以通过左对齐:-
,
居中 :-:
,右对齐 -:
的方式进行排版:
左对齐 | 右对齐 | 居中对齐 |
---|---|---|
单元格 | 单元格 | 单元格 |
单元格 | 单元格 | 单元格 |
| 左对齐 | 右对齐 | 居中对齐 |
| :---- | ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
而Typora环境下还可以通过 “右键→插入→表格” 的方式,快速的进行绘制与排版;同时,可以通过表格上方的控制图标高效调整表格的单元格、对齐、增删行列等。
或许,哪怕到了这里,Markdown的各种简洁而高效的文字编辑功能依旧不能够彻底俘获你的心。但是,超链接的存在则将大幅改变你对文字的印象。通过与互联网的结合,以及电子文章得天独厚的优势,Markdown将优秀的文本内容与优美而轻便的互联网功能完美的融为一体。例如,我想进行文内跳转,从这个星星图标跳转到索引目录,再从索引目录选择超链接回到这里::star:
像这样一个实用功能的实现,仅仅需要在想跳转的目标处添加一个锚点(id),并给自己的跳转目标添加相应的超链接,可以是文字图片等各种对象:
<span id=search>文章索引</span>
[⭐](#search)
这样一个简单而实用的文内跳转链接就轻松地实现了。
当然,对于更为常用炫酷的网址链接,也可以通过超链接的格式来实现,比如我想链接到B站:
BiliBili https://www.bilibili.com/
[BiliBili](https://www.bilibili.com/)
<https://www.bilibili.com/>
[](https://www.bilibili.com/)
[链接名称](链接地址)
<链接地址>

想必你已经发现了,这个小电视图片的URL是来自我Gitee的仓库,而通过配置好相应的上传服务后,我所做的只不过是打开浏览器,截图小电视图像,粘贴。就这么简单,一个附带网络来源的图片不到三秒钟就成为了我这篇文章的一部分,呈现到了你的眼前。而这,正是我彻底被Markdown征服的一记重拳。这也是无数人选择通过Markdown编辑器配合图床进行博客、社区、公众号等内容创作的原因:有谁能拒绝这种饭来张口,一步到胃般方便舒适的写作环境呢?
同样,通过html可以将一些想要分享的视频嵌入到你的文章当中:
<div class="container"><iframe src="//player.bilibili.com/player.html?aid=204006965&bvid=BV1Ph411C7S5&cid=293298061&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" class="video"> </iframe></div>
tips:
*嵌入视频的方式有很多,现在主流视频网站的分享位置一般都带有相应的<iframe>
通用链接。为了适配不同浏览器场合,可以采用这种添加<div>
标签的方式,标注元素并于CSS中添加样式的方式实现自适应。具体方法放在了参考资料中仅供参考。
我的实现代码:
.container {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
}
.video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
说了这么多Markdown的基本功能与常用技巧,想必你已经了解了Markdown的快捷与优美是如何征服万千用户,令无数人视作互联网时代的“义务教育”之一,但或许你还会纠结在学习大部分全新的知识与技术时都难以避免的一个问题:学习Markdown我需要投入多少的学习成本?答案很简单:
读到这里的你已经学过了接近所有的常用功能。
作为一个纯文本为主的内容创作辅助工具,Markdown具备了最常用的功能,也就是文字的排版、样式的编辑,偶尔插入几张图片,添加一些资料的链接与标注;同时也具备了像是HTML标签、CSS语言等多种实现前端表现力的拓展工具。回想一下,从第一段读到现在,也可能是跳着看到这得你,所耗费的时间最多也就是十来分钟吧。而Markdown的学习成本,仅此而已。剩下的内容,无非只是使用的熟练度,以及在不同Markdown编辑器中所拥有的一些特殊功能,只需要根据自己的需求或习惯便可轻易习得。而正是Markdown专注于内容创作的本质,决定了在学习这么一门方便快捷的语言时不会因为那些实用性低而繁琐复杂的语法与规则而浪费精力;而通过结合编辑器前端代码的多样功能与效果,又可以在需要进行加工美化以便最终呈现给读者更好的阅读体验时,赋予文字超脱于自身维度的能力。
静可不露锋芒,
好似白玉无瑕;
动则璀璨夺目,
有如灿烂琳琅。
除了以上介绍的内容,Markdown还有非常多专业性更强的功能为提高生产效率而生,就不细讲了。可以说,正是因为Markdown所拥有的低学习成本、高生产效率的特点,才使得这么一种生于程序员前端需求的语言,成功的从这么一款程序员使用的小众工具,普及发展成为拥有完整生态与大量受众的成熟产品,在软件市场与社交平台百家争鸣的互联网宠儿。
能将这篇文章看到现在,想必你对于Markdown应该是充满了兴趣与想法,已经蠢蠢欲动甚至是已经开始行动起来了吧。那么,一个问题就油然而生了:
怎样搭建一个舒适的Markdown环境?
别急,在思考环境搭建与软件选择前,我们先得明确自己使用Markdown的目的与需求:
想用Markdown来做什么?
- 用Markdown生产博客文章
- 用Markdown进行知识管理
- 用Markdown制作论文报告
在明确了自己的目的后,我们就可以进行相应的需求分析来判断哪款软件与方案适用于自己的应用场合了。例如:
为了满足博客创作的需求,一个舒适的Markdown环境的定义,我个人是这样理解的:
- 有着整洁优雅的书写环境,有着优秀的定制化方案。
- 能清晰的进行预览与调试,能实时呈现Markdown代码与实际效果之间的差异。
- 能迅速的对操作进行响应,拥有流畅的软件体验。
- 能支持一定的拓展功能,例如图床上传、支持HTML与CSS。
那么,能够最大程度满足这一需求的不二之选显然就是Typora了.Typora的实时预览功能可谓将优雅做到了极致,"所见即所得"的极致体验设计与绝大多数采用左右分屏预览的Markdown编辑器相比有如天壤之别。再加上丰富的HTML与CSS样式的拓展之后,这一纯文本为主体并有充分美化空间的创作环境可谓是为博客创作者量身打造。在支持PicGo图床插件后,配合Gitee、七牛云等平台作为图床云端支持(当然家里有矿可以自己服务器作图床),即可形成完整舒适的博客创作生态链。
那么,如果并不对制作博客、幻灯片等美化文本有较大需求,只是想将各种知识与各种技术文档等做一个完整的归纳梳理,创造自己的知识管理体系又需要一个怎么样的环境呢?
- 具备最基本的Markdown快捷排版与标记功能,如多级标题、加粗斜体、表格列表等。
- 可以嵌入各类pdf、Excel、Word、思维导图等文档便于链接归纳。
- 能有一定的安全存储空间以保证资料的安全存储、保存。
那么,对于国外用户而言,Notion可以说是最具价值与体验的选择。无论是丰富的模块功能,还是经验的链接、分类、云存储的需求,Notion都完美的将''一切皆区块''的美学理念成功的融合为一款极富创造性且极具使用体验的优秀内容梳理软件。同时,其提供的云存储服务也相对优质,有较大额度的免费存储空间。
然而,Notion对于国内使用者而言确实存在一定的使用障碍:国内访问速度慢、数据迁移不便、文章导出不友好等情况对于有较高迁移需求的国内用户并非最佳之选。那么,国内用户有什么更为适合进行知识管理的软件呢?
语雀,完全可以作为国内目前个人用户与小规模团队的知识管理不二之选。相比于诸如Marxico、Markdownpad等知识管理软件,语雀既具有如Typora般"所见即所得"的优质实时性预览体验,又具备嵌入各类文档、图稿、流程图等各类文字图片文件并实时预览的惊艳设计,同时结合上分类归档、分支管理的一站式云存储方案,可以说只需要一款语雀,你就可以毫无后顾之忧地搭建与运营自己或小规模团队的完整知识库。
当然,你可能并不想运营什么个人博客,平台公众号一类的内容输出,又没有较大的个人、团队知识管理需求,只不过是想安安静静的写篇论文、做份报告。那么,Markdown同样也可以帮助到你。
想要实现一份完成度较高的论文或是报告,通常需要有这些能力:
- 添加数学公式便携高效
- 能够方便的进行文献引用与链接
- 可以解决图片交叉索引,便于绘制相对繁琐复杂的图表或流程图
而通过传统的Word直接进行绘制插入,过于缺乏效率且难以进行调试、改动。这些问题,通过Markdown搭建相应环境可以高效轻松的解决这类难题。
对于这种专业性要求较高的场合,推荐采用Markdown编译器+文献管理+格式转换的方式来提高生产效率并可以顺便构建自己的学术知识库。
从编译器来讲,VScode、Atom、Vnote都适合用来写论文、报告的专业型Markdown编辑软件,且都各具特色与优势:
VScode想必不必多说,但凡和代码打交道的应该哪怕未见其人也先闻其声了。真正意义上的支持所有语言,可定制化的UI与主题,以及海量的插件支持与巨量的使用者,可以说VScode的庞大生态使得一切都似乎只有想不到没有做不到。作为一款轻量级的编辑器兼IDE,无论你是有经验的程序员还是没接触过编程的小白,都可以搜索到大量的教程、文档快速的上手VScode,并通过Markdown插件实现各种功能的复合延申,极快的进行绘图与编辑。
Atom作为一款github的开源编辑器,颜值极高,有大量主题与定制化的内容值得探索,同时社区资源与支持的插件确实让人爱不释手。然而高颜值的前提建立在对硬件配置与空间的要求还是一定程度上降低硬件较弱使用者的体验的,对于像我一样硬件普通的用户而言,Atom尽管优秀不会是我的第一选择。
此外,Vnote作为一款Qt开发的同样也很有特色,清晰的语法高亮,丰富的快捷键,方便的文件管理,使其成为一款专业性极强且整洁高效的编辑器。然而,相比之下极小的开发团队与较短的发展时间,受众主体更接近于硬核程序员的重度Markdown用户,所以资料没有那么充分,遇到问题时想要解决较可能会遇到一定障碍。因此综合来讲,VScode是我最为推荐的无忧选择。
从文献管理角度讲,NoteExpress、Endnote、Mendeley等软件都各具特色。简单来说,尽管Notepress有不少小BUG,但就国内paper而言NoteExpress因为支持中文文献的识别还是较为推荐的。如果没有国内文献的需求的话,无论是稳定性还是功能Endnote都更为优秀。当然如果没有校内企业资源可以利用的话,开源免费的Mendeley也是一个可以考虑的选择。
至于格式转换,由于Pandoc实在过于强大,有Markdown转Word需求的话也就不用特地考虑其他选择了。
在分析完我们具体的需求与目标后,我们就可以根据自己的情况考虑需要用什么样的方式来实现自己的目标,定义自己的环境搭配了。就以我的情况来说,我会选择这样的环境搭建:
有搭建个人博客并进行简单美化的需求,
选择Typora+Picgo+Gitee实现舒畅的内容输出;
(Tips:使用Gitee作为图床存在1M的大小限制,可采用部署Gitee Pages解决(见参考资料),
较大图片推荐上传SM.MS/ImgURL等免费图床或压缩图片)
有少量知识梳理归类的需求且想放在一个安全存储空间中,
选择语雀进行个人知识管理;
有少量国内论文需求且有一定编程基础,习惯于VScode生态,
选择VScode+NoteExpress+Pandoc进行论文编辑。
当然了,如果你已经习惯了某款编辑器,比如说更喜欢Typora的写作,将主体文字编辑排版在Typora完成后,导出的md文件再导入到语雀、VScode等其他更符合需求场景的软件二次加工的方式,也完全是提高使用体验、降低学习成本的优秀解决方案。
确定好所需要的软件环境后,就只剩软件下载与环境搭建的过程了。至此,这篇文章想要达到的目标也已经大体完成了,至于具体的软件下载与环境搭建,絮絮叨叨的全写下来也只不过是"重复造轮子",这类资料与教程早已遍地。不如直接利用谷歌、必应、百度等搜索引擎,在诸如知乎、简书、CSDN、博客园、V2EX、OSChina、少数派等平台寻找自己需要的技术内容。资料的搜索本是一种能力,利用搜索到的资料实现自己的目标则是一种实力。
当然,创造有价值的"喂饭"文章也是我创作博客的目的之一。互联网的信息与知识本就是零散而杂乱的,而大多公众号机械式的转载与缝合,虽然获得了流量却缺失了经过思索与梳理后可以直接消化吸收的优质内容与生产价值,给寻求优质内容的用户带来了太多的阻挠。例如我从了解、接触到使用Markdown的整个过程中,实际搜索、浏览了不下三百个来自不同人的回答,短的有知乎回答,长的有万字博客,但真正价值较高且有效帮助我完成整个流程的,手脚并用也够数了。而正因此,我通常会将我自己的思路与理解通过文章逐步分析递进的形式,平滑的传达我的思想与考量,并将对我有帮助的文章列入参考资料附录当中,为有进一步学习与了解意愿的读者省下一些寻找车轮的工夫。
或许在这个满是碎片化信息、短视频娱乐、喧嚣浮华的流量年代,不图利益,纯粹为了将自己的经验与思考写成一篇耗时耗力的文章,发表在一个无人问津的博客的举动难免显得笨拙低效,在多数人看来无法理解。甚至说在享受完大厂给予学生优惠的红利后,这个本就无人问津的博客也将难以为继,被迫得将服务器迁移海外因而降低了读者的浏览体验。然而,这些来自时代洪流的阻碍并不会影响我在力所能及的范围内,为想要学习进步的你搭一级台阶的初衷,也并不会成为影响我通过输出自己的思考,来帮助我复习巩固,实现自我价值,再度重新认识自己。
你的认真阅读便是对我最大的肯定,你的点赞更是我继续坚持的动力。希望这篇文章多少能帮助你少走点弯路,也希望你能从文章中理解我是一个怎么样的人,有着怎样的价值观与生活理念,能在以后用到这篇文章时,想起在这个浮躁年代却始终逆流而上的痴人,足以。
我自己搭建Markdown环境所使用到的教程文章列入了参考资料中,如若你有优质的资料教程,欢迎在评论区附上链接,或是联系我添加相应链接,以便帮助到其他有需要的读者。由于本文只是一介小白从零开始的经验总结,难免存在不少疏漏与片面的见解,也欢迎在评论区或于其他平台账号联系我给予修改意见,以便给读者带来更佳的阅读体验。
参考资料
Markdown更改字体、颜色、大小,设置文字背景色,调整图片大小设置居中,插入表格等方法
如何使youtube iframe嵌入的视频自适应 (100%宽度)
注:Picgo记得开一下时间戳重命名/长传前重命名以免出现同名文件的情况