summaryrefslogtreecommitdiff
path: root/app/views/help/markdown.html.haml
blob: 0419f7c131aa01e3debe2238c78e6e81c77a6b8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
%h3.page_title GitLab Flavored Markdown
.back_link
  = link_to help_path do
    ← to index
%hr

.row
  .span8
    %p
      For GitLab we developed something we call "GitLab Flavored Markdown" (GFM).
      It extends the standard Markdown in a few significant ways adds some useful functionality.

    %p You can use GFM in:
    %ul
      %li commit messages
      %li comments
      %li wall posts
      %li issues
      %li merge requests
      %li milestones
      %li wiki pages

  .span4
    .alert.alert-info
      %p
        If you're not already familiar with Markdown, you should spend 15 minutes and go over the excellent
        %strong= link_to "Markdown Syntax Guide", "http://daringfireball.net/projects/markdown/syntax"
        at Daring Fireball.

.row
  .span8
    %h3 Differences from traditional Markdown

    %h4 Newlines

    %p
      The biggest difference that GFM introduces is in the handling of linebreaks.
      With traditional Markdown you can hard wrap paragraphs of text and they will be combined into a single paragraph. We find this to be the cause of a huge number of unintentional formatting errors.
      GFM treats newlines in paragraph-like content as real line breaks, which is probably what you intended.


    %p The next paragraph contains two phrases separated by a single newline character:
    %pre= "Roses are red\nViolets are blue"
    %p becomes
    = markdown "Roses are red\nViolets are blue"

    %h4 Multiple underscores in words

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

    %pre= "perform_complicated_task\ndo_this_and_do_that_and_another_thing"
    %p becomes
    = markdown "perform_complicated_task\ndo_this_and_do_that_and_another_thing"

    %h4 URL autolinking

    %p
      GFM will autolink standard URLs you copy and paste into your text.
      So if you want to link to a URL (instead of a textual link), you can simply put the URL in verbatim and it will be turned into a link to that URL.

    %h4 Fenced code blocks

    %p
      Markdown converts text with four spaces at the front of each line to code blocks.
      GFM supports that, but we also support fenced blocks.
      Just wrap your code blocks in <code>```</code> and you won't need to indent manually to trigger a code block.

    %pre= %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```}
    %p becomes
    = markdown %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```}

    %h4 Emoji

.row
  .span8
    :ruby
      puts markdown %Q{Sometimes you want to be :cool: and add some :sparkles: to your :speech_balloon:. Well we have a :gift: for you:

        :exclamation: You can use emoji anywhere GFM is supported. :sunglasses:

        You can use it to point out a :bug: or warn about :monkey:patches. And if someone improves your really :snail: code, send them a :bouquet: or some :candy:. People will :heart: you for that.

        If you are :new: to this, don't be :fearful:. You can easily join the emoji :circus_tent:. All you need to do is to :book: up on the supported codes.
        }

  .span4
    .alert.alert-info
      %p
        Consult the
        %strong= link_to "Emoji Cheat Sheet", "http://www.emoji-cheat-sheet.com/"
        for a list of all supported emoji codes.

.row
  .span8
    %h4 Special GitLab references

    %p
      GFM recognizes special references.
      You can easily reference e.g. a team member, an issue or a commit within a project.
      GFM will turn that reference into a link so you can navigate between them easily.

    %p GFM will recognize the following references:
    %ul
      %li
        %code @foo
        for team members
      %li
        %code #123
        for issues
      %li
        %code !123
        for merge request
      %li
        %code $123
        for snippets
      %li
        %code 1234567
        for commits

    -# this example will only be shown if the user has a project with at least one issue
    - if @project = current_user.authorized_projects.first
      - if issue = @project.issues.first
        %p For example in your #{link_to @project.name, project_path(@project)} project, writing:
        %pre= "This is related to ##{issue.id}. @#{current_user.name} is working on solving it."
        %p becomes:
        = markdown "This is related to ##{issue.id}. @#{current_user.name} is working on solving it."
      - @project = nil # Prevent this from bubbling up to page title