Markdown和Typora的基本使用

by Typora.net

在很早之前就已经接触过markdown了,但是一直觉得markdown使用起来非常繁琐(其实是我没有找到正确的打开方式),但是当我下载了Typora编辑器并尝试着把以前在为知上写过的一篇笔记使用markdown重写编写(使用Typora编辑器书写markdown笔记真的感觉自己就像在写代码一样)之后,我被深深的震撼了,这就是我想要的感觉(都怪为知的markdown编辑器太难用了)。

我之前曾经尝试过很多个markdown的编辑器,但是大部分的markdown编辑器都是分成编辑页面和预览界面,这样存在一个严重的问题,编辑界面实在是太不美观了,而且我们在进行编辑的时候视线的焦点是在编辑页面上的,而编辑页面上混合的markdown代码严重降低了文本的信噪比。

而Typora编辑器采用了“所见即所得”的方式,当我们写好markdown代码之后立马就会被渲染出来,就好像是我们直接采用了这样的格式一样,这才让我真正感受到了使用markdown进行文字编写的乐趣。

额,扯远了,本文的目的是整理一些markdown的使用方式,以满足我日常编写笔记的需求。

什么是markdown


Markdown是一种轻量级标记语言,传世人为John Gruber。它允许人们使用易读易写的纯文本格式编写文档,然后转成有效的XHTML(或者是HTML)文档 ——维基百科

可见,markdown的渲染还是基于HTML渲染引擎进行的。

为什么我会选择markdown


如果习惯使用Word或者WPS的话,肯能已经习惯了先编写不带任何格式的文本,然后再根据需要对文本引用各种各样的样式,在一些笔记软件(比如为知笔记)中的富文本编辑器也是使用这样的方式。

如果非常熟悉使用富文本编辑器的方式来编写文档,那么可能能够写出非常美观的文档,但是这种富文本文档的可移植性非常差,甚至一些类型的文档只能用专门的软件来解码和渲染。但是markdown的渲染机制是先转换成有效的html文档然后进行渲染,而HTML是有完整的规范的,所以移植性会好很多。

同时,使用markdown来编写文本让文本的样式变得可见,我们使用了什么样的样式可以直接在markdown代码中看见,这时候想要进行调整也容易了很多。

最重要的一点是,因为markdown是使用纯文本的方式编写带有样式的文本,可以让我们更加专注于内容,而且作为一个程序开发人员来说,能像写代码一样写笔记本身就是一件幸福的事情。

markdown的基本使用


言归正传,本文的主要目的是整理一些markdown的语法,为将来使用markdown进行编辑做好准备,同时也是为了能够在markdown的世界中写出样式跟我以前使用富文本编写笔记的样式类似的文本,因为在之前使用富文本编写笔记的时候积累了非常多的样式习惯,对于我个人来说,什么是重点,什么是难点等等都有自己的一套样式,所以我希望当我转而使用markdown进行笔记的编写的时候这些习惯不会受到影响,因此决定把这篇文章作为自己的第一篇博客。

markdown中,实现同一个样式或者功能的语法有好几种,比如无序列表就可以使用 * - 或者+来实现,这可能是markdown考虑到已有的一些纯文本格式的标记语言的使用者的习惯而做出的兼容,这篇文章的目的不是为了介绍markdown的语法,而是作为我个人的一篇笔记而存在的,只是为了我自己能够顺畅的从富文本过度到markdown,所以对于某种样式或者功能,只会介绍一种方式。

对于我来说,markdown的常用方法如下(当然有很多是在Typora编辑器中使用的方式) :

标题

markdown支持如下的6级标题

# 一级标题
## 二级标题
...
###### 六级标题

字体加粗

**加粗**

字体倾斜

*倾斜*

字体加粗并倾斜

***加粗倾斜***

删除线

~~~删除线~~~

引用

> 引用的文字

分割线

---

引入图片

![加载失败的提示](图片地址 '图片标题')
<img src="图片地址" width="50%" height="50%">

在markdown文档中引入图片是一件比较麻烦的事情,我们如果向将图片直接存储在文档当中就要使用base64这种编码把图片转换成一个大字符串,然后把这个大字符串一块放到文本之中,这样非常影响文本的美观,所以我一般不会使用这种方式向md文件中添加图片。

基于这个原因,使用markdown编写文档的时候,搭配图床进行图片的存储就是非常有必要的。

如果我们需要对图片的样式进行一些定制,那么也可以使用<img>标签

引入链接

[链接描述](链接地址)

无序列表

