markdown的学习和.md文件使用

Markdown

Table of Contents

标准 Markdown

GitLab Flavored Markdown

Wiki 独有的 Markdown

参考文献

标准 Markdown

标题

# H1
## H2
### H3
#### H4
##### H5
###### H6

另外, 对于 H1 和 H2, 可以使用下划线风格 (实际是 = 和 -):

Alt-H1
======

Alt-H2
------

H1

H2

H3

H4

H5
H6

另外, 对于 H1 和 H2, 可以使用下划线风格 (实际是 = 和 -):

Alt-H1

Alt-H2

标题的 ID 和 链接

所有 Markdown 渲染的标题自动获得 ID, 除了注释里面的.

当鼠标悬浮在标题上时, 可以看见这个标题的链接, 方便使用.

ID 由标题内容生成, 规则如下:

  1. 所有文本转化为小写
  2. 所有非单词文本被移除 (例如标点 / HTML)
  3. 所有空格转化为连字符 -
  4. 两个以上连续的连字符变为一个
  5. 如果已经有相同 ID 的标题, 会在 ID 结尾附加唯一的增量数字, 从1开始.

例如:

# This header has spaces in it
## This header has a :thumbsup: in it
# This header has Unicode in it: 한글
## This header has spaces in it
### This header has spaces in it

会产生如下的链接 ID:

  1. this-header-has-spaces-in-it
  2. this-header-has-a-in-it
  3. this-header-has-unicode-in-it-한글
  4. this-header-has-spaces-in-it
  5. this-header-has-spaces-in-it-1

注意, Emoji 表情的处理在标题 ID 生成之前, 所以 Emoji 被转化为图片, 并从 ID 中去除.

强调

强调, 即斜体字, 使用 *星号* 或 _下划线_.

重点强调, 即粗体字, 使用 **星号** 或 __下划线__.

可以组合使用 **星号和_下划线_**.

删除线, 使用两个波浪号. ~~删除.~~

强调, 即斜体字, 使用 星号下划线.

重点强调, 即粗体字, 使用 星号下划线.

可以组合使用 星号和下划线.

删除线, 使用两个波浪号. 删除.

列表

1. 第一行
2. 另一行
  * 没有行号的子列表.
1. 实际上数字是多少没有关系, 只要是数字即可
  1. 有行号的子列表
4. 还是另一行.

* 没有行号的列表可以使用星号
- 或者减号
+ 或者加号
  1. 第一行
  2. 另一行
  • 没有行号的子列表.
  1. 实际上数字是多少没有关系, 只要是数字即可
  2. 有行号的子列表
  3. 还是另一行.
  • 没有行号的列表可以使用星号
  • 或者减号
  • 或者加号

如果一个列表包含多个段落, 每个段落需要有4个空格缩进

1.  第一行

   第一行的第二段.
2.  另一行
  1. 第一行

    第一行的第二段.

  2. 另一行

如果第二段不是缩进4个空格, 则第二行会被错误的标记成 1.

1.  第一行

    第一行的第二段.
2.  另一行
  1. 第一行

第一行的第二段.

  1. 另一行

链接

有两种方式创建链接: 行内和引用.

