Markdown语法收集整理
写在前面的话
网上绝对是已经存在不少相关文章了,但是本人并不自觉画蛇添足,因为很多文章往往居高临下,对一些很常用的语法避而不谈,致使一众小白如坠五里雾里……谨以此文敬飨小白_
本文符合github语法规范,因为不同的平台往往存在细微差异,本文内容可能不完全适用其他环境。
换行
换行并不能通过单纯使用回车键完成,规范的语法是“空格+空格+回车”。换行很重要的哦,不仅能使文章结构更加清晰,也使得语法格式得到中断。
首行缩进
当我们新起一行,输入四个空格以图达到首行缩进的排版效果时,你会发现:不行,之后输入的文字会被当作代码给标记起来了。肿么办?很简单,在段首加入“&”+“ensp;"来输入一个空格,输入“&”+“emsp;”来代替两个空格(一个汉字宽度)。
标题的生成
标题之前以符号“#”开头,且符号#与正式的标题之间最好加入一个空格(此为规范语法)。标题共有六个等级,随着“#”的个数从一到六分别为一到六级,字号渐小。此外,在文字的下一行输入两个以上的减号或者等号,也会生成标题,这两种方法生成的标题等级不同。
列表的生成
列表分为有序列表和无序列表,前者以有序的阿拉伯数字开头,数字后接符号“.”,后接一空格;后者可以用符号“*”、“+”、“-”开头,并接一空格,且三者可以混用。在次一行缩进四个字符,可以产生次一级的列表。列表的前后都要有空行。
示例:
+ 亚洲
1. 中国
- 山东
- 江苏
- 河南
+ 欧洲
* 德国
* 法国
效果如下:
- 亚洲
- 中国
- 山东
- 江苏
- 河南
- 日本
- 韩国
- 中国
- 欧洲
- 德国
- 法国
如果你在正文中恰好出现数字加点这种形式,但是并不想形成列表,那么可以在‘.’的前面加上‘\’来避免出现有序列表。注意,符号\是转义字符,可以帮过你输入原意字符,其作用不限于此处。
此外,有序列表和无序列表似乎还可以混用,这样可以方便很多。但是,最好不要这么做,因为在其他平台中可能会出现与此处不同的情况,从而产生混乱。
1. 十年生聚
2. 十年教训
- 有志者事竟成百二秦关终属楚
+ 苦心人天不负三千越甲可吞吴
上述例子效果如下:
- 十年生聚
- 十年教训
- 有志者事竟成百二秦关终属楚
- 苦心人天不负三千越甲可吞吴
引用的格式
很简单,用符号“>”开头就可以了。通过增加大于号的数量,可以生成多级引用。
栗子:
>初唐诗
>>陈子昂
>>>前无古人,后来者,念天地之悠悠,独怆然而涕下。
效果:
初唐诗
陈子昂
前无古人,后来者,念天地之悠悠,独怆然而涕下。
删除线
这是GFM所增加的语法,前后各使用一对“~”直接包住的文字会被化掉。效果就像这样:删除线。
链接的生成
Markdown支持两种链接:行内式和参考式。格式均为[](),不过行内链接的小括号是紧接在中括号之后的,中括号中放置链接的名称,小括号中放置链接地址,且小括号中加入双引号还可以为链接加上标题文字。举个栗子:
如果我这样写:[知乎](https://www.zhihu.com"行内链接"),你看到的就是:
知乎。
参考式的链接是在链接文字的中括号后面再接上另一个中括号,而在第二个中括号里面要填入用以辨识链接的标记,也可以空出来不写字,在文件的任意位置,把这个标记的链接内容写出来。
[豆瓣][link_douban]是一个挺不错的网站(这是一个栗子):
[豆瓣] [link_douban]是一个挺不错的网站,评分的理由大多挺骚气的,我喜欢。
本节最后会给出网址。这样一篇文章中引入的网址很多时可以得到统一管理,行文时也不会显得混乱。至于给出网址的方式,有两种(取决于你是否在第二个中括号里面填入内容。[CSDN][]是另外一个例子,当我这样写,你同样会看到这样的效果:[CSDN][]。
[link_douban]:http://www.douban.com
[CSDN]:http://www.csdn.com
现在给出上述豆瓣网和CSDN的链接给出的方式:
[link_douban]:http://www.douban.com
[CSDN]:http://www.csdn.com"参考式"
图片的引入
类似于链接的生成,图片也可以分为行内式和参考式,行内式的图片的引入格式为“![]():”感叹号之后接一中括号,其中写入图片的描述文字,之后是小括号,其中写入图片的地址,最后还可以用引号包住并加上选择性的标题文字:
示例:![苏州](http://i4.buimg.com/567571/f97dda09a0809abe.jpg)
至于图片的地址,可以登陆极简图床网,上传本地图片并获取地址。
![杭州][hangzhou]
![杭州][hangzhou] 是使用参考式引入的另外一张图片,它的链接是这样给出的:
[hangzhou]:http://i4.buimg.com/567571/0f776055c6741bd7.jpg
[hangzhou]:http://i4.buimg.com/567571/0f776055c6741bd7.jpg
如此放置的图片,其位置和大小都是默认的,我们还可以通过下面这种方法规定其大小和位置。align规定了图片的位置,alt是图片的名称。
<div align=center>
![绝代芳华](http://upload-images.jianshu.io/upload_images/5467949-be75018d9481d637.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
</div>
<div align=center>
</div>
说了好多,你有木有发现,真很烦……我猜你一定这么觉得,不过不要紧,因为我们其实很少这么做,像简书啦,CSDN啦等等平台和软件,都对图片有很好的支持,可以通过简单的复制粘贴就完成。具体各不相同,自行领悟去吧......
粗体与斜体
前后分别用两个“*”包住的文本将会是粗体,前后各只用一个“*”包住的部分将会是斜体。辣么,问题来了,如果说用三个“*”嘞?你猜......
表格的生成
大量使用符号“|”去模拟表格的形状,可以说是在“假装自己是一个表格”!燃鹅,它还真特么成了一个表格,你说它搞不搞笑......其中第二行中的冒号的放置决定了该栏内容的重心(左对齐、右对齐或者居中),默认左对齐。
栗子来啦:
| 姓 名 | 年 龄 | 性 别 |
| ------- | -------: | :-------: |
| 张 三 | 20 | 男 |
| 李 四 | 22 | 男 |
| 王 五 | 24 | 男 |
| 赵美丽 | 18 | 女 |
姓 名 | 年 龄 | 性 别 |
---|---|---|
张 三 | 20 | 男 |
李 四 | 22 | 男 |
王 五 | 24 | 男 |
赵美丽 | 18 | 女 |
代码的嵌入
如果你缩进4个空格或1个制表符然后输入文本,将会被视为代码,代码区块会一直持续到没有缩进的一行。我觉得更加方便的办法是在代码区的开头和结尾各加入三个反引号“···”,按键就在“Esc”的下面,因为有时候缩进会变得有点烦(还有人会为了到底要使用空格键还是制表符展开争吵,为了世界和平,我们就不要那样做了......)。如果你只想在行内插入少少的一点代码,可以只是用一个反引号,比如这样:`void funtion()`,效果是这样的void funtion()
,也还不错。
添加四个空格后是这样的:
public class ActivityCollector {
public static List<Activity> activities = new ArrayList<>();
public static void addActivity(Activity activity){
activities.add(activity);
}
public static void removeActivity(Activity activity){
activities.remove(activity);
}
public static void finishAll(){
for (Activity activity : activities){
if (!activity.isFinishing()){
activity.finish();
}
}
}
}
再使用三个反引号加一段代码试试:
```
protected void onResume(){
super.onResume();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.example.liu.broadcastbestpractice.FORCE_OFFLINE");
receiver = new ForceOfflineReceiver();
registerReceiver(receiver, intentFilter);
}
```
上述代码的效果是酱紫哒:
protected void onResume(){
super.onResume();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.example.liu.broadcastbestpractice.FORCE_OFFLINE");
receiver = new ForceOfflineReceiver();
registerReceiver(receiver, intentFilter);
}
分割线的生成
在一行中用三个以上的星号、减号、下划线将会建立一个分隔线,行内不能有其他东西,但可以插入空格。不过,请注意,当你要用减号来生成分割线,而上下文又都存在文字的话,请空出一行,不然其上文会搞成标题,是不是有点烦,一律使用星号去生成分割线吧。
我是一条分割线
- - ------- - -
上面这个东西确实是一条分割线,我作证。我是下面这个东西:
___________
我是最下面这个,你猜我是不是嘞?
***
我是一条分割线
上面这个东西确实是一条分割线,我作证。我是下面这个东西:
我是最下面这个,你猜我是不是嘞?
待办事项TODO
很简单,- [ ] 23333,这样表示待办,- [x] 23333,这样表示做好了。注意,我这里第一次使用由三个空格哦,横线、方括号都要跟空格适用。这个需要
字体、颜色、居中、强制换页等
Markdown是一种可以使用普通文本编辑器编写的标记语言,本身是不支持修改字体、字号与颜色等功能的,但是可以通过类似HTML的标记语法,使普通文本内容具有一定的格式。简单来说就是内嵌HTML,直接举例子吧:
<font size="6" color=red face="楷体">内容</font>
然后,你就会看到如下内容:
<font size="6" color=red face="楷体">内容</font>
额……失手了……原因是简书还不支持,别的平台还好吧,我在VisualStudioCode上可以完美使用_
文字居中的语法:<center>“需要居中从文字”</center>。
强制换页,只需要在想换页的地方输入这个:
<div STYLE="page-break-after:always;">
</div>
注释方法
程序员嘛,一定要有注释的。
[//]: # ()
还可以这样:
[//]: <> ()
也可以这样:
[comment]: <> ()
括号里面的内容会被注释掉了,最推荐第一种,平台适应性强。
补充一种:
"<" +"!" + "--" 注释内容 + "--" + ">"