Skip to content
Snippets Groups Projects
Select Git revision
  • ag-test
  • rs-test
  • master default protected
  • test-me-pa
  • mksionek-master-patch-52381
  • new-branch-10
  • test-conflicts
  • test-suggestions
  • alejandro-test
  • patch-25
  • winh-test-image-doscussion
  • stg-lfs-image-test-2
  • stg-lfs-image-test
  • test42016
  • issue_42016
  • issue-32709
  • add-codeowners
  • ClemMakesApps-master-patch-62759
  • bvl-staging-test
  • bvl-merge-base-api
  • v9.2.0-rc6 protected
  • v9.2.0-rc5 protected
  • v9.2.0-rc4 protected
  • v9.2.0-rc3 protected
  • v9.1.4 protected
  • v9.2.0-rc2 protected
  • v9.2.0-rc1 protected
  • v9.1.3 protected
  • v8.17.6 protected
  • v9.0.7 protected
  • v9.1.2 protected
  • v9.1.1 protected
  • v9.2.0.pre protected
  • v9.1.0 protected
  • v9.1.0-rc7 protected
  • v9.1.0-rc6 protected
  • v9.0.6 protected
  • v9.1.0-rc5 protected
  • v9.1.0-rc4 protected
  • v9.1.0-rc3 protected
40 results