* 列表项1
* 列表项2

有序列表

1. 列表项1
2. 列表项2

对于无序列表和有序列表来说都是可以嵌套使用的。

行内代码块

`行内代码` 

对于行内代码块来说,是非常方便的,在写技术博客的时候如果提到某个方法或者是某个类,可以直接使用行内代码块,提高可读性。

多行代码块

```多行代码块 多行代码块```

Typora中的多行代码块是可以支持不同语言的,因为对于不同的语言关键字什么的都不太一样,Typora可以针对不同的语言应用不同的样式使得代码的可读性提高。

添加脚注

正文[^脚注名称]

表格

其实在markdown中使用代码编写一个表格还是比较麻烦的,因为源代码的可读性比较差(幸亏Typora是即时渲染的)

在Typora中插入表格可以直接右键插入就可以了,非常方便。

   
   
   
   

修改文字的颜色

我在使用富文本的时候经常有一些重点内容会让我标记成特殊的格式,在markdown中支持<font>标签,我们可以直接使用<font>标签来改变文字的一些样式

<font face="黑体">我是黑体字</font>
<font face="微软雅黑">我是微软雅黑</font>
<font face="STCAIYUN">我是华文彩云</font>
<font color=red>我是红色</font>
<font color=#008000>我是绿色</font>
<font color=Blue>我是蓝色</font>
<font size=5>我是尺寸</font>
<font face="黑体" color=green size=5>我是黑体,绿色,尺寸为5</font>

我是黑体字
我是微软雅黑
我是华文彩云
我是红色
我是绿色
我是蓝色
我是尺寸
我是黑体,绿色,尺寸为5

但是<font>标签并不能改变文字的背景色

修改文字的背景色

在虽然markdown最终会被转化为HTML,但是对于很多的HTML标签markdown直接当做code块进行处理了,也就是说对于很多HTML标签和属性markdown是不支持的,很不幸style标签和属性就不被markdown支持,更不幸的是就连div span 这些标签页不被支持,所以最后我们只能使用<table><tr><td>标签,借助<td>标签的bgcolor属性来实现给文字添加背景色

背景色是好东西背景色是好东西背景色是好东西背景色是好东西背景色是好东西背景色是好东西背景色是好东西

但是使用这种方式为文字添加背景色只能在一个新行中,不能将一段文本的某个区域添加背景色,这样一来我在使用富文本的时候使用不同的背景色来区分内容的重要程度的方式就有点行不通了。

所以最终我选择使用文字高亮来完成这件事,但是文字高亮背景色却只有一种颜色,那么就只能在高亮的同时使用文字的颜色来区分内容的重要程度了。

文字高亮在Typora中的语法如下

==文字高亮==
<mark>文字高亮</mark>
==<font color=red>带颜色的高亮文字</font>==
==**<font color=red>带颜色并加粗的高亮文字</font>**== 

因为我比较喜欢暗色主题,暗色主题中文字的颜色一般是比较偏白色的(其实主要是加粗文字的问题,Typora自带的样式把高亮中的样式覆盖掉了,所以在高亮中看加粗的字体会看不清楚),通过开发者工具查看了Typora渲染之后的文档,发现Typora中加粗使用的是<strong>标签,所以我决定当我使用加粗高亮的字体的时候使用<b>标签,并且我在自己使用的Typora的主题的样式表中加入了如下的样式:

mark b {
    color: #000;
}

这样就可以在文字高亮的情况下看清楚,最后,我的高亮带颜色的文字的写法就成了下面这样

==<b><font color=red>红色<font color=blue>嵌套在红色中的蓝色</font>红色</font>默认颜色<font color=blue>单独的蓝色</font></b>==

红色嵌套在红色中的蓝色红色默认颜色单独的蓝色

但是需要注意的是,上面那种==高亮==的语法是Typora的扩展语法,如果字节写的文章想要具有更好的灵活性应该使用下面这种写法:

<mark><b><font color=red>红色<font color=blue>嵌套在红色中的蓝色</font>红色</font>默认颜色<font color=blue>单独的蓝色</font></b></mark>

红色嵌套在红色中的蓝色红色默认颜色单独的蓝色

可以看到这两种写法的效果是一样的。

从上面的示例也可以看出,<font>标签是可以嵌套使用的,这么来说的话除了使用起来麻烦一点,这种使用方式还是可以基本满足我的需求的。

以上markdown和Typora的使用方式已经基本能够满足我的需求。
作者:劳码识途
链接:https://www.imooc.com/article/289084
来源:慕课网


Tags: