2019独角兽企业重金招聘Python工程师标准>>>

1. 标题

Markdown支持两种标题标记语法,我个人常用的是 # 井号标记,使用很简单,在文字前添加 1-6个# ,分别代表1-6级标题。

简洁写法

只在标题开头写标签,以换行为标记语法的结束:

  # h1 //井号标记与标题需要一个以上的空格或者一个水平制表符## h2### h3#### h4##### h5###### h6

显示的写出闭合的标记

闭合的 # 井号标记数量不一定需要和起始相同,起始的井号数量已经决定了标题的级别,闭合标记可以明确标题结束位置;通常标题几乎都是独立成行,闭合写法实际使用很少:

  # h1 # //井号标记与标题需要一个以上的空格或者一个水平制表符## h2 ##### h3 ####### h4 ######### h5 ########### h6 ######

备注:另外还有一种Markdown标题标记语法,有兴趣可以自行查找,语法书写并不方便,很少用,所以我觉得没必要在这里列出。

2. 首行缩进、换行及段落

首行缩进

由于 Markdown 语法是老外发明的,他们主要考虑的语言体是英文,英语是没有严格的首行缩进,字符占位也和汉语不一样,Markdown 对中文的首行缩进并不太友好,常用这两种方法解决这个问题:

  • 把输入法由半角改为全角,两次空格之后就能够有两个汉字的缩进,不过这样做 Markdown 语法转换器有些兼容性并不好;
  • 在段落开头的地方,使用特殊占位符,然后紧跟着输入文本即可,占位符所占空白大小是不一样的,一般汉语用全角,英语用半角:
 或  //半角
 或  //全角
 或  //普通空格

换行

换行直接敲回车,在有些 Markdown 语法转换器里是不会换行的,解决办法是换行后敲至少两个空格后再回车换行;这个方法其实也只是解决大部分 Markdown 语法转换器的问题,我记得在 Gitlab 在某个版本的时候,这种方法就是不行的;如果遇到这个情况,终极解决办法就是在要换行的地方直接指明写上: <br/>

段落

段落就是连续行上的文本, 一个或多个还行划分不同的段落,通常一个换行或两个换行为一个段落。

3. 块引用

  • Markdown 使用 > 标记表示块引用,以换行结束块引用:
> 这是第一个块引用!> 这是第二个块引用!和上一个块引用有换行了
  • 块引用可以包含其他 Markdown 标记, 包括标题、列表和代码块等:
> 包含其他 Markdown 标记的块引用
>
> 1. 列表1
> 2. 列表2
  • 块引用可以嵌套,即块引用中包含块引用, 根据层次加上不同数量的>标记即可:
> 一级
> > 二级
> > > 三级

4. 列表

有序列表

使用 "数字 + . 句号标记" 表示有序列表:

1.  列表一 //标记后与列表文本应有一个以上的空格或者一个水平制表符
2.  列表二
3.  列表三
等价于:
3.  列表一
2.  列表二
6.  列表三
等价于:
<ol>
<li>列表一</li>
<li>列表二</li>
<li>列表三</li>
</ol>

备注:如上第二个列表,使用错误的列表序号, 最终生成的列表仍然会以序号1开始;这个特性会导致在实际使用列表中遇上一个场景,在列表与列表之间插入其他的块级元素标记,标签序号上下就对不上号了,下面的列表又重新从1开始,这个问题在某些 Markdown 语法转换器不会出现,但就目前 Markdown 的语法定义来看,这个问题存在是正常的,解决方案见下面的列表使用的注意事项。

无序列表

Markdown 使用 *星号标记, + 加号标记, - 连字符标记,这三个标记都可以表示无序列表:

*   列表x //标记后与列表文本应有一个以上的空格或者一个水平制表符
*   列表y
*   列表z
等价于:
+   列表x
+   列表y
+   列表z
等价于:
-   列表x
-   列表y
-   列表z
等价于:
<ul>
<li>列表x</li>
<li>列表y</li>
<li>列表z</li>
</ul>

列表使用的注意事项

  • 如果有序列表项中包含 > 块引用标记,则块引用需要缩进,否则下一个列表序号和上一个就不衔接了:
1. 这是一个带引用的列表> 引用内容
2. 这是一个带引用的列表> 引用内容

