markdown.md 42,7 КБ
Newer Older
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
1
# GitLab Markdown
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
2

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
3
4
5
6
7
8
9
10
11
This markdown guide is **valid only for GitLab's internal markdown rendering system for entries and files**.
It is **not** valid for the [GitLab documentation website](https://docs.gitlab.com)
or [GitLab's main website](https://about.gitlab.com), as they both use
[Kramdown](https://kramdown.gettalong.org) as their markdown engine. The documentation
website uses an extended Kramdown gem, [GitLab Kramdown](https://gitlab.com/gitlab-org/gitlab_kramdown).
Consult the [GitLab Kramdown Guide](https://about.gitlab.com/handbook/product/technical-writing/markdown-guide/)
for a complete Kramdown reference.

NOTE: **Note:** We encourage you to view this document as [rendered by GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md).
Brett Walker's avatar
Brett Walker включено в состав коммита
12

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
13
## GitLab Flavored Markdown (GFM)
A. Felipe Cabargas Madrid's avatar
A. Felipe Cabargas Madrid включено в состав коммита
14

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
15
16
17
GitLab uses "GitLab Flavored Markdown" (GFM). It extends the [CommonMark specification](https://spec.commonmark.org/current/)
(which is based on standard Markdown) in several ways to add additional useful functionality.
It was inspired by [GitHub Flavored Markdown](https://help.github.com/articles/basic-writing-and-formatting-syntax/).
Thurston Stone's avatar
Thurston Stone включено в состав коммита
18

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
19
You can use GFM in the following areas:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
20

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
21
22
23
24
25
26
27
- Comments
- Issues
- Merge requests
- Milestones
- Snippets (the snippet must be named with a `.md` extension)
- Wiki pages
- Markdown documents inside repositories
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
28
- Epics **(ULTIMATE)**
Thurston Stone's avatar
Thurston Stone включено в состав коммита
29

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
30
31
32
You can also use other rich text files in GitLab. You might have to install a dependency
to do so. Please see the [`gitlab-markup` gem project](https://gitlab.com/gitlab-org/gitlab-markup)
for more information.
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
33

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
34
### Transition from Redcarpet to CommonMark
Brett Walker's avatar
Brett Walker включено в состав коммита
35

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
36
37
38
39
40
41
42
Since 11.1, GitLab uses the [CommonMark Ruby Library](https://github.com/gjtorikian/commonmarker)
for Markdown processing of all new issues, merge requests, comments, and other Markdown
content in the GitLab system. Since 11.3, wiki pages and Markdown files (`*.md`) in
repositories are also processed with CommonMark. As of 11.8, the [Redcarpet Ruby library](https://github.com/vmg/redcarpet)
has been removed and all issues and comments, including those from pre-11.1, are now processed
using the [CommonMark Ruby Library](https://github.com/gjtorikian/commonmarker).

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
43
The documentation website had its [markdown engine migrated from Redcarpet to Kramdown](https://gitlab.com/gitlab-org/gitlab-docs/merge_requests/108)
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
44
45
46
47
in October 2018.

You may have older issues, merge requests, or Markdown documents in your
repository that were written using some of the nuances of GitLab's RedCarpet version
Jan Provaznik's avatar
Jan Provaznik включено в состав коммита
48
of Markdown. Since CommonMark uses a slightly stricter syntax, these documents
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
49
may now display a little differently since we've transitioned to CommonMark.
Brett Walker's avatar
Brett Walker включено в состав коммита
50

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
51
52
It is usually quite easy to fix. For example, numbered lists with nested lists may
render incorrectly:
Brett Walker's avatar
Brett Walker включено в состав коммита
53
54
55
56
57
58
59

```markdown
1. Chocolate
  - dark
  - milk
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
60
61
Simply add a space to each nested item to align the `-` with the first character of
the top list item (`C` in this case):
Brett Walker's avatar
Brett Walker включено в состав коммита
62
63
64
65
66
67
68

```markdown
1. Chocolate
   - dark
   - milk
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
69
70
71
72
73
74
1. Chocolate
   - dark
   - milk

NOTE: **Note:** We will flag any significant differences between Redcarpet and CommonMark
  markdown in this document.
Brett Walker's avatar
Brett Walker включено в состав коммита
75

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
76
If you have a large volume of Markdown files, it can be tedious to determine
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
77
if they will display correctly or not. You can use the
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
78
[diff_redcarpet_cmark](https://gitlab.com/digitalmoksha/diff_redcarpet_cmark)
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
79
tool (not an officially supported product) to generate a list of files, and the
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
80
differences between how RedCarpet and CommonMark render the files. It can give
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
an indication if anything needs to be changed - often nothing will need
to change.

### GFM extends standard markdown

GitLab makes full use of the standard (CommonMark) formatting, but also includes additional
functionality useful for GitLab users.

It makes use of [new markdown features](#new-GFM-markdown-extensions),
not found in standard markdown:

- [Color "chips" written in HEX, RGB or HSL](#colors)
- [Diagrams and flowcharts using Mermaid](#diagrams-and-flowcharts-using-mermaid)
- [Emoji](#emoji)
- [Front matter](#front-matter)
- [Inline diffs](#inline-diff)
- [Math equations and symbols written in LaTeX](#math)
- [Special GitLab references](#special-gitlab-references)
- [Task Lists](#task-lists)
- [Wiki specific markdown](#wiki-specific-markdown)

It also has [extended markdown features](#standard-markdown-and-extensions-in-gitlab), without
changing how standard markdown is used:

| Standard markdown                     | Extended markdown in GitLab |
| ------------------------------------- | ------------------------- |
| [blockquotes](#blockquotes)           | [multiline blockquotes](#multiline-blockquote) |
| [code blocks](#code-spans-and-blocks) | [colored code and syntax highlighting](#colored-code-and-syntax-highlighting) |
| [emphasis](#emphasis)                 | [multiple underscores in words](#multiple-underscores-in-words-and-mid-word-emphasis)
| [headers](#headers)                   | [linkable Header IDs](#header-ids-and-links) |
| [images](#images)                     | [embedded videos](#videos) |
| [linebreaks](#line-breaks)            | [more linebreak control](#newlines) |
| [links](#links)                       | [automatically linking URLs](#url-auto-linking) |

## New GFM markdown extensions
Evan Read's avatar
Evan Read включено в состав коммита
116

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
117
### Colors
Thurston Stone's avatar
Thurston Stone включено в состав коммита
118

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
119
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#colors).
Thurston Stone's avatar
Thurston Stone включено в состав коммита
120

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
121
122
It is possible to have color written in HEX, RGB or HSL format rendered with a color
indicator.
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
123

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
124
Supported formats (named colors are not supported):
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
125

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
126
127
128
- HEX: `` `#RGB[A]` `` or `` `#RRGGBB[AA]` ``
- RGB: `` `RGB[A](R, G, B[, A])` ``
- HSL: `` `HSL[A](H, S, L[, A])` ``
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
129

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
130
Color written inside backticks will be followed by a color "chip":
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
131

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
132
```markdown
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
`#F00`  
`#F00A`  
`#FF0000`  
`#FF0000AA`  
`RGB(0,255,0)`  
`RGB(0%,100%,0%)`  
`RGBA(0,255,0,0.3)`  
`HSL(540,70%,50%)`  
`HSLA(540,70%,50%,0.3)`  
```

`#F00`  
`#F00A`  
`#FF0000`  
`#FF0000AA`  
`RGB(0,255,0)`  
`RGB(0%,100%,0%)`  
`RGBA(0,255,0,0.3)`  
`HSL(540,70%,50%)`  
`HSLA(540,70%,50%,0.3)`  
Thurston Stone's avatar
Thurston Stone включено в состав коммита
153

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
154
### Diagrams and flowcharts using Mermaid
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
155

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
156
157
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15107) in
GitLab 10.3.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
158

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
159
160
It is possible to generate diagrams and flowcharts from text using [Mermaid](https://mermaidjs.github.io/).
Visit the official page for more details.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
161

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
162
In order to generate a diagram or flowchart, you should write your text inside the `mermaid` block:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
163

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
164
165
166
167
168
169
170
171
172
~~~
```mermaid
graph TD;
  A-->B;
  A-->C;
  B-->D;
  C-->D;
```
~~~
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
173

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
174
175
176
177
178
179
180
```mermaid
graph TD;
  A-->B;
  A-->C;
  B-->D;
  C-->D;
```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
181

Stan Hu's avatar
Stan Hu включено в состав коммита
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
#### Subgraphs

Subgraphs can also be included:

~~~
```mermaid
graph TB

  SubGraph1 --> SubGraph1Flow
  subgraph "SubGraph 1 Flow"
  SubGraph1Flow(SubNode 1)
  SubGraph1Flow -- Choice1 --> DoChoice1
  SubGraph1Flow -- Choice2 --> DoChoice2
  end

  subgraph "Main Graph"
  Node1[Node 1] --> Node2[Node 2]
  Node2 --> SubGraph1[Jump to SubGraph1]
  SubGraph1 --> FinalThing[Final Thing]
end
```
~~~

```mermaid
graph TB

  SubGraph1 --> SubGraph1Flow
  subgraph "SubGraph 1 Flow"
  SubGraph1Flow(SubNode 1)
  SubGraph1Flow -- Choice1 --> DoChoice1
  SubGraph1Flow -- Choice2 --> DoChoice2
  end

  subgraph "Main Graph"
  Node1[Node 1] --> Node2[Node 2]
  Node2 --> SubGraph1[Jump to SubGraph1]
  SubGraph1 --> FinalThing[Final Thing]
end
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
222
### Emoji
Robert Speicher's avatar
Robert Speicher включено в состав коммита
223

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
224
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#emoji).
Robert Speicher's avatar
Robert Speicher включено в состав коммита
225

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
226
227
```md
Sometimes you want to :monkey: around a bit and add some :star2: to your :speech_balloon:. Well we have a gift for you:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
228

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
229
:zap: You can use emoji anywhere GFM is supported. :v:
Douwe Maan's avatar
Douwe Maan включено в состав коммита
230

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
231
You can use it to point out a :bug: or warn about :speak_no_evil: patches. And if someone improves your really :snail: code, send them some :birthday:. People will :heart: you for that.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
232

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
233
If you are new to this, don't be :fearful:. You can easily join the emoji :family:. All you need to do is to look up one of the supported codes.
Douwe Maan's avatar
Douwe Maan включено в состав коммита
234

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
235
Consult the [Emoji Cheat Sheet](https://www.emojicopy.com) for a list of all supported emoji codes. :thumbsup:
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
236
```
Douwe Maan's avatar
Douwe Maan включено в состав коммита
237

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
238
Sometimes you want to <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/monkey.png" width="20px" height="20px" style="display:inline;margin:0"> around a bit and add some <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/star2.png" width="20px" height="20px" style="display:inline;margin:0"> to your <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/speech_balloon.png" width="20px" height="20px" style="display:inline;margin:0">. Well we have a gift for you:
Douwe Maan's avatar
Douwe Maan включено в состав коммита
239

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
240
<img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/zap.png" width="20px" height="20px" style="display:inline;margin:0">You can use emoji anywhere GFM is supported. <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/v.png" width="20px" height="20px" style="display:inline;margin:0">
Douwe Maan's avatar
Douwe Maan включено в состав коммита
241

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
242
You can use it to point out a <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/bug.png" width="20px" height="20px" style="display:inline;margin:0"> or warn about <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/speak_no_evil.png" width="20px" height="20px" style="display:inline;margin:0"> patches. And if someone improves your really <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/snail.png" width="20px" height="20px" style="display:inline;margin:0"> code, send them some <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/birthday.png" width="20px" height="20px" style="display:inline;margin:0">. People will <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/heart.png" width="20px" height="20px" style="display:inline;margin:0"> you for that.
Douwe Maan's avatar
Douwe Maan включено в состав коммита
243

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
244
If you are new to this, don't be <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/fearful.png" width="20px" height="20px" style="display:inline;margin:0">. You can easily join the emoji <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/family.png" width="20px" height="20px" style="display:inline;margin:0">. All you need to do is to look up one of the supported codes.
Douwe Maan's avatar
Douwe Maan включено в состав коммита
245

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
246
Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/thumbsup.png" width="20px" height="20px" style="display:inline;margin:0">
Douwe Maan's avatar
Douwe Maan включено в состав коммита
247

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
248
249
> **Note:** The emoji example above uses hard-coded images for this documentation. The emoji,
when rendered within GitLab, may appear different depending on the OS and browser used.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
250

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
251
Most emoji are natively supported on macOS, Windows, iOS, Android and will fallback to image-based emoji where there is lack of support.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
252

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
253
254
255
NOTE: **Note:** On Linux, you can download [Noto Color Emoji](https://www.google.com/get/noto/help/emoji/)
to get full native emoji support. Ubuntu 18.04 (like many modern Linux distros) has
this font installed by default.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
256

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
257
### Front matter
Thurston Stone's avatar
Thurston Stone включено в состав коммита
258

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
259
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23331) in GitLab 11.6.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
260

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
261
262
263
Front matter is metadata included at the beginning of a markdown document, preceding
its content. This data can be used by static site generators such as [Jekyll](https://jekyllrb.com/docs/front-matter/),
[Hugo](https://gohugo.io/content-management/front-matter/), and many other applications.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
264

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
265
266
267
When you view a Markdown file rendered by GitLab, any front matter is displayed as-is,
in a box at the top of the document, before the rendered HTML content. To view an example,
you can toggle between the source and rendered version of a [GitLab documentation file](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/README.md).
Thurston Stone's avatar
Thurston Stone включено в состав коммита
268

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
269
270
271
In GitLab, front matter is only used in Markdown files and wiki pages, not the other
places where Markdown formatting is supported. It must be at the very top of the document,
and must be between delimiters, as explained below.
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
272

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
273
The following delimeters are supported:
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
274

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
275
- YAML (`---`):
Thurston Stone's avatar
Thurston Stone включено в состав коммита
276

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
277
278
279
280
281
282
283
  ~~~yaml
  ---
  title: About Front Matter
  example:
  language: yaml
  ---
  ~~~
Thurston Stone's avatar
Thurston Stone включено в состав коммита
284

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
285
- TOML (`+++`):
Thurston Stone's avatar
Thurston Stone включено в состав коммита
286

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
287
288
289
290
291
292
293
  ~~~toml
  +++
  title = "About Front Matter"
  [example]
  language = "toml"
  +++
  ~~~
Thurston Stone's avatar
Thurston Stone включено в состав коммита
294

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
295
- JSON (`;;;`):
Thurston Stone's avatar
Thurston Stone включено в состав коммита
296

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
297
298
299
300
301
302
303
304
305
306
  ~~~json
  ;;;
  {
    "title": "About Front Matter"
    "example": {
      "language": "json"
    }
  }
  ;;;
  ~~~
Thurston Stone's avatar
Thurston Stone включено в состав коммита
307

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
308
309
310
311
312
313
314
315
316
317
Other languages are supported by adding a specifier to any of the existing
delimiters. For example:

```php
---php
$title = "About Front Matter";
$example = array(
  'language' => "php",
);
---
Thurston Stone's avatar
Thurston Stone включено в состав коммита
318
319
```

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
320
### Inline diff
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
321

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
322
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#inline-diff).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
323

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
324
With inline diff tags you can display `{+ additions +}` or `[- deletions -]`.
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
325

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
326
The wrapping tags can be either curly braces or square brackets:
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
327

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
328
329
330
331
332
```markdown
- {+ addition 1 +}
- [+ addition 2 +]
- {- deletion 3 -}
- [- deletion 4 -]
Dimitrie Hoekstra's avatar
Dimitrie Hoekstra включено в состав коммита
333
334
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
335
336
337
338
- {+ addition 1 +}
- [+ addition 2 +]
- {- deletion 3 -}
- [- deletion 4 -]
Mark Lapierre's avatar
Mark Lapierre включено в состав коммита
339

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
340
---
Mark Lapierre's avatar
Mark Lapierre включено в состав коммита
341

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
342
However the wrapping tags cannot be mixed:
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
343

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
344
345
346
347
348
```markdown
- {+ addition +]
- [+ addition +}
- {- deletion -]
- [- deletion -}
Dimitrie Hoekstra's avatar
Dimitrie Hoekstra включено в состав коммита
349
```
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
350

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
351
### Math
Thurston Stone's avatar
Thurston Stone включено в состав коммита
352

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
353
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#math).
Thurston Stone's avatar
Thurston Stone включено в состав коммита
354

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
355
It is possible to have math written with LaTeX syntax rendered using [KaTeX](https://github.com/Khan/KaTeX).
Thurston Stone's avatar
Thurston Stone включено в состав коммита
356

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
357
358
359
Math written between dollar signs `$` will be rendered inline with the text. Math written
inside a [code block](#code-spans-and-blocks) with the language declared as `math`, will be rendered
on a separate line:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
360

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
361
362
~~~
This math is inline $`a^2+b^2=c^2`$.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
363

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
364
This is on a separate line
Alexander Popov's avatar
Alexander Popov включено в состав коммита
365

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
366
367
```math
a^2+b^2=c^2
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
368
```
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
369
~~~
Alexander Popov's avatar
Alexander Popov включено в состав коммита
370

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
371
This math is inline $`a^2+b^2=c^2`$.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
372

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
373
This is on a separate line
Thurston Stone's avatar
Thurston Stone включено в состав коммита
374

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
375
376
377
```math
a^2+b^2=c^2
```
Alexander Popov's avatar
Alexander Popov включено в состав коммита
378

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
379
_Be advised that KaTeX only supports a [subset](https://katex.org/docs/supported.html) of LaTeX._
Alexander Popov's avatar
Alexander Popov включено в состав коммита
380

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
381
382
NOTE: **Note:** This also works for the asciidoctor `:stem: latexmath`. For details see
the [asciidoctor user manual](http://asciidoctor.org/docs/user-manual/#activating-stem-support).
Alexander Popov's avatar
Alexander Popov включено в состав коммита
383

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
384
### Special GitLab references
Thurston Stone's avatar
Thurston Stone включено в состав коммита
385

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
386
387
388
GFM recognizes special GitLab related references. For example, you can easily reference
an issue, a commit, a team member or even the whole team within a project. GFM will turn
that reference into a link so you can navigate between them easily.
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
389

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
390
391
Additionally, GFM recognizes certain cross-project references, and also has a shorthand
version to reference other projects from the same namespace.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
392
393
394

GFM will recognize the following:

Evan Read's avatar
Evan Read включено в состав коммита
395
| references                      | input                      | cross-project reference                 | shortcut within same namespace |
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
396
397
398
399
400
401
402
403
| :------------------------------ | :------------------------- | :-------------------------------------- | :----------------------------- |
| specific user                   | `@user_name`               |                                         |                                |
| specific group                  | `@group_name`              |                                         |                                |
| entire team                     | `@all`                     |                                         |                                |
| project                         | `namespace/project>`       |                                         |                                |
| issue                           | ``#123``                   | `namespace/project#123`                 | `project#123`                  |
| merge request                   | `!123`                     | `namespace/project!123`                 | `project!123`                  |
| snippet                         | `$123`                     | `namespace/project$123`                 | `project$123`                  |
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
404
| epic **(ULTIMATE)**             | `&123`                     | `group1/subgroup&123`                   |                                |
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
405
406
407
408
409
410
411
412
413
414
| label by ID                     | `~123`                     | `namespace/project~123`                 | `project~123`                  |
| one-word label by name          | `~bug`                     | `namespace/project~bug`                 | `project~bug`                  |
| multi-word label by name        | `~"feature request"`       | `namespace/project~"feature request"`   | `project~"feature request"`    |
| project milestone by ID         | `%123`                     | `namespace/project%123`                 | `project%123`                  |
| one-word milestone by name      | `%v1.23`                   | `namespace/project%v1.23`               | `project%v1.23`                |
| multi-word milestone by name    | `%"release candidate"`     | `namespace/project%"release candidate"` | `project%"release candidate"`  |
| specific commit                 | `9ba12248`                 | `namespace/project@9ba12248`            | `project@9ba12248`             |
| commit range comparison         | `9ba12248...b19a04f5`      | `namespace/project@9ba12248...b19a04f5` | `project@9ba12248...b19a04f5`  |
| repository file references      | `[README](doc/README)`     |                                         |                                |
| repository file line references | `[README](doc/README#L13)` |                                         |                                |
Oswaldo Ferreira's avatar
Oswaldo Ferreira включено в состав коммита
415

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
416
### Task lists
Vinnie Okada's avatar
Vinnie Okada включено в состав коммита
417

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
418
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#task-lists).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
419

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
420
421
422
You can add task lists anywhere markdown is supported, but you can only "click" to
toggle the boxes if they are in issues, merge requests, or comments. In other places
you must edit the markdown manually to change the status by adding or removing the `x`.
Vinnie Okada's avatar
Vinnie Okada включено в состав коммита
423

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
424
425
426
427
To create a task list, add a specially-formatted Markdown list. You can use either
unordered or ordered lists:

```markdown
Robert Speicher's avatar
Robert Speicher включено в состав коммита
428
429
- [x] Completed task
- [ ] Incomplete task
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
430
431
432
  - [ ] Sub-task 1
  - [x] Sub-task 2
  - [ ] Sub-task 3
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
433

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
434
435
436
437
1. [x] Completed task
1. [ ] Incomplete task
   1. [ ] Sub-task 1
   1. [x] Sub-task 2
Vinnie Okada's avatar
Vinnie Okada включено в состав коммита
438
439
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
440
441
442
443
444
- [x] Completed task
- [ ] Incomplete task
  - [ ] Sub-task 1
  - [x] Sub-task 2
  - [ ] Sub-task 3
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
445

Jarka Kadlecova's avatar
Jarka Kadlecova включено в состав коммита
446
447
1. [x] Completed task
1. [ ] Incomplete task
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
448
449
   1. [ ] Sub-task 1
   1. [x] Sub-task 2
Jarka Kadlecova's avatar
Jarka Kadlecova включено в состав коммита
450

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
451
### Wiki-specific Markdown
Jarka Kadlecova's avatar
Jarka Kadlecova включено в состав коммита
452

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
453
The following examples show how links inside wikis behave.
Vinnie Okada's avatar
Vinnie Okada включено в состав коммита
454

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
455
#### Wiki - Direct page link
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
456

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
457
458
A link which just includes the slug for a page will point to that page,
_at the base level of the wiki_.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
459

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
460
This snippet would link to a `documentation` page at the root of your wiki:
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
461

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
462
463
464
```markdown
[Link to Documentation](documentation)
```
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
465

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
466
#### Wiki - Direct file link
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
467

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
468
Links with a file extension point to that file, _relative to the current page_.
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
469

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
470
471
If the snippet below was placed on a page at `<your_wiki>/documentation/related`,
it would link to `<your_wiki>/documentation/file.md`:
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
472

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
473
474
475
```markdown
[Link to File](file.md)
```
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
476

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
477
#### Wiki - Hierarchical link
Munken's avatar
Munken включено в состав коммита
478

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
479
480
A link can be constructed relative to the current wiki page using `./<page>`,
`../<page>`, etc.
Munken's avatar
Munken включено в состав коммита
481

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
482
483
If this snippet was placed on a page at `<your_wiki>/documentation/main`,
it would link to `<your_wiki>/documentation/related`:
Munken's avatar
Munken включено в состав коммита
484

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
485
486
487
```markdown
[Link to Related Page](./related)
```
Munken's avatar
Munken включено в состав коммита
488

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
489
490
If this snippet was placed on a page at `<your_wiki>/documentation/related/content`,
it would link to `<your_wiki>/documentation/main`:
Munken's avatar
Munken включено в состав коммита
491

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
492
493
494
```markdown
[Link to Related Page](../main)
```
Munken's avatar
Munken включено в состав коммита
495

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
496
497
If this snippet was placed on a page at `<your_wiki>/documentation/main`,
it would link to `<your_wiki>/documentation/related.md`:
Munken's avatar
Munken включено в состав коммита
498

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
499
500
501
```markdown
[Link to Related Page](./related.md)
```
Munken's avatar
Munken включено в состав коммита
502

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
503
504
If this snippet was placed on a page at `<your_wiki>/documentation/related/content`,
it would link to `<your_wiki>/documentation/main.md`:
Munken's avatar
Munken включено в состав коммита
505

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
506
507
508
```markdown
[Link to Related Page](../main.md)
```
Munken's avatar
Munken включено в состав коммита
509

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
510
#### Wiki - Root link
smit_tooned's avatar
smit_tooned включено в состав коммита
511

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
512
A link starting with a `/` is relative to the wiki root.
Munken's avatar
Munken включено в состав коммита
513

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
514
This snippet links to `<wiki_root>/documentation`:
Munken's avatar
Munken включено в состав коммита
515

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
516
517
518
```markdown
[Link to Related Page](/documentation)
```
Munken's avatar
Munken включено в состав коммита
519

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
520
This snippet links to `<wiki_root>/miscellaneous.md`:
Tony Rom's avatar
Tony Rom включено в состав коммита
521

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
522
523
524
```markdown
[Link to Related Page](/miscellaneous.md)
```
Tony Rom's avatar
Tony Rom включено в состав коммита
525

Tristan Read's avatar
Tristan Read включено в состав коммита
526
527
528
529
### Embedding metrics in GitLab Flavored Markdown

Metric charts can be embedded within GitLab Flavored Markdown. See [Embedding Metrics within GitLab flavored Markdown](../user/project/integrations/prometheus.md#embedding-metric-charts-within-gitlab-flavored-markdown) for more details.

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
530
## Standard markdown and extensions in GitLab
Tony Rom's avatar
Tony Rom включено в состав коммита
531

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
532
533
534
All standard markdown formatting should work as expected within GitLab. Some standard
functionality is extended with additional features, without affecting the standard usage.
If a functionality is extended, the new option will be listed as a sub-section.
Tony Rom's avatar
Tony Rom включено в состав коммита
535

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
536
### Blockquotes
Tony Rom's avatar
Tony Rom включено в состав коммита
537

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
538
539
Blockquotes are an easy way to highlight information, such as a side-note. It is generated
by starting the lines of the blockquote with `>`:
Tony Rom's avatar
Tony Rom включено в состав коммита
540

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
541
542
543
```markdown
> Blockquotes are very handy to emulate reply text.
> This line is part of the same quote.
Tony Rom's avatar
Tony Rom включено в состав коммита
544

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
545
Quote break.
Tony Rom's avatar
Tony Rom включено в состав коммита
546

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
547
548
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
```
Tony Rom's avatar
Tony Rom включено в состав коммита
549

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
550
551
> Blockquotes are very handy to emulate reply text.
> This line is part of the same quote.
Tony Rom's avatar
Tony Rom включено в состав коммита
552

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
553
Quote break.
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
554

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
555
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
556

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
557
#### Multiline blockquote
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
558

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
559
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#multiline-blockquote).
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
560

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
561
562
GFM extends the standard markdown standard by also supporting multiline blockquotes
fenced by `>>>`:
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
563

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
564
565
566
```
>>>
If you paste a message from somewhere else
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
567

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
568
that spans multiple lines,
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
569

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
570
571
you can quote that without having to manually prepend `>` to every line!
>>>
Evan Read's avatar
Evan Read включено в состав коммита
572
```
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
573

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
574
575
>>>
If you paste a message from somewhere else
Vitaliy @blackst0ne Klachkov's avatar
Vitaliy @blackst0ne Klachkov включено в состав коммита
576

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
577
that spans multiple lines,
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
578

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
579
580
you can quote that without having to manually prepend `>` to every line!
>>>
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
581

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
582
### Code spans and blocks
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
583

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
584
You can easily highlight anything that should be viewed as code and not simple text.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
585

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
586
Simple inline code is easily highlighted with single backticks `` ` ``:
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
587

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
588
589
590
```markdown
Inline `code` has `back-ticks around` it.
```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
591

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
592
Inline `code` has `back-ticks around` it.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
593

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
594
---
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
595

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
596
597
Similarly, a whole block of code can be fenced with triple backticks ```` ``` ````,
triple tildes (`~~~`), or indended 4 or more spaces to achieve a similar effect for
Christopher Amurao's avatar
Christopher Amurao включено в состав коммита
598
a larger body of code.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
599

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
600
601
602
603
604
605
606
~~~
```
def function():
    #indenting works just fine in the fenced code block
    s = "Python code"
    print s
```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
607

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
608
609
610
611
    Using 4 spaces
    is like using
    3-backtick fences.
~~~
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
612
613

```
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
614
615
616
~~~
Tildes are OK too.
~~~
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
617
618
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
619
The three examples above render as:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
620

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
621
```
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
622
623
624
625
626
def function():
    #indenting works just fine in the fenced code block
    s = "Python code"
    print s
```
Thurston Stone's avatar
Thurston Stone включено в состав коммита
627

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
628
629
630
631
632
```
Using 4 spaces
is like using
3-backtick fences.
```
Thurston Stone's avatar
Thurston Stone включено в состав коммита
633

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
634
635
636
~~~
Tildes are OK too.
~~~
Thurston Stone's avatar
Thurston Stone включено в состав коммита
637

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
638
#### Colored code and syntax highlighting
Thurston Stone's avatar
Thurston Stone включено в состав коммита
639

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
640
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#colored-code-and-syntax-highlighting).
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
641

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
642
643
644
645
646
GitLab uses the [Rouge Ruby library](http://rouge.jneen.net/) for more colorful syntax
highlighting in code blocks. For a list of supported languages visit the
[Rouge project wiki](https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers).
Syntax highlighting is only supported in code blocks, it is not possible to highlight
code when it is inline.
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
647

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
648
649
Blocks of code are fenced by lines with three back-ticks ```` ``` ```` or three tildes `~~~`, and have
the language identified at the end of the first fence:
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
650

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
651
652
653
654
655
~~~
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
656

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
657
658
659
660
661
662
```python
def function():
    #indenting works just fine in the fenced code block
    s = "Python syntax highlighting"
    print s
```
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
663

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
664
665
666
667
668
```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
669
670

```
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
671
672
673
No language indicated, so no syntax highlighting.
s = "There is no highlighting for this."
But let's throw in a <b>tag</b>.
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
674
```
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
675
~~~
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
676

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
677
The four examples above render as:
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
678

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
679
680
681
682
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
683

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
```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>.
```
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
702

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
703
### Emphasis
Thurston Stone's avatar
Thurston Stone включено в состав коммита
704

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
705
706
707
There are multiple ways to emphasize text in markdown. You can italicize, bold, strikethrough,
as well as combine these emphasis styles together.

Edwin Torres's avatar
Edwin Torres включено в состав коммита
708
709
Examples:

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
710
```markdown
Thurston Stone's avatar
Thurston Stone включено в состав коммита
711
712
Emphasis, aka italics, with *asterisks* or _underscores_.

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
713
Strong emphasis, aka bold, with double **asterisks** or __underscores__.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
714

Simon Hardt's avatar
Simon Hardt включено в состав коммита
715
Combined emphasis with **asterisks and _underscores_**.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
716
717
718
719
720
721

Strikethrough uses two tildes. ~~Scratch this.~~
```

Emphasis, aka italics, with *asterisks* or _underscores_.

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
722
Strong emphasis, aka bold, with double **asterisks** or __underscores__.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
723
724
725
726
727

Combined emphasis with **asterisks and _underscores_**.

Strikethrough uses two tildes. ~~Scratch this.~~

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
728
NOTE: **Note:** Strikethrough is not part of the core Markdown standard, but is part of GFM.
Thurston Stone's avatar
Thurston Stone включено в состав коммита
729

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
730
#### Multiple underscores in words and mid-word emphasis
Edwin Torres's avatar
Edwin Torres включено в состав коммита
731

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
732
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#multiple-underscores-in-words).
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
733

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
734
735
736
737
738
739
740
741
742
743
744
It is not usually useful to italicize just _part_ of a word, especially when you're
dealing with code and names that often appear with multiple underscores. As a result,
GFM extends the standard markdown standard by ignoring multiple underlines in words,
to allow better rendering of markdown documents discussing code:

```md
perform_complicated_task

do_this_and_do_that_and_another_thing

but_emphasis is_desired _here_
Thurston Stone's avatar
Thurston Stone включено в состав коммита
745
746
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
747
perform_complicated_task
Evan Read's avatar
Evan Read включено в состав коммита
748

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
749
do_this_and_do_that_and_another_thing
Edwin Torres's avatar
Edwin Torres включено в состав коммита
750

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
751
but_emphasis is_desired _here_
Ciro Santillli's avatar
Ciro Santillli включено в состав коммита
752

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
753
---
Thurston Stone's avatar
Thurston Stone включено в состав коммита
754

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
755
If you wish to emphasize only a part of a word, it can still be done with asterisks:
Raniere Silva's avatar
Raniere Silva включено в состав коммита
756

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
757
758
```md
perform*complicated*task
Evan Read's avatar
Evan Read включено в состав коммита
759

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
760
761
762
763
do*this*and*do*that*and*another thing
```

perform*complicated*task
Evan Read's avatar
Evan Read включено в состав коммита
764

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
765
766
767
do*this*and*do*that*and*another thing

### Footnotes
Edwin Torres's avatar
Edwin Torres включено в состав коммита
768

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
769
770
771
772
773
774
Footnotes add a link to a note rendered at the end of a markdown file:

```markdown
You can add footnotes to your text as follows.[^1]

[^1]: This is my awesome footnote (later in file).
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
775
```
Raniere Silva's avatar
Raniere Silva включено в состав коммита
776

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
777
You can add footnotes to your text as follows.[^1]
Brett Walker's avatar
Brett Walker включено в состав коммита
778

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
[^1]: This is my awesome footnote (later in file).

### Headers

```markdown
# H1
## H2
### H3
#### H4
##### H5
###### H6

Alternatively, for H1 and H2, an underline-ish style:

Alt-H1
======

Alt-H2
------
Raniere Silva's avatar
Raniere Silva включено в состав коммита
798
799
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
800
#### Header IDs and links
Edwin Torres's avatar
Edwin Torres включено в состав коммита
801

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
802
803
GFM extends the standard markdown standard so that all Markdown-rendered headers automatically
get IDs, which can be linked to, except in comments.
Raniere Silva's avatar
Raniere Silva включено в состав коммита
804

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
805
806
On hover, a link to those IDs becomes visible to make it easier to copy the link to
the header to use it somewhere else.
Brett Walker's avatar
Brett Walker включено в состав коммита
807

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
808
The IDs are generated from the content of the header according to the following rules:
Raniere Silva's avatar
Raniere Silva включено в состав коммита
809

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
810
811
812
813
814
815
1. All text is converted to lowercase.
1. All non-word text (e.g., punctuation, HTML) is removed.
1. All spaces are converted to hyphens.
1. Two or more hyphens in a row are converted to one.
1. If a header with the same ID has already been generated, a unique
   incrementing number is appended, starting at 1.
Raniere Silva's avatar
Raniere Silva включено в состав коммита
816

Edwin Torres's avatar
Edwin Torres включено в состав коммита
817
818
Example:

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
819
```
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
820
821
822
823
824
825
# 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
## This header has 3.5 in it (and parentheses)
Raniere Silva's avatar
Raniere Silva включено в состав коммита
826
827
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
828
Would generate the following link IDs:
Raniere Silva's avatar
Raniere Silva включено в состав коммита
829

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
830
831
832
833
834
835
1. `this-header-has-spaces-in-it`
1. `this-header-has-a-in-it`
1. `this-header-has-unicode-in-it-한글`
1. `this-header-has-spaces-in-it-1`
1. `this-header-has-spaces-in-it-2`
1. `this-header-has-3-5-in-it-and-parentheses`
Brett Walker's avatar
Brett Walker включено в состав коммита
836

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
837
838
Note that the Emoji processing happens before the header IDs are generated, so the
Emoji is converted to an image which is then removed from the ID.
Raniere Silva's avatar
Raniere Silva включено в состав коммита
839

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
840
### Horizontal Rule
Thurston Stone's avatar
Thurston Stone включено в состав коммита
841

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
842
843
It's very simple to create a horizontal rule, by using three or more hyphens, asterisks,
or underscores:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
844

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
845
```markdown
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
846
Three or more hyphens,
Thurston Stone's avatar
Thurston Stone включено в состав коммита
847

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
848
---
Thurston Stone's avatar
Thurston Stone включено в состав коммита
849

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
850
asterisks,
Thurston Stone's avatar
Thurston Stone включено в состав коммита
851

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
852
***
Thurston Stone's avatar
Thurston Stone включено в состав коммита
853

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
854
855
856
or underscores

___
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
857
```
Thurston Stone's avatar
Thurston Stone включено в состав коммита
858

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
859
### Images
Thurston Stone's avatar
Thurston Stone включено в состав коммита
860

Edwin Torres's avatar
Edwin Torres включено в состав коммита
861
862
Examples:

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
863
864
```markdown
Inline-style (hover to see title text):
Thurston Stone's avatar
Thurston Stone включено в состав коммита
865

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
866
![alt text](img/markdown_logo.png "Title Text")
Thurston Stone's avatar
Thurston Stone включено в состав коммита
867

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
868
Reference-style (hover to see title text):
Thurston Stone's avatar
Thurston Stone включено в состав коммита
869

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
870
![alt text1][logo]
Edwin Torres's avatar
Edwin Torres включено в состав коммита
871

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
872
873
[logo]: img/markdown_logo.png "Title Text"
```
Thurston Stone's avatar
Thurston Stone включено в состав коммита
874

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
875
Inline-style (hover to see title text):
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
876

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
877
![alt text](img/markdown_logo.png "Title Text")
Thurston Stone's avatar
Thurston Stone включено в состав коммита
878

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
879
Reference-style (hover to see title text):
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
880

Thurston Stone's avatar
Thurston Stone включено в состав коммита
881
882
![alt text][logo]

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
883
[logo]: img/markdown_logo.png "Title Text"
Thurston Stone's avatar
Thurston Stone включено в состав коммита
884

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
885
#### Videos
Thurston Stone's avatar
Thurston Stone включено в состав коммита
886

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
887
> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#videos).
Edwin Torres's avatar
Edwin Torres включено в состав коммита
888

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
889
890
Image tags that link to files with a video extension are automatically converted to
a video player. The valid video extensions are `.mp4`, `.m4v`, `.mov`, `.webm`, and `.ogv`:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
891

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
892
893
```md
Here's a sample video:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
894

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
895
![Sample Video](img/markdown_video.mp4)
Thurston Stone's avatar
Thurston Stone включено в состав коммита
896
897
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
898
Here's a sample video:
Thurston Stone's avatar
Thurston Stone включено в состав коммита
899

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
900
![Sample Video](img/markdown_video.mp4)
Thurston Stone's avatar
Thurston Stone включено в состав коммита
901

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
902
### Inline HTML
Thurston Stone's avatar
Thurston Stone включено в состав коммита
903

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
904
> To see the markdown rendered within HTML in the second example, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#inline-html).
Thurston Stone's avatar
Thurston Stone включено в состав коммита
905

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
906
You can also use raw HTML in your Markdown, and it'll usually work pretty well.
Rens van der Heijden's avatar
Rens van der Heijden включено в состав коммита
907

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
908
909
910
See the documentation for HTML::Pipeline's [SanitizationFilter](http://www.rubydoc.info/gems/html-pipeline/1.11.0/HTML/Pipeline/SanitizationFilter#WHITELIST-constant)
class for the list of allowed HTML tags and attributes.  In addition to the default
`SanitizationFilter` whitelist, GitLab allows `span`, `abbr`, `details` and `summary` elements.
Edwin Torres's avatar
Edwin Torres включено в состав коммита
911

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
912
```html
Thurston Stone's avatar
Thurston Stone включено в состав коммита
913
914
915
916
917
<dl>
  <dt>Definition list</dt>
  <dd>Is something people use sometimes.</dd>

  <dt>Markdown in HTML</dt>
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
918
  <dd>Does *not* work **very** well. HTML <em>tags</em> will <b>always</b> work.</dd>
Thurston Stone's avatar
Thurston Stone включено в состав коммита
919
920
921
922
923
924
925
926
</dl>
```

<dl>
  <dt>Definition list</dt>
  <dd>Is something people use sometimes.</dd>

  <dt>Markdown in HTML</dt>
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
  <dd>Does *not* work **very** well. HTML <em>tags</em> will <b>always</b> work.</dd>
</dl>

---

It is still possible to use markdown inside HTML tags, but only if the lines containing markdown
are separated into their own lines:

```html
<dl>
  <dt>Markdown in HTML</dt>
  <dd>Does *not* work **very** well. HTML tags will always work.</dd>

  <dt>Markdown in HTML</dt>
  <dd>
Evan Read's avatar
Evan Read включено в состав коммита
942

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
943
  Does *not* work **very** well. HTML tags will always work.
Evan Read's avatar
Evan Read включено в состав коммита
944

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
945
946
947
948
949
950
951
952
953
954
955
956
  </dd>
</dl>
```

<!-- Note: The example below uses HTML to force correct rendering on docs.gitlab.com, markdown will be fine in GitLab -->

<dl>
  <dt>Markdown in HTML</dt>
  <dd>Does *not* work **very** well. HTML tags will always work.</dd>

  <dt>Markdown in HTML</dt>
  <dd>
Evan Read's avatar
Evan Read включено в состав коммита
957

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
958
  Does <em>not</em> work <b>very</b> well. HTML tags will always work.
Evan Read's avatar
Evan Read включено в состав коммита
959

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
960
  </dd>
Thurston Stone's avatar
Thurston Stone включено в состав коммита
961
962
</dl>

James Edwards-Jones's avatar
James Edwards-Jones включено в состав коммита
963
964
#### Details and Summary

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
> To see the markdown rendered within HTML in the second example, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#details-and-summary).

Content can be collapsed using HTML's [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)
and [`<summary>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary)
tags. This is especially useful for collapsing long logs so they take up less screen space.

```html
<p>
<details>
<summary>Click me to collapse/fold.</summary>

These details <em>will</em> remain <strong>hidden</strong> until expanded.

<pre><code>PASTE LOGS HERE</code></pre>

</details>
</p>
```
James Edwards-Jones's avatar
James Edwards-Jones включено в состав коммита
983
984
985
986

<p>
<details>
<summary>Click me to collapse/fold.</summary>
Brett Walker's avatar
Brett Walker включено в состав коммита
987
988

These details <em>will</em> remain <strong>hidden</strong> until expanded.
James Edwards-Jones's avatar
James Edwards-Jones включено в состав коммита
989
990

<pre><code>PASTE LOGS HERE</code></pre>
Brett Walker's avatar
Brett Walker включено в состав коммита
991

James Edwards-Jones's avatar
James Edwards-Jones включено в состав коммита
992
993
994
</details>
</p>

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
995
996
997
998
---

Markdown inside these tags is supported as well, as long as you have a blank line
after the `</summary>` tag and before the `</details>` tag, as shown in the example:
James Edwards-Jones's avatar
James Edwards-Jones включено в состав коммита
999
1000

```html
Для ускорения просмотра не вся история отображается Просмотреть всю вину