Markdown语法示例(转载)

Posted by Disenone on March 13, 2014

以下内容转自:Markdown语法示例


什么是Markdown

Markdown是一个将文本转化为HTML的工具。简单来说,Markdown是一个兼顾可读性与易用性的轻量级标记体系。Markdown并不追求大而全,它只关心HTML里最常用的几个标记,对于一些不常用的标记它允许直接将HTML标记插入文本。


标题

Markdown提供了两种方式(Setext和Atx)来显示标题。

语法:

Setext方式
标题1
=================

标题2
-----------------

Atx方式
# 标题1
## 标题2
###### 标题6

效果:

Setext方式
标题1 =================

标题2

Atx方式

标题1

标题2

标题6

换行

在文字的末尾使用两个或两个以上的空格来表示换行。


引用

行首使用>加上一个空格表示引用段落,内部可以嵌套多个引用。

语法:

> 这是一个引用,
> 这里木有换行,   
> 在这里换行了。
> > 内部嵌套

效果:

这是一个引用, 这里木有换行,
在这里换行了。

内部嵌套


列表

__无序列表__使用*+-后面加上空格来表示。

语法:

* Item 1
* Item 2
* Item 3

+ Item 1
+ Item 2
+ Item 3

- Item 1
- Item 2
- Item 3

效果:

  • Item 1
  • Item 2
  • Item 3

  • Item 1
  • Item 2
  • Item 3

  • Item 1
  • Item 2
  • Item 3

__有序列表__使用数字加英文句号加空格表示。

语法:

1. Item 1
2. Item 2
3. Item 3

效果:

  1. Item 1
  2. Item 2
  3. Item 3

代码区域

__行内代码__使用反斜杠`表示。
__代码段落__则是在每行文字前加4个空格或者1个缩进符表示。

语法:

Bash中可以使用echo来进行输出。
	$ echo 'Something'
	$ echo -e '\tSomething\n'

效果:

Bash中可以使用echo来进行输出。

$ echo 'Something'
$ echo -e '\tSomething\n'

也有更具体的定义代码语法

{% highlight cpp linenos %}
your code here
{% endhighlight  %}

例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifdef _MSC_VER

#include <stdlib.h>

#if _MSC_VER >= 1900
/* pyconfig.h uses this function in the _Py_BEGIN_SUPPRESS_IPH/_Py_END_SUPPRESS_IPH
 * macros. It does not need to be defined when building using MSVC
 * earlier than 14.0 (_MSC_VER == 1900).
 */

static void __cdecl _silent_invalid_parameter_handler(
    wchar_t const* expression,
    wchar_t const* function,
    wchar_t const* file,
    unsigned int line,
	uintptr_t pReserved) 
{}

_invalid_parameter_handler _Py_silent_invalid_parameter_handler = _silent_invalid_parameter_handler;

#endif

#endif

强调

Markdown使用\*\_表示强调。

语法:

单星号 = *斜体*
单下划线 = _斜体_
双星号 = **加粗**
双下划线 = __加粗__

效果:

单星号 = 斜体
单下划线 = 斜体
双星号 = 加粗
双下划线 = 加粗
~~ = 在文字上添加删除线


链接

Markdown支持两种风格的链接:InlineReference

语法:

Inline:以中括号标记显示的链接文本,后面紧跟用小括号包围的链接。如果链接有title属性,则在链接中使用空格“title属性”
Reference:一般应用于多个不同位置使用相同链接。通常分为两个部分,调用部分为[链接文本][ref];定义部分可以出现在文本中的其他位置,格式为[ref]: http://some/link/address (可选的标题)
注:ref中不区分大小写。

这是一个Inline[示例](http://equation85.github.com "可选的title")。
这是一个Reference[示例][ref]。
[ref]: http://equation85.github.com

效果:

这是一个Inline示例
这是一个Reference[示例][ref]。 [ref]: http://equation85.github.com


图片

图片的使用方法基本上和链接类似,只是在中括号前加叹号
注:Markdown不能设置图片大小,如果必须设置则应使用HTML标记<img>。

语法:

Inline示例:![替代文本](/assets/post_assets/2014-3-13-markdown_syntax/jian.jpg "markdown")
Reference示例:![替代文本][pic]
[pic]: /assets/images/jian.jpg "reference"
HTML示例:<img src="/assets/post_assets/2014-3-13-markdown_syntax/jian.jpg" alt="替代文本" title="html" width="200" />

效果:

替代文本

jian.jpg

替代文本


其他

自动链接

使用尖括号,可以为输入的URL或者邮箱自动创建链接。如test@domain.com

分隔线

在一行中使用三个或三个以上的*-_可以添加分隔线,其中可以有空白,但是不能有其他字符。

转义字符

Markdown中的转义字符为\,可以转义的有:

  • \\ 反斜杠
  • \` 反引号
  • \* 星号
  • \_ 下划线
  • \{\} 大括号
  • \[\] 中括号
  • \(\) 小括号
  • \# 井号
  • \+ 加号
  • \- 减号
  • \. 英文句号
  • \! 感叹号

结语

Markdown语法很大程度上减少了编辑的成本,但是在写作这篇文章的时候也发现某些标记对中文的支持似乎并不完美,虽然这些缺陷可以通过直接插入HTML代码解决(但这么做一点都不漂亮)。总的来说,能够在离线状态下使用命令行模式进行写作还是很爽的,相比在线写作模式精力可以更专注。