效果:

  1. 这是一个带引用的列表

    引用内容

  2. 这是一个带引用的列表

    引用内容

  • 如果列表项中有代码块, 代码块需要双倍缩进8个空格或者两个水平制表符:
*   这是一个有代码块的列表<code>
  • 终极大招,有些有 Markdown 语法转换器,不管怎么小心还是很容易出现有序列表序号上下不衔接的情况,时候我们就干脆自己定义序号,不触动 Markdown 语法有序列表, 可以通过 \ 转意标记将点号转意,如下面这样的代码:
3\. 列表3
2\. 列表2
6\. 列表6

效果:
3. 列表3
2. 列表2
6. 列表6

5. 代码块

作为程序员写 Markdown 文档,引代码到文档是经常会用到的,代码块分为行内代码块和多行代码代码块。

行内代码块

使用 `` 标记表示行内代码块,代码块前后各使用一个标记,如下:

Java打印控制台日志通过代码 `System.out.println("Hello!");` 实现
等价于:
Java打印控制台日志通过代码<code>System.out.println("Hello!");</code>实现

效果: Java打印控制台日志通过代码 System.out.println("Hello!"); 实现

多行代码代码块

在要引入的代码每一行都缩进4个空格或者1个水平制表符,就可以表示代码块,不过我更喜欢用标签显得更美观一些,Markdown 使用``` ``` 标记表示多行代码块,代码块前后各使用三个标记,如下::

` ` `
public static void main(String[] args) {System.out.println("Hello!");
}
、、、
等价于:
<pre><code>
public static void main(String[] args) {System.out.println("Hello!");
}
</code><pre>

引入HTML原始码

代码块中, <> 会自动转成HTML实体 &lt;&lt; ,代码块标记可以直接引入HTML原始码,例如想在文档中引入一段html代码:

` ` `
<div class="footer">© 2016 ***
</div>
` ` `
等价于:
<pre><code>&lt;div class="footer"&gt;&amp;copy; 2004 Foo Corporation
&lt;/div&gt;
</code></pre>

6. 链接

Markdown 链接的标记语法有"内联式"和"引用式"两种形式,还有一种特殊的自动链接,通常我们程序员内联式使用较多,参考式语法一般用在学术论文上面。

内联式语法

[] 里写链接文字,() 里写链接地址, () 中的""中可以为链接指定title属性,title属性可加可不加(title属性的效果是鼠标悬停在链接上会出现指定的title文字),链接地址与链接title前有一个空格,如下:

欢迎点击[calmsnow的博客](https://my.oschina.net/calmsnow/)
欢迎点击[Atom编写Markdown](https://my.oschina.net/calmsnow/blog/2875493 "Atom编写Markdown")
等价于:
欢迎点击<a href="https://my.oschina.net/calmsnow/">calmsnow的博客</a>
欢迎点击<a href="https://my.oschina.net/calmsnow/blog/2875493" title="Atom编写Markdown">Atom编写Markdown</a>

引用式语法

![] 里写链接文字,紧跟着 : 链接标记,一个以上的空白符和水平制表符后是链接地址,链接地址后打一个空格,可以为链接指定title属性,title属性可加可不加(title属性的效果是鼠标悬停在链接上会出现指定的title文字),如下

我的文章[数据结构概述]:https://my.oschina.net/calmsnow/blog/733059
我的文章[Markdown简介]:https://my.oschina.net/calmsnow/blog/2875124 "Markdown简介"

自动链接

Markdown 支持一种 "自动" 创建 URL 地址链接的简短形式: 只需用 <> 尖括号包围 URL 地址即可:

<http://example.com/>
等价于:
<a href="http://example.com/">http://example.com/</a>

7. 锚点链接

在网页中,锚点就是网页内的链接跳转,Markdown的锚点链接也是一样的效果,实现跳转到本文档内部的某些位置; [] 里写锚点链接文字, (#) 里面写链接跳转到的字符

跳转到[大标题](#标题)

备注:有些Markdown语法转化器只支持在标题后插入锚点,其它地方无效

7. 图片引入

Markdown 图片引入和链接一样,有"内联式"和"引用式"两种形式,通常我们程序员内联式使用较多,参考式语法一般用在学术论文上面。

内联式语法

![] 里写图片的 alt 属性(图片Alt的意思是如果图片因为某些原因不能显示,就用定义的图片Alt文字来代替图片),() 里写图片地址, () 中的 "" 中可以为图片指定title属性,title属性可加可不加(title属性的效果是鼠标悬停在图片上会出现指定的title文字),图片地址与图片title前有一个空格,如下:

本地图片引入:
![](/path/mk.img)
远程图片引入:
![远程图片](https://oscimg.oschina.net/oscnet/25ab82.jpg "远程图片")

引用式语法

![] 里写图片的 alt 属性(图片Alt的意思是如果图片因为某些原因不能显示,就用定义的图片Alt文字来代替图片),紧跟着 : 标记,一个以上的空白符和水平制表符后是图片地址,图片地址后打一个空格,可以为图片指定title属性,title属性可加可不加(title属性的效果是鼠标悬停在图片上会出现指定的title文字),如下

本地图片引入:
![]: /path/mk.img
远程图片引入:
![远程图片]: https://oscimg.oschina.net/oscnet/25ab82.jpg "远程图片"

备注:Markdown 提供了图片引入的语法,但是没有指定图片尺寸的支持,如果需要指定图片尺寸, 可以直接使用 HTML 标签 <img>

8. 斜体、加粗、删除线、水平线

斜体

Markdown 用星号标记 * 或下划线标记 _ ,代表斜体,相当于用 HTML 标签 <em> 包裹,如下:

*斜体*
等价于:
_斜体_
等价于:
<em>斜体</em>

加粗

Markdown 用两个星号标记 ** 或两个下划线标记 __ ,代表加粗,相当于用 HTML 标签 <strong> 包裹,如下:

**粗体**
等价于:
<strong>double asterisks</strong>
三个星号标记加粗斜体:
***加粗斜体***
等价于:
<strong><em>加粗斜体</em></strong>

删除线

Markdown 用两个波浪号标记 ~~,代表删除线

~~删除线~~

水平线

一行中只有三个以上的号标记 *,或三个以上连字符标记 -,或三个以上下划线标记 _,则会在该位置生成一个水平线,并换行,星号和连字符之间的空格也是允许的,如下都是生成一条水平线:

* * *
***
*****
---
_ _ _

9. 反斜杠转义

Markdown 将很多字符作为标记,那么当在Markdown中想原样输出这些字符,除了用行内代码块的方式以外,还可以使用 \ 反斜杠转义 Markdown 语法标记符号使之成为字面量,比如:

\\
输出:\
\`   backtick
输出:`
\*
输出:*
\!
输出:!
......

