<commit_before>title: Markdown学习笔记
date: 2015-12-07 17:03:01
categories: 日薪越亿
tags: markdown
---

## Markdown概述

### 宗旨
Markdown 是一种轻量级标记语言，创始人为约翰·格鲁伯（<NAME>）。它允许人们 `使用易读易写的纯文本格式编写文档，然后转换成有效的XHTML(或者HTML)文档`。

可读性，无论如何，都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布，并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响，包括 _Setext_、_atx_、_Textile_、_reStructuredText_、_Grutatext_ 和 _EtText_，而最大灵感来源其实是纯文本电子邮件的格式。

总之， Markdown 的语法全由一些符号所组成，这些符号经过精挑细选，其作用一目了然。比如：在文字两旁加上星号，看起来就像*强调*。Markdown 的列表看起来，嗯，就是列表。Markdown 的区块引用看起来就真的像是引用一段文字，就像你曾在电子邮件中见过的那样。

### 兼容HTML

Markdown 语法的目标是：成为一种适用于网络的书写语言。

Markdown 不是想要取代 HTML，甚至也没有要和它相近，它的语法种类很少，只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来， HTML 已经很容易写了。Markdown 的理念是，能让文档更容易读、写和随意改。HTML 是一种发布的格式，Markdown 是一种书写的格式。就这样，Markdown 的格式语法只涵盖纯文本可以涵盖的范围。

不在 Markdown 涵盖范围之内的标签，都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown；只要直接加标签就可以了。

要制约的只有一些 HTML 区块元素――比如 `<div>`、`<table>`、`<pre>`、`<p>` 等标签，必须在前后加上空行与其它内容区隔开，还要求它们的开始标签与结尾标签不能用制表符或空格来缩进。Markdown 的生成器有足够智能，不会在 HTML 区块标签外加上不必要的 `<p>` 标签。

例子如下，在 Markdown 文件里加上一段 HTML 表格：
```
这是一个普通段落。

<table>
    <tr>
        <td>Foo</td>
    </tr>
</table>

这是另一个普通段落。
```

请注意，在 HTML 区块标签间的 Markdown 格式语法将不会被处理。比如，你在 HTML 区块内使用 Markdown 样式的*强调*会没有效果。

HTML 的区段（行内）标签如 `<span>`、`<cite>`、`<del>` 可以在 Markdown 的段落、列表或是标题里随意使用。依照个人习惯，甚至可以不用 Markdown 格式，而直接采用 HTML 标签来格式化。举例说明：如果比较喜欢 HTML 的 `<a>` 或 `<img>` 标签，可以直接使用这些标签，而不用 Markdown 提供的链接或是图像标签语法。

和处在 HTML 区块标签间不同，Markdown 语法在 HTML 区段标签间是有效的。

## Markdown基本语法

### 代码区域

如果你只想高亮语句中的某个函数名或关键字，可以使用 <font color="red">\`function_name()\`</font>  实现

通常编辑器根据代码片段适配合适的高亮方法，但你也可以用 \`\`\` 包裹一段代码，并指定一种语言

支持的语言：`actionscript`, `apache`, `bash`, `clojure`, `cmake`, `coffeescript`, `cpp`, `cs`, `css`, `d`, `delphi`, `django`, `erlang`, `go`, `haskell`, `html`, `http`, `ini`, `java`, `javascript`, `json`, `lisp`, `lua`, `matlab`, `nginx`, `objectivec`, `perl`, `php`, `python`, `r`, `ruby`, `scala`, `smalltalk`, `sql`, `tex`, `vbscript`, `xml`

\`\`\` javascript
$(document).ready(function () {
    alert('hello world');
});
\`\`\`

也可以使用 4 空格缩进，再贴上代码，实现相同的的效果
<pre>
    def g(x):
        yield from range(x, 0, -1)
    yield from range(x)
</pre>

### 标题
Markdown提供了两种方式（Setext和Atx）来显示标题。  
例:
```
Setext方式
标题1
=================
标题2
-----------------

Atx方式
# 标题1
## 标题2
###### 标题6
```
### 换行
在文字的末尾使用两个或两个以上的空格来表示换行。

### 引用
行首使用`[大于号+空格]`表示引用段落，内部可以嵌套多个引用。

语法：
```
> 这是一个引用，<commit_msg>update note markdown ,add {% raw %} tag<commit_after>title: Markdown学习笔记
date: 2015-12-07 17:03:01
categories: 日薪越亿
tags: markdown
---

## Markdown概述

### 宗旨
Markdown 是一种轻量级标记语言，创始人为约翰·格鲁伯（<NAME>）。它允许人们 `使用易读易写的纯文本格式编写文档，然后转换成有效的XHTML(或者HTML)文档`。

