markdown学习笔记

记得上大学时,blog还很火,我也有个新浪的blog,经常写文章,多数跟感情生活有关,后来由于某些原因把所有文章删除了,也关闭了blog。
最近想建个blog,一开始是想用nodejs自己搭,但nodejs我也还在学习中,何况也没文章。所以选了hexo这个blog框架,先写些文章,等一切成熟了再搭属于自己的blog。接触hexo,也首次接触了markdown,以前一直不知道文件后缀.md是什么东西,作为一个web开发程序猿,好像说不过去,不过人精力有限也不能面面俱到嘛,何况我也只是个菜鸟。好吧,一切从学习markdown开始。

什么是markdown?

首先,什么是markdown?它是一种轻量级的标记语言,是一种将文本转换成html的web写作工具,提供了易于读写的文本标记格式,它的目标是适用于网络的书写语言。

为什么使用markdown?

markdown的理念是让文档具有更高的可读性、易写、易于修改,区别于html使用标签和格式化结构来描述文档。但Markdown 不是想要取代 HTML,HTML 是一种发布的格式,Markdown 是一种书写的格式。

兼容html

Markdown 的格式语法只涵盖纯文本可以涵盖的范围。不在 Markdown涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。

html区块元素,如divtableprep等标签,必须在前后加上空行与其它内容区隔开,还要求它们的开始标签与结尾标签不能用制表符或空格来缩进。且在 HTML 区块标签间的 Markdown 格式语法将不会被处理。

HTML 的区段(行内)标签如span可以在 Markdown 的段落、列表或是标题里随意使用,Markdown 语法在 HTML 区段标签间是有效的。

markdown语法

区块元素

  • 段落和换行

    段落是由一个或多个连续的文本行(允许段落内的强迫换行,即插入换行符,不会装换成<br />)组成,它的前后要有一个以上的空行。如果想产生<br />,先写两个以上空格再回车。

  • 标题

    支持两种写法,第一种是在标题下加任意个‘=’(H1)或‘-’(H2);第二种在行首使用1~6个‘#’表示H1~H2

  • 区块引用 Blockquotes

    在每行行首加‘>’,或者在整个段落第一行行首加‘>’;允许嵌套,以数量区分层级,引用区块中也可以使用markdown语法。有层级关系时,加一行首为‘>’的空行返回上一级,如:

    >第一层引用
    >
    >>嵌套引用
    >
    >返回第一层
    
    新段落
    >另一个引用     
    
  • 列表

    无序列表使用‘*’、‘+’、‘-’,有序列表使用数字加英文句号(记得在符号加空格或tab),多行可以使用缩进。如果列表中有引用>就需要缩进;如果要放代码区块的话,该区块就需要缩进两次(8空格或2tab);如果有多个段落,每个段落必须缩进4个空格或1tab;如果出现数字-句号-空格,则在句号前加’\‘;列表嵌套使用缩进表示层级;

  • 代码块

    使用4个空格或1个tab,就会用<pre><code>包裹,直到没有缩进的行表示代码块结束。

  • 分割线

    使用三个以上’*‘、’-‘、’_‘建立分割线,行内无其他字符。

区段元素

  • 链接

    使用[链接文字]后面紧跟(链接地址 “title”)[中国农业银行](http://www.abchina.com "95599")或使用相对地址[关于我](/about/)。也可以方括号后紧跟第二个方括号表示参考式链接[中国农业银行][abchina],接着在文件任意处定义链接内容[abchina]:http://www.abchina.com"95599"。使用尖括号可标记自动链接,<http://www.abchina.com>会转换成<a href="http://www.abchina.com">http://www.abchina.com</a>

  • 强调
    使用星 * 或 下划线_ 表示强调,会被<em>包裹,使用两个 *、_ 会被<strong>包裹;两边加空白表示当普通符号使用。

  • 行内代码
    用反斜杆 ` 包裹代码标记一段行内代码

  • 图片
    在链接前加叹号 ! ,![Alt text](/path/to/img.jpg "Optional title")