10. 表格

Markdown 标记表格,对于简单表格,应该是比较方便的,通常对于用来写服务端接口文档,多层Json嵌套,需要展现出嵌套感的表格,使用 HTML 标签 <table> 会更方便清晰一些;

语法:第一行为表头,列于列之间用|竖线标记,第二行分隔表头和主体部分,列于列之间用-|标记,第三行开始每一行为一个表格行,列于列之间用|竖线标记;表格单元格默认为左对齐,在-右边加上:就右对齐。

简单方式写写法:
学号|姓名|分数
-|-|-
张三|男|99
李小妹|女|60
王五|男|85
等价于:
|学号|姓名|分数|
|-|-|-|
|张三|男|99|
|李小妹|女|60|
|王五|男|85|
为表格第二列指定方向:
帐号|备注
-|-:
calmsnow|超级活跃
平淡|潜水

11. 注脚

说明注脚最佳的例子就是学术论文,在需要添加注脚的文字后加上脚注名字,在文本的任意位置(一般在最后)添加脚注说明;Markdown 使用[^注脚名字]添加脚注:

用 Markdown[^1] 书写文档, 可以转换成 HTML[^2]、 PDF[^pdf]
[^1]:Markdown是一种纯文本标记语言
[^2]:HTML是一种标记语言
[^pdf]:就是pdf,我也不知道怎么描述它

备注:有些Markdown语法转换器注脚内容与注脚之间必须空一行,不然会失效。上面示例效果如下:<br> 用 Markdown^1 书写文档, 可以转换成 HTML^2 、 PDF^pdf

还有一些更复杂有趣的Markdown语法,以后有时间再研究了,很多不太常用,本文就简单的总结归纳常用的Markdown基础语法

转载于:https://my.oschina.net/calmsnow/blog/2876096