[这是一个行内链接](https://www.we.com)

[这是一个引用链接][任意的大小写无关的引用文字]

[这是一个链接到仓库文件的相对引用](LICENSE)

[可以使用数字作为引用格式的链接][1]

或留空第二个括号, 使用 [链接文字本身][]

插入一些文本, 以证明引用链接可以在后面.

[任意的大小写无关的引用文字]: https://www.mozilla.org
[1]: http://slashdot.org
[链接文字本身]: https://www.reddit.com

这是一个行内链接

这是一个引用链接

这是一个链接到仓库文件的相对引用

可以使用数字作为引用格式的链接

或留空第二个括号, 使用 链接文字本身

插入一些文本, 以证明引用链接可以在后面.

注意

相对链接不允许项目文件和 wiki 页面交叉引用. 因为在 GitLab 里面, wiki 是一个独立的 git 仓库. 例如:

[这是一个引用格式的链接](style)

会链接到 wikis/style (因为是在 wiki 的 markdown 文件里).

图片

这是 logo:

行内样式:
[图片上传失败...(image-3e42d1-1590569803675)]

引用样式:
![备用文字1][logo]

[logo]: img/markdown_logo.png

这是 logo:

行内样式:
[图片上传失败...(image-103008-1590569803675)]

引用样式:


块引用

> 块引用在邮件里很方便的模拟回复文本.
> 这一行在同一块内.

这一行引用中断.

> 这段文字非常的长, 超过了一行的长度, 产生了换行. 但它还是会被正确的引用. 现在继续在这一段写文字, 保证每个人看到这一段时它都换行了. 可以在引用中*加入* **Markdown**.

块引用在邮件里很方便的模拟回复文本.
这一行在同一块内.

这一行引用中断.

这段文字非常的长, 超过了一行的长度, 产生了换行. 但它还是会被正确的引用. 现在继续在这一段写文字, 保证每个人看到这一段时它都换行了. 可以在引用中加入 Markdown.

行内 HTML

可以在 Markdown 文件里面写 HTML , 通常情况下会正常显示.

参考文档 HTML::Pipeline's SanitizationFilter 类中, 可以使用的 HTML 标签和属性. 除了默认的 SanitizationFilter 列表, GitLab 允许使用 span 元素.

<dl>
  <dt>定义列表</dt>
  <dd>偶尔会使用.</dd>

  <dt>Markdown 在 HTML 里</dt>
  <dd> *不会* **正常** 显示. 使用 HTML <em>标签</em>.</dd>
</dl>

<dl>
<dt>定义列表</dt>
<dd>偶尔会使用.</dd>

<dt>Markdown 在 HTML 里</dt>
<dd> 不会 正常 显示. 使用 HTML <em>标签</em>.</dd>
</dl>

水平线

三个或以上

---

连字符

***

星号

___

下划线

三个或以上


连字符


星号


下划线

换行符

推荐多尝试 -- 敲 <Enter> 一次, 然后再敲一次, 看有什么结果.

一些例子:

开始的一行.

这一行与上一行之间有两个回车, 所以它是*单独的一段*.

这一行也是单独的一段, 但是...
这一行之前只有一个回车, 所以是*同一段*的另一行.

这一行也是单独的一段, 而且...  
这一行另起一行, 因为之前行末尾有两个空格.

开始的一行.

这一行与上一行之间有两个回车, 所以它是单独的一段.

这一行也是单独的一段, 但是...
这一行之前只有一个回车, 所以是同一段的另一行.

这一行也是单独的一段, 而且...
这一行另起一行, 因为之前行末尾有两个空格.

表格

表格不是核心的 Markdown 语义, 但它是 GFM 的, 这里 Markdown 支持表格.

| header 1 | header 2 |
| -------- | -------- |
| cell 1   | cell 2   |
| cell 3   | cell 4   |

上面代码会有如下输出:

header 1 header 2
cell 1 cell 2
cell 3 cell 4

注意

表格头和表格体中间的横线, 每一列至少需要有三个连字符.

通过添加冒号, 可以设置那一列的文本对其:

| 左对齐 |中间对齐 | 右对齐 | 左对齐 |中间对齐 | 右对齐 |
| :----------- | :------: | ------------: | :----------- | :------: | ------------: |
| Cell 1       | Cell 2   | Cell 3        | Cell 4       | Cell 5   | Cell 6        |
| Cell 7       | Cell 8   | Cell 9        | Cell 10      | Cell 11  | Cell 12       |
左对齐 中间对齐 右对齐 左对齐 中间对齐 右对齐
Cell 1 Cell 2 Cell 3 Cell 4 Cell 5 Cell 6
Cell 7 Cell 8 Cell 9 Cell 10 Cell 11 Cell 12

GitLab Flavored Markdown (GFM)

注意:
不是所有的 GitLab 的 Markdown 扩展在网站上都可用.

为了最好的效果, 请参考 GitLab 渲染的: markdown.md

GitLab 使用 Redcarpet Ruby library 来处理 Markdown.

GitLab 使用 "GitLab Flavored Markdown" (GFM). 它在一些方面扩展了标准的 Markdown, 并添加非常有用的功能. 它受到 GitHub Flavored Markdown 启发.

可以在以下区域使用 GFM:

  • comments
  • issues
  • merge requests
  • milestones
  • snippets (the snippet must be named with a .md extension)
  • wiki 页面
  • 仓库里的 markdown 文档

也可以在 GitLab 中使用其它富文本文件. 可能需要安装依赖. 参考github-markup gem readme .

换行

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#newlines

GFM 遵循 markdown 规则 paragraphs and line breaks are handled.

一个段落是一个或多个连续的文本行, 段与段之间由一个或多个空行分割. 换行符, 或软回车, 是行末有两个或更多空格:

Roses are red  [加两个或更多空格]
Violets are blue

Sugar is sweet

Roses are red
Violets are blue

Sugar is sweet

单词中多个下划线

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#multiple-underscores-in-words

没有理由仅仅将一个单词的部分内容作为斜体. 尤其在处理代码和名字时, 经常出现多个下划线. 因此 GFM 忽略单词中的多个下划线:

perform_complicated_task

do_this_and_do_that_and_another_thing

perform_complicated_task

do_this_and_do_that_and_another_thing

URL 自动链接

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#url-auto-linking

GFM 几乎会给所有 URL 自动加入超链接:

* https://www.google.com
* https://google.com/
* ftp://ftp.us.debian.org/debian/
* smb://foo/bar/baz
* irc://irc.freenode.net/gitlab
* http://localhost:3000

代码和语法高亮

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#code-and-syntax-highlighting

GitLab 使用 Rouge Ruby library 来语法高亮. 支持的语言列表请访问 Rouge 网站.

代码块用 <code>```</code> 包围, 或者使用4个空格的缩进. 只有前一种支持语法高亮

行内 `code` 用  `` ` ``.

行内 code`.

举例:

```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```

```python
def function():
    #indenting works just fine in the fenced code block
    s = "Python syntax highlighting"
    print s
```

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

```
No language indicated, so no syntax highlighting.
s = "There is no highlighting for this."
But let's throw in a <b>tag</b>.
```

生成:

var s = "JavaScript syntax highlighting";
alert(s);
def function():
    #indenting works just fine in the fenced code block
    s = "Python syntax highlighting"
    print s
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
No language indicated, so no syntax highlighting.
s = "There is no highlighting for this."
But let's throw in a <b>tag</b>.

行内 Diff

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#inline-diff

使用行内 diff 标签, 可以显示 {+ additions +} 或 [- deletions -].

可以使用方括号或花括号, 例如 [+ additions +] 或 {- deletions -}.

然而不可以混合使用, 例如:

  • {+ additions +]
  • [+ additions +}
  • {- deletions -]
  • [- deletions -}

Emoji

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#emoji

有时想要像 :monkey: 一样胡闹, 将 :star2: 放入 :speech_balloon:. 没问题:

:zap: 可以在支持 GFM 的任何地方使用 emoji. :v:

可以用来指出一个  :bug: 或警告 :speak_no_evil: 补丁. 如果有人优化了你  :snail: 一样的代码, 发给他们 :birthday: 以示感谢. 人们会 :heart: 你.

如果你第一次接触这些, 不要 :fearful:. 加入 :family: 很容易. 只需要看一下支持的代码 .

参考 [Emoji Cheat Sheet](http://emoji.codes) 以获取所有支持的 emoji 代码. :thumbsup:

有时想要像 :monkey: 一样胡闹, 将 :star2: 放入 :speech_balloon:. 没问题:

:zap: 可以在支持 GFM 的任何地方使用 emoji. :v:

可以用来指出一个 :bug: 或警告 :speak_no_evil: 补丁. 如果有人优化了你 :snail: 一样的代码, 发给他们 :birthday: 以示感谢. 人们会 :heart: 你.

如果你第一次接触这些, 不要 :fearful:. 加入 :family: 很容易. 只需要看一下支持的代码 .

参考 Emoji Cheat Sheet 以获取所有支持的 emoji 代码. :thumbsup:

特定的 GitLab 引用

GFM 可以识别特殊的引用.

可以很方便的引用项目中的 issue, commit, member 或整个 team.

GFM 会将其转换为指向引用的链接, 方便跳转.

GFM 支持以下符号:

输入 引用
@user_name 特定用户
@group_name 特定组
@all 整个 team
#123 issue
!123 merge request
$123 snippet
~123 label ID
~bug 单个词语 label
~"feature request" 多个词语 label
%123 milestone ID
%v1.23 单个词语 milestone
%"release candidate" 多个词语 milestone
9ba12248 特定的 commit
9ba12248...b19a04f5 commit 范围
[README](doc/README) 仓库文件引用

GFM 也可以实现一定的跨项目引用:

输入 引用
namespace/project#123 issue
namespace/project!123 merge request
namespace/project%123 milestone
namespace/project$123 snippet
namespace/project@9ba12248 特定的 commit
namespace/project@9ba12248...b19a04f5 commit 范围
namespace/project~"Some label" 指定 label 的 issue

任务列表

如果这个没有正确渲染, 参考 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#task-lists

可以添加 issue, merge request 和 comment 的任务列表. 创建任务列表, 需要添加特定格式的 Markdown 列表:

- [x] Completed task
- [ ] Incomplete task
    - [ ] Sub-task 1
    - [x] Sub-task 2
    - [ ] Sub-task 3
  • Completed task
  • Incomplete task
    • Sub-task 1
    • Sub-task 2
    • Sub-task 3

任务列表不能在 title 里面创建, 只能在文章里.

Wiki 独有的 Markdown

以下样例显示 wiki 里面的链接行为.

Wiki - 直接网页链接

包含页面缩略名的链接会指向这个页面, 在 wiki 的最上一层.

以下超链接会链接到 wiki 根目录的 documentation 页面:

[Link to Documentation](documentation)

Wiki - 直接文件链接

带有文件名的链接指向那个文件, 相对于当前页面.

如果超链接在 <your_wiki>/documentation/related 页面, 会链接到 <your_wiki>/documentation/file.md 文件:

[Link to File](file.md)

Wiki - 层级链接

链接可以使用相对当前页面的结构 ./<page>, ../<page>, 等等.

  • 如果超链接在 <your_wiki>/documentation/main, 它会链接到 <your_wiki>/documentation/related:

    [Link to Related Page](./related)
    
  • 如果超链接在 <your_wiki>/documentation/related/content, 它会链接到 <your_wiki>/documentation/main:

    [Link to Related Page](../main)
    
  • 如果超链接在 <your_wiki>/documentation/main, 它会链接到 <your_wiki>/documentation/related.md:

    [Link to Related Page](./related.md)
    
  • 如果超链接在 <your_wiki>/documentation/related/content, 它会链接到 <your_wiki>/documentation/main.md:

    [Link to Related Page](../main.md)
    

Wiki - 根链接

/ 开始的链接, 相对于 wiki 的根目录.

  • 这个链接到 <wiki_root>/documentation:

    [Link to Related Page](/documentation)
    
  • 这个链接到 <wiki_root>/miscellaneous.md:

    [Link to Related Page](/miscellaneous.md)
    

参考文献

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353