markdown.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    markdown.md 21.90 KiB

    Markdown

    Table of Contents

    GitLab Flavored Markdown

    Standard Markdown

    Wiki-Specific Markdown

    References

    GitLab Flavored Markdown (GFM)

    Note: Not all of the GitLab-specific extensions to Markdown that are described in this document currently work on our documentation website.

    For the best result, we encourage you to check this document out as rendered by GitLab: markdown.md

    GitLab uses the Redcarpet Ruby library for Markdown processing.

    GitLab uses "GitLab Flavored Markdown" (GFM). It extends the standard Markdown in a few significant ways to add some useful functionality. It was inspired by GitHub Flavored Markdown.

    You can use GFM in the following areas:

    • comments
    • issues
    • merge requests
    • milestones
    • snippets (the snippet must be named with a .md extension)
    • wiki pages
    • markdown documents inside the repository

    You can also use other rich text files in GitLab. You might have to install a dependency to do so. Please see the github-markup gem readme for more information.

    Newlines

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#newlines

    GFM honors the markdown specification in how paragraphs and line breaks are handled.

    A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. Line-breaks, or softreturns, are rendered if you end a line with two or more spaces:

    Roses are red [followed by two or more spaces]
    Violets are blue
    
    Sugar is sweet

    Roses are red
    Violets are blue

    Sugar is sweet

    Multiple underscores in words

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#multiple-underscores-in-words

    It is not reasonable to italicize just part of a word, especially when you're dealing with code and names that often appear with multiple underscores. Therefore, GFM ignores multiple underscores in words:

    perform_complicated_task
    
    do_this_and_do_that_and_another_thing

    perform_complicated_task

    do_this_and_do_that_and_another_thing

    URL auto-linking

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#url-auto-linking

    GFM will autolink almost any URL you copy and paste into your text:

    * 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

    Multiline Blockquote

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#multiline-blockquote

    On top of standard Markdown blockquotes, which require prepending > to quoted lines, GFM supports multiline blockquotes fenced by >>>:

    >>>
    If you paste a message from somewhere else
    
    that
    
    spans
    
    multiple lines,
    
    you can quote that without having to manually prepend `>` to every line!
    >>>

    If you paste a message from somewhere else

    that

    spans

    multiple lines,

    you can quote that without having to manually prepend > to every line!

    Code and Syntax Highlighting

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#code-and-syntax-highlighting

    GitLab uses the Rouge Ruby library for syntax highlighting. For a list of supported languages visit the Rouge website.

    Blocks of code are either fenced by lines with three back-ticks ```, or are indented with four spaces. Only the fenced code blocks support syntax highlighting:

    Inline `code` has `back-ticks around` it.

    Inline code has back-ticks around it.

    Example:

    ```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>.
    ```

    becomes:

    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>.

    Inline Diff

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#inline-diff

    With inline diffs tags you can display additions or deletions .

    The wrapping tags can be either curly braces or square brackets additions or deletions .

    However the wrapping tags cannot be mixed as such:

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

    Emoji

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#emoji

    Sometimes you want to :monkey: around a bit and add some :star2: to your :speech_balloon:. Well we have a gift for you:
    
    :zap: You can use emoji anywhere GFM is supported. :v:
    
    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.
    
    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 on the supported codes.
    
    Consult the [Emoji Cheat Sheet](http://emoji.codes) for a list of all supported emoji codes. :thumbsup:

    Sometimes you want to 🐒 around a bit and add some 🌟 to your 💬. Well we have a gift for you:

    You can use emoji anywhere GFM is supported. ✌️

    You can use it to point out a 🐛 or warn about 🙊 patches. And if someone improves your really 🐌 code, send them some 🎂. People will ❤️ you for that.

    If you are new to this, don't be 😨. You can easily join the emoji 👪. All you need to do is to look up on the supported codes.

    Consult the Emoji Cheat Sheet for a list of all supported emoji codes. 👍

    Special GitLab References

    GFM recognizes special references.

    You can easily reference e.g. 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.

    GFM will recognize the following:

    input references
    @user_name specific user
    @group_name specific group
    @all entire team
    #123 issue
    !123 merge request
    $123 snippet
    ~123 label by ID
    ~bug one-word label by name
    ~"feature request" multi-word label by name
    %123 milestone by ID
    %v1.23 one-word milestone by name
    %"release candidate" multi-word milestone by name
    9ba12248 specific commit
    9ba12248...b19a04f5 commit range comparison
    [README](doc/README) repository file references

    GFM also recognizes certain cross-project references:

    input references
    namespace/project#123 issue
    namespace/project!123 merge request
    namespace/project%123 milestone
    namespace/project$123 snippet
    namespace/project@9ba12248 specific commit
    namespace/project@9ba12248...b19a04f5 commit range comparison
    namespace/project~"Some label" issues with given label

    Task Lists

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#task-lists

    You can add task lists to issues, merge requests and comments. To create a task list, add a specially-formatted Markdown list, like so:

    - [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

    Task lists can only be created in descriptions, not in titles. Task item state can be managed by editing the description's Markdown or by toggling the rendered check boxes.

    Videos

    If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/markdown/markdown.md#videos

    Image tags with a video extension are automatically converted to a video player.

    The valid video extensions are .mp4, .m4v, .mov, .webm, and .ogv.

    Here's a sample video:
    
    ![Sample Video](img/markdown_video.mp4)

    Here's a sample video:

    Sample Video

    Standard Markdown

    Headers

    # H1
    ## H2
    ### H3
    #### H4
    ##### H5
    ###### H6
    
    Alternatively, for H1 and H2, an underline-ish style:
    
    Alt-H1
    ======
    
    Alt-H2
    ------

    H1

    H2

    H3

    H4

    H5
    H6

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

    Alt-H1

    Alt-H2

    Header IDs and links

    All Markdown-rendered headers automatically get IDs, except in comments.

    On hover a link to those IDs becomes visible to make it easier to copy the link to the header to give it to someone else.

    The IDs are generated from the content of the header according to the following rules:

    1. All text is converted to lowercase
    2. All non-word text (e.g., punctuation, HTML) is removed
    3. All spaces are converted to hyphens
    4. Two or more hyphens in a row are converted to one
    5. If a header with the same ID has already been generated, a unique incrementing number is appended, starting at 1.

    For example:

    # 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

    Would generate the following link IDs:

    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

    Note that the Emoji processing happens before the header IDs are generated, so the Emoji is converted to an image which then gets removed from the ID.

    Emphasis

    Emphasis, aka italics, with *asterisks* or _underscores_.
    
    Strong emphasis, aka bold, with **asterisks** or __underscores__.
    
    Combined emphasis with **asterisks and _underscores_**.
    
    Strikethrough uses two tildes. ~~Scratch this.~~

    Emphasis, aka italics, with asterisks or underscores.

    Strong emphasis, aka bold, with asterisks or underscores.

    Combined emphasis with asterisks and underscores.

    Strikethrough uses two tildes. Scratch this.

    Lists

    1. First ordered list item
    2. Another item
      * Unordered sub-list.
    1. Actual numbers don't matter, just that it's a number
      1. Ordered sub-list
    4. And another item.
    
    * Unordered list can use asterisks
    - Or minuses
    + Or pluses
    1. First ordered list item
    2. Another item
    • Unordered sub-list.
    1. Actual numbers don't matter, just that it's a number
    2. Ordered sub-list
    3. And another item.
    • Unordered list can use asterisks
    • Or minuses
    • Or pluses

    If a list item contains multiple paragraphs, each subsequent paragraph should be indented with four spaces.

    1.  First ordered list item
    
        Second paragraph of first item.
    2.  Another item
    1. First ordered list item

      Second paragraph of first item.

    2. Another item

    If the second paragraph isn't indented with four spaces, the second list item will be incorrectly labeled as 1.

    1. First ordered list item
    
       Second paragraph of first item.
    2. Another item
    1. First ordered list item

      Second paragraph of first item.

    2. Another item

    Links

    There are two ways to create links, inline-style and reference-style.

    [I'm an inline-style link](https://www.google.com)
    
    [I'm a reference-style link][Arbitrary case-insensitive reference text]
    
    [I'm a relative reference to a repository file](LICENSE)
    
    [You can use numbers for reference-style link definitions][1]
    
    Or leave it empty and use the [link text itself][]
    
    Some text to show that the reference links can follow later.
    
    [arbitrary case-insensitive reference text]: https://www.mozilla.org
    [1]: http://slashdot.org
    [link text itself]: https://www.reddit.com

    I'm an inline-style link

    I'm a reference-style link

    I'm a relative reference to a repository file1

    You can use numbers for reference-style link definitions

    Or leave it empty and use the link text itself

    Some text to show that the reference links can follow later.

    Note