Markdown语法-基础相关推荐

  1. Typora markdown语法基础教程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 markdown语法大全 文章目录 markdown语法大全 一,markdown标题 二,markdown代码块 三,markdow ...

  2. 书写README的各种markdown语法

    README 该文件用来测试和展示书写README的各种markdown语法.GitHub的markdown语法在标准的markdown语法基础上做了扩充,称之为GitHub Flavored Mar ...

  3. Markdown语法-从基础到进阶

    时代在进步,越来越多的人和软件开始使用Markdown进行文字编辑,其编辑方便性让很多人爱不释手.但是,不可避免的问题是,在编辑的时候,经常会需要去google,毕竟,习惯了office的可视化操作符 ...

  4. Typora基础设置、MarkDown语法

    Typora基础设置.MarkDown语法 Typora基础设置 通用设置 可以设置启动Typora软件时,打开文件的方式.以下四种可供选择 打开一个新的文件? 重新打开上次使用的目录? 重新打开上次 ...

  5. MarkDown语法浅析:基础语法篇

    本篇学习笔记简述MarkDown基础语法.掌握了"MarkDown基本语法+简单HTML5标签"的综合运用,就可以把CSDN博文搞得美美哒✌ (本文获得CSDN质量评分[91]) ...

  6. Markdown语法参考-基础与高级用法

    Markdown 是一种轻量级标记语言,它允许人们"使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档".被广泛应用于博客,网页与技术文档中 为什 ...

  7. 学习使用Markdown最基础的语法(编辑器通用)

    1. 使用 # 使用 #作为标题标志,但是必须顶格使用,越少#越大,一般使用##作为小标题1234这样列出来. 语法格式: #标题 ##标题 ###标题 效果: 2. 使用 > 使用 > ...

  8. 学习使用Markdown最基础的语法(编辑器通用) 1

    1. 使用 # 使用 #作为标题标志,但是必须顶格使用,越少#越大,一般使用##作为小标题1234这样列出来. 语法格式: #标题 ##标题 ###标题 效果: 标题 标题 标题 2. 使用 > ...

  9. markdown编辑语法基础篇

    文章目录 欢迎使用markdown编辑语法 1.Markdown简介 1.1 markdown是什么? 1.2为何使用markdown 2.基本语法 2.1 快捷键 2.2代码块 2.3 分级标题 写 ...

最新文章

  1. Atitit. Attilax企业框架 AEF的发展里程总结
  2. mysql安装提示create_MySQL5.1安装时出现Cannot create windows service for mysql.error:0
  3. sap.m.SplitApp
  4. 两个简单多边形面积相等,那么其中一个能分割成有限多块多边形,经过平移和旋转,拼合成第二个多边形...
  5. ubuntu 16.4 安装postgreSQL,使C++链接到数据库
  6. zz 聊聊并发(一)
  7. Apollo进阶课程 ⑦ | 高精地图的采集与生产
  8. 腾讯视频手机app下载安装_腾讯视频怎么签到
  9. 斯坦福大学的 CS231n课程
  10. 遗传算法最简单的例子
  11. 国开文学英语赏析 2021春(2021年7月)
  12. SAP CO88 生产订单实际成本计算
  13. 12个最真实的人型机器人,肉眼几乎无法区分,你见过几个?【楚才国科】
  14. Visual Studio代码:高级用户指南
  15. 开学第一周(伪)学习总结
  16. 极客日报:腾讯回应“接入抖音平台”;苹果因搜查员工赔偿近3000万美元;新版Win11黑屏重新改回蓝屏
  17. HT1382时钟芯片代码
  18. 我的世界观(爱因斯坦)
  19. 【python数据可视化】成绩分析及可视化实例
  20. 如何卸载IDM(Internet Download Manager)

热门文章

  1. python pandas 独热编码
  2. flask 渲染 vue 打包后的dist文件(直接用后端渲染)
  3. windows10下 tensorflow2.0 gpu 安装
  4. Ubuntu16下安装kaldi(使用物理主机)
  5. oracle 清理定期备份文件,RAC RMAN定期备份及删除脚本
  6. es分布式结构原理是什么?
  7. matlab动力学方程,机器人动力学方程(二):拉格朗日法
  8. 计算机网络sdn,刘少伟:SDN重新定义网络
  9. mysql 导入数据 1215_12、mysql导入数据
  10. UIEdgeInsets 说明