可读性，无论如何，都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布，并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响，包括 _Setext_、_atx_、_Textile_、_reStructuredText_、_Grutatext_ 和 _EtText_，而最大灵感来源其实是纯文本电子邮件的格式。

总之， Markdown 的语法全由一些符号所组成，这些符号经过精挑细选，其作用一目了然。比如：在文字两旁加上星号，看起来就像*强调*。Markdown 的列表看起来，嗯，就是列表。Markdown 的区块引用看起来就真的像是引用一段文字，就像你曾在电子邮件中见过的那样。

### 兼容HTML

Markdown 语法的目标是：成为一种适用于网络的书写语言。

Markdown 不是想要取代 HTML，甚至也没有要和它相近，它的语法种类很少，只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来， HTML 已经很容易写了。Markdown 的理念是，能让文档更容易读、写和随意改。HTML 是一种发布的格式，Markdown 是一种书写的格式。就这样，Markdown 的格式语法只涵盖纯文本可以涵盖的范围。

不在 Markdown 涵盖范围之内的标签，都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown；只要直接加标签就可以了。

要制约的只有一些 HTML 区块元素――比如 `<div>`、`<table>`、`<pre>`、`<p>` 等标签，必须在前后加上空行与其它内容区隔开，还要求它们的开始标签与结尾标签不能用制表符或空格来缩进。Markdown 的生成器有足够智能，不会在 HTML 区块标签外加上不必要的 `<p>` 标签。

例子如下，在 Markdown 文件里加上一段 HTML 表格：
```
这是一个普通段落。

<table>
    <tr>
        <td>Foo</td>
    </tr>
</table>

这是另一个普通段落。
```

请注意，在 HTML 区块标签间的 Markdown 格式语法将不会被处理。比如，你在 HTML 区块内使用 Markdown 样式的*强调*会没有效果。

HTML 的区段（行内）标签如 `<span>`、`<cite>`、`<del>` 可以在 Markdown 的段落、列表或是标题里随意使用。依照个人习惯，甚至可以不用 Markdown 格式，而直接采用 HTML 标签来格式化。举例说明：如果比较喜欢 HTML 的 `<a>` 或 `<img>` 标签，可以直接使用这些标签，而不用 Markdown 提供的链接或是图像标签语法。

和处在 HTML 区块标签间不同，Markdown 语法在 HTML 区段标签间是有效的。

## Markdown基本语法

### 代码区域

如果你只想高亮语句中的某个函数名或关键字，可以使用 <font color="red">\`function_name()\`</font>  实现

通常编辑器根据代码片段适配合适的高亮方法，但你也可以用 \`\`\` 包裹一段代码，并指定一种语言

支持的语言：`actionscript`, `apache`, `bash`, `clojure`, `cmake`, `coffeescript`, `cpp`, `cs`, `css`, `d`, `delphi`, `django`, `erlang`, `go`, `haskell`, `html`, `http`, `ini`, `java`, `javascript`, `json`, `lisp`, `lua`, `matlab`, `nginx`, `objectivec`, `perl`, `php`, `python`, `r`, `ruby`, `scala`, `smalltalk`, `sql`, `tex`, `vbscript`, `xml`

	{% raw %}
	&#96`` javascript
	$(document).ready(function () {
	    alert('hello world');
	});
	&#96``
	{% endraw %}

[谢谢hexo漩涡的帮助](https://github.com/hexojs/hexo/issues/1636)!  
[详见hexo tag plugins](https://github.com/hexojs/site/blame/master/source/docs/tag-plugins.md#L135-L139)

也可以使用 4 空格缩进，再贴上代码，实现相同的的效果

<pre>
    def g(x):
        yield from range(x, 0, -1)
    yield from range(x)
</pre>

### 标题
Markdown提供了两种方式（Setext和Atx）来显示标题。  
例:
```
Setext方式
标题1
=================
标题2
-----------------

Atx方式
# 标题1
## 标题2
###### 标题6
```
### 换行
在文字的末尾使用两个或两个以上的空格来表示换行。

### 引用
行首使用`[大于号+空格]`表示引用段落，内部可以嵌套多个引用。

语法：
```
> 这是一个引用，
{'fraction_non_alphanumeric': 0.1815487949427104, 'fraction_numerical': 0.011457921770051362, 'mean_word_length': 6.412884333821376, 'pattern_counts': {'":': 0, '<': 45, '<?xml version=': 0, '>': 47, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7216709', 'n_tokens_mistral': 3462, 'n_tokens_neox': 3750, 'n_words': 388}