Project

General

Profile

RedmineTextFormatting » History » Version 112

justim chan, 2014-11-28 01:45

1 68 Jean-Philippe Lang
h1. Text formatting
2 1 Jean-Philippe Lang
3
{{>TOC}}
4
5
h2. Links
6
7 6 Jean-Philippe Lang
h3. Redmine links
8
9 68 Jean-Philippe Lang
Redmine allows hyperlinking between resources (issues, changesets, wiki pages...) from anywhere text formatting is used.
10 1 Jean-Philippe Lang
11 8 Jean-Philippe Lang
* Link to an issue: *!#124* (displays #124, link is striked-through if the issue is closed)
12 87 Olivier Pinette
* Link to an issue note: *!#124-6*, or *!#124!#note-6*
13 6 Jean-Philippe Lang
* Link to a changeset: *!r758* (displays r758)
14 68 Jean-Philippe Lang
* Link to a changeset with a non-numeric hash: *commit:c6f4d0fd* (displays c6f4d0fd).
15 1 Jean-Philippe Lang
16 6 Jean-Philippe Lang
Wiki links:
17 1 Jean-Philippe Lang
18 3 Jean-Philippe Lang
* *[[Guide]]* displays a link to the page named 'Guide': [[Guide]]
19 51 Graham King
* *[[Guide|User manual]]* displays a link to the same page but with different text: [[Guide|User manual]]
20
* *[[Guide#User-guide|User guide]]* displays a link to the header on the same page with different text: [[Guide#User-guide|User guide]]
21 1 Jean-Philippe Lang
22 89 Olivier Pinette
You can also link to pages of another project's wiki (using the project identifier):
23 3 Jean-Philippe Lang
24 1 Jean-Philippe Lang
* *[[sandbox:some page]]* displays a link to the page named 'Some page' of the Sandbox wiki
25
* *[[sandbox:]]* displays a link to the Sandbox wiki main page
26
27
Wiki links are displayed in red if the page doesn't exist yet, eg: [[Nonexistent page]].
28
29 32 Jean-Philippe Lang
Links to others resources:
30 6 Jean-Philippe Lang
31
* Documents:
32
33
  * *!document#17* (link to document with id 17)
34
  * *!document:Greetings* (link to the document with title "Greetings")
35 1 Jean-Philippe Lang
  * *!document:"Some document"* (double quotes can be used when document title contains spaces)
36 89 Olivier Pinette
  * *!sandbox:document:"Some document"* (link to a document with title "Some document" in project identifier "sandbox")
37 6 Jean-Philippe Lang
38
* Versions:
39
40
  * *!version#3* (link to version with id 3)
41
  * *!version:1.0.0* (link to version named "1.0.0")
42 98 Mischa The Evil
  * *!version:"1.0 beta 2"* (double quotes can be used when version name contains spaces)
43 89 Olivier Pinette
  * *!sandbox:version:1.0.0* (link to version "1.0.0" in the project identifier "sandbox")
44 1 Jean-Philippe Lang
45 44 Anh Tu Sam
* Attachments:
46 1 Jean-Philippe Lang
  
47
  * *!attachment:file.zip* (link to the attachment of the current object named file.zip)
48
  * *!attachment:"file.zip"* (double quotes can be used when the filename contains non word characters)
49
  * For now, attachments of the current object can be referenced only (if you're on an issue, it's possible to reference attachments of this issue only)
50
51 87 Olivier Pinette
* Changesets:
52 1 Jean-Philippe Lang
53 87 Olivier Pinette
  * *!r758* (link to a changeset)
54
  * *!commit:c6f4d0fd* (link to a changeset with a non-numeric hash)
55
  * *!svn1|r758* (link to a changeset of a specific repository, for projects with multiple repositories)
56
  * *!commit:hg|c6f4d0fd* (link to a changeset with a non-numeric hash of a specific repository)
57
  * *!sandbox:r758* (link to a changeset of another project)
58 89 Olivier Pinette
  * *!sandbox:commit:c6f4d0fd* (link to a changeset with a non-numeric hash of another project identifier)
59 87 Olivier Pinette
60
* Repository files:
61
62 39 Yuki Kita
  * *!source:some/file*           -- Link to the file located at /some/file in the project's repository
63 1 Jean-Philippe Lang
  * *!source:some/file@52*        -- Link to the file's revision 52
64 39 Yuki Kita
  * *!source:some/file#L120*      -- Link to line 120 of the file
65 1 Jean-Philippe Lang
  * *!source:some/file@52#L120*   -- Link to line 120 of the file's revision 52
66
  * *!source:"some file@52#L120"* -- Double quotes can be used when the URL contains spaces  
67
  * *!source:repo_identifier|some/file* -- Link to a file in a repository other than the project default repository. 
68
  * *!source:"repo_identifier|some file"* -- Link to a file in a repository other than the project default repository, with spaces in the path. 
69
  * *!export:some/file*           -- Force the download of the file
70
 
71 96 Mischa The Evil
* Forums:
72
73
  * *!forum#2* (link to forum with id 2)
74
  * *!forum:Discussion* (link to forum with name "Discussion")
75
  * *!forum:"Help and more"* (double quotes can be used when forum name contains spaces)
76
77 87 Olivier Pinette
* Forum messages:
78 39 Yuki Kita
79 87 Olivier Pinette
  * *!message#1218* (link to message with id 1218)
80 96 Mischa The Evil
81
* News items
82
83
  * *!news#1* (link to news item with id 1)
84 99 Mischa The Evil
  * *!news:Greetings* (link to news item with name "Greetings")
85
  * *!news:"eCookbook first release !"* (double quotes can be used when news item name contains spaces)
86 87 Olivier Pinette
87
* Projects:
88 1 Jean-Philippe Lang
89 97 Mischa The Evil
  * *!project#3* (link to project with id 3)
90 99 Mischa The Evil
  * *!project:someproject* (link to project with name "someproject")
91 97 Mischa The Evil
  * *!project:"Multiple words project"* (double quotes can be used when project name contains spaces)
92 87 Olivier Pinette
93 32 Jean-Philippe Lang
Escaping:
94 6 Jean-Philippe Lang
95
* You can prevent Redmine links from being parsed by preceding them with an exclamation mark: !
96
97 42 Andrew Quach Huynh
h3. External links
98 5 Jean-Philippe Lang
99 83 Jean-Philippe Lang
HTTP URLs are automatically turned into clickable links: 
100 47 Ian Epperson
* *http://www.redmine.org* -- External link to the redmine website: http://www.redmine.org
101
* *someone@foo.bar* -- Link to an email address: someone@foo.bar
102 5 Jean-Philippe Lang
103 83 Jean-Philippe Lang
HTTP URLs can also use different text than the link itself:
104 47 Ian Epperson
* *"Redmine web site":http://www.redmine.org* -- External link with different text: "Redmine web site":http://www.redmine.org
105 70 Jean-Philippe Lang
* *!http://www.redmine.org/attachments/7069/Redmine_logo.png(Redmine web site)!:http://www.redmine.org* -- External image with a title that links to an URL: 
106 1 Jean-Philippe Lang
107
p=. !http://www.redmine.org/attachments/7069/Redmine_logo.png(Redmine web site)!:http://www.redmine.org
108 83 Jean-Philippe Lang
109
h3. Email addresses
110
111
Email addresses are automatically turned into clickable links:
112 70 Jean-Philippe Lang
113 47 Ian Epperson
* *"Email someone":mailto:someone@foo.bar* -- Email link with different text: "Email someone":mailto:someone@foo.bar
114 1 Jean-Philippe Lang
115 48 Ian Epperson
More complex email instructions can be added to an email link.  A default subject, default body and CC information can be defined.  Note that spaces in any of these fields need to be replaced with the code %20.
116
* *"Email webmaster and admin":mailto:webmaster@foo.bar?cc=admin@foo.bar* -- Email to webmaster, CC admin:  "Email webmaster and admin":mailto:webmaster@foo.bar?cc=admin@foo.bar
117
* *"Email someone for help":mailto:someone@foo.bar?subject=Website%20Help* -- Email link with the subject "Website Help": "Email someone for help":mailto:someone@foo.bar?subject=Website%20Help
118
* *"Email someone for help":mailto:someone@foo.bar?subject=Website%20Help&body=My%20problem%20is%20* -- Email link with the subject "Website Help" and a default body: "Email someone for help":mailto:someone@foo.bar?subject=Website%20Help&body=My%20problem%20is%20
119
120 1 Jean-Philippe Lang
h2. Text formatting
121 10 John Goerzen
122 67 Jean-Philippe Lang
For things such as headlines, bold, tables, lists, Redmine supports "Textile syntax":http://en.wikipedia.org/wiki/Textile_%28markup_language%29.  See http://redcloth.org/hobix.com/textile/ for information on using any of these features.  A few samples are included below, but the engine is capable of much more of that.
123 1 Jean-Philippe Lang
124 38 ha thach
h3. Acronym
125
126
<pre>
127
JPL(Jean-Philippe Lang)
128
</pre>
129
130
Display:
131
132
JPL(Jean-Philippe Lang)
133
134 1 Jean-Philippe Lang
h3. Font style
135
136
<pre><code>* *bold*
137
* _italic_
138 19 Pavel Schichko
* *_bold italic_*
139 1 Jean-Philippe Lang
* +underline+
140
* -strike-through-
141 45 Ian Epperson
* Plain ^superscript^
142
* Plain ~subscript~
143 63 Colin Sullivan
* @inline monospace@
144 106 Friedrich Schiller
* <notextile>normal *bold* _italic_ normal;E=mc ^2^</notextile>
145 103 Friedrich Schiller
* <notextile>normal<notextile></notextile>*bold*<notextile></notextile>_italic_<notextile></notextile>normal;E=mc<notextile></notextile>^2^</notextile>
146 105 Friedrich Schiller
* <notextile>Escaping: <notextile>*bold* _italic_ @inlinemono@</notextile> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alternative using HTML-codes: &#42;bold&#42; &#95;italic&#95; &#64;inlinemono&#64;</notextile>
147 107 Friedrich Schiller
* <notextile><pre>*some lines*      some "link":http://www.redmine.org</pre></notextile>
148
* <notextile><pre><notextile></notextile>*some lines*      some "link":http://www.redmine.org</pre></notextile>
149 1 Jean-Philippe Lang
</code></pre>
150
151
Display:
152
153
 * *bold*
154
 * _italic_
155 19 Pavel Schichko
 * *_bold italic_*
156 1 Jean-Philippe Lang
 * +underline+
157
 * -strike-through-
158 45 Ian Epperson
 * Plain ^superscript^
159
 * Plain ~subscript~
160 63 Colin Sullivan
 * @inline monospace@
161 106 Friedrich Schiller
 * normal *bold* _italic_ normal;E=mc ^2^
162 103 Friedrich Schiller
 * normal<notextile></notextile>*bold*<notextile></notextile>_italic_<notextile></notextile>normal;E=mc<notextile></notextile>^2^
163 105 Friedrich Schiller
 * Escaping: <notextile>*bold* _italic_ @inlinemono@</notextile> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alternative using HTML-codes: &#42;bold&#42; &#95;italic&#95; &#64;inlinemono&#64;
164 106 Friedrich Schiller
 * <pre>*some lines*      some "link":http://www.redmine.org</pre>
165
 * <pre><notextile></notextile>*some lines*      some "link":http://www.redmine.org</pre>
166 104 Friedrich Schiller
167
h3. Colour
168
169
<pre><code><notextile>* %{color:red}red% %{color:green}green% %{color:yellow}yellow% %{color:#82B6E1}blue'ish%
170
* %{color:red}red%<notextile></notextile>%{color:green}green%<notextile></notextile>%{color:yellow}yellow%<notextile></notextile>%{color:#82B6E1}blue'ish%
171
* %{background:lightgreen}Lightgreen Background% %{background:yellow}Yellow Background%
172
* %{background:lightgreen}Lightgreen Background%<notextile></notextile>%{background:yellow}Yellow Background%
173
</notextile></code></pre>
174
175
Display:
176
177
 * %{color:red}red% %{color:green}green% %{color:yellow}yellow% %{color:#82B6E1}blue'ish%
178
 * %{color:red}red%<notextile></notextile>%{color:green}green%<notextile></notextile>%{color:yellow}yellow%<notextile></notextile>%{color:#82B6E1}blue'ish%
179
 * %{background:lightgreen}Lightgreen Background% %{background:yellow}Yellow Background%
180
 * %{background:lightgreen}Lightgreen Background%<notextile></notextile>%{background:yellow}Yellow Background%
181 1 Jean-Philippe Lang
182
h3. Inline images
183 9 Jean-Philippe Lang
184 1 Jean-Philippe Lang
* *&#33;image_url&#33;* displays an image located at image_url (textile syntax)
185
* *&#33;>image_url&#33;* right floating image
186 66 Jean-Philippe Lang
* *&#33;image_url(Image title)&#33;* displays an image with an alt/title attribute
187 73 Dieter Egert
* *&#33;image_url&#33;:URL* displays an image located at image_url with link URL added
188 18 samir djouadi
189 15 Jean-Philippe Lang
If you have an image attached to your wiki page, it can be displayed inline using its filename: *&#33;attached_image.png&#33;*
190 1 Jean-Philippe Lang
191 80 Caio Cunha
You can also apply a CSS style to the image in the same ways as styling SPANs. The code *&#33;{width: 100%}attached_image.png&#33;* will make the image adjusts to the parent's width.
192
193 1 Jean-Philippe Lang
h3. Headings
194
195
<pre><code>h1. Heading
196
197
h2. Subheading
198 66 Jean-Philippe Lang
199 1 Jean-Philippe Lang
h3. Subheading
200 66 Jean-Philippe Lang
</code></pre>
201 87 Olivier Pinette
202
Redmine assigns an anchor to each of those headings thus you can link to them with "#Heading", "#Subheading" and so forth.
203 1 Jean-Philippe Lang
204
h3. Paragraphs
205
206 58 Dieter Egert
<pre><code>p. left aligned
207
208 60 Dieter Egert
  p(. left ident 1em
209 58 Dieter Egert
210 60 Dieter Egert
    p((. left ident 2em
211
    as well as for following lines
212 58 Dieter Egert
213 60 Dieter Egert
                                                                                   p>. right aligned
214 58 Dieter Egert
215 60 Dieter Egert
                                                                        p)))>. right ident 3em
216 58 Dieter Egert
217 60 Dieter Egert
                           p=. This is centered paragraph.
218 1 Jean-Philippe Lang
</code></pre>
219
220 90 Olivier Pinette
h3. Horizontal rule 
221
222
@----@
223
Display: 
224
225
----
226
227
228 1 Jean-Philippe Lang
h3. Predefined
229
230
To escape wiki syntax
231 58 Dieter Egert
<pre> <pre> *Your text won't become bold* </pre> </pre>
232 36 ha thach
Display:
233 37 ha thach
234 1 Jean-Philippe Lang
<pre> *Your text won't become bold* </pre>
235 38 ha thach
236
h3. Blockquotes
237 37 ha thach
238 84 Jean-Philippe Lang
Start the paragraph with *bq.*:
239 1 Jean-Philippe Lang
240
<pre><code>bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
241
To go live, all you need to add is a database and a web server.
242
</code></pre>
243
244 84 Jean-Philippe Lang
Displays:
245 1 Jean-Philippe Lang
246
bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
247
To go live, all you need to add is a database and a web server.
248
249 84 Jean-Philippe Lang
You can also use > at the beginning of each line and stack them for nested quotes:
250
251
<pre>
252 1 Jean-Philippe Lang
>> Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
253 84 Jean-Philippe Lang
>> To go live, all you need to add is a database and a web server.
254
> Great!
255
</pre>
256
257
Displays:
258
259
>>  Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
260
>>  To go live, all you need to add is a database and a web server.
261
> Great!
262 60 Dieter Egert
263 28 Jean-Philippe Lang
h3. Unordered lists
264
265
<pre>
266
* Item 1
267
* Item 2
268 29 Eric Gallimore
** Item 21
269
** Item 22
270 28 Jean-Philippe Lang
* Item 3
271
</pre>
272
273
displays:
274 1 Jean-Philippe Lang
275 28 Jean-Philippe Lang
* Item 1
276
* Item 2
277 29 Eric Gallimore
** Item 21
278 28 Jean-Philippe Lang
** Item 22
279
* Item 3
280 1 Jean-Philippe Lang
281
h3. Ordered lists
282
283 28 Jean-Philippe Lang
<pre>
284
# Item 1
285
# Item 2
286
# Item 3
287
## Item 3.1
288
## Item 3.2
289 1 Jean-Philippe Lang
</pre>
290 29 Eric Gallimore
291
displays:
292 1 Jean-Philippe Lang
293 20 Kirill Ponomarev
# Item 1
294
# Item 2
295
# Item 3
296 21 Andrew Chaika
## Item 3.1
297
## Item 3.2
298
299 1 Jean-Philippe Lang
h3. Tables
300
301
<pre>
302 91 Filou Centrinov
|_.UserID      |_.Name          |_.Group     |_. attribute list   |
303
|Starting with | a              |   simple   |row                 |
304
|\3=.IT                                      |<. align left       |
305
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
306
|2             |Vasya Rogov     |=. center   |
307
|3             |John Smith      |Admin
308
                                 (root)      |^. valign top       |
309
|4             |-               |Nobody
310
                                 (anonymous) |~. valign bottom    |
311 20 Kirill Ponomarev
</pre>
312 21 Andrew Chaika
313 1 Jean-Philippe Lang
displays (all multiple spaces are replaced by 1 space):
314
315 91 Filou Centrinov
|_.UserID      |_.Name          |_.Group     |_. attribute list   |
316
|Starting with | a              |   simple   |row                 |
317
|\3=.IT                                      |<. align left       |
318
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
319
|2             |Vasya Rogov     |=. center   |
320
|3             |John Smith      |Admin
321
                                 (root)      |^. valign top       |
322
|4             |-               |Nobody
323
                                 (anonymous) |~. valign bottom    |
324 1 Jean-Philippe Lang
325 78 Thomas Themel
If you want to include pipe characters inside your table (e.g. for Wiki links), you need to prevent textile from interpreting them:
326
327
|_.Input |_. Output|
328
|*<notextile><notextile>|</notextile></notextile>*|<notextile>|</notextile>|
329
330 1 Jean-Philippe Lang
h3. Table of content
331
332
<pre><code>{{toc}} => left aligned toc
333
{{>toc}} => right aligned toc
334
</code></pre>
335 7 Jean-Philippe Lang
336 79 Mike Bison
Please keep in mind, that the toc-tag needs an empty line above and underneath it and no other text before and after it.
337
338
Example:
339
340
<pre><code>
341
h1. headLineOne
342
343
h2. something
344
345
{{toc}}
346
347
h2. something more
348
</code></pre>
349
350 7 Jean-Philippe Lang
h2. Macros
351
352 111 Mario Kishkin
Redmine includes a macros system that lets you add custom functions to insert dynamic content in formatted text. You can learn about writing your own macros in [[RedmineMacros]]. Redmine also includes a few builtin macros:
353 7 Jean-Philippe Lang
354
{{macro_list}}
355 1 Jean-Philippe Lang
356 4 Jean-Philippe Lang
h2. Code highlighting
357 51 Graham King
358 1 Jean-Philippe Lang
Code highlighting relies on "CodeRay":http://coderay.rubychan.de/, a fast syntax highlighting library written completely in Ruby. It currently supports C, C++, CSS, Delphi, Diff, Groovy, HTML, Java, Javascript, JSON, Nitro-XHTML, PHP, Python, RHTML, Ruby, Scheme, SQL, XML and YAML code.
359
360
You can highlight code in your wiki page using this syntax:
361
362 49 Dave Clements
<pre><code><pre><code class="ruby">
363 1 Jean-Philippe Lang
  Place your code here.
364 40 Mischa The Evil
</code></pre>
365 1 Jean-Philippe Lang
</code></pre>
366
367
Example:
368
369
<pre><code class="ruby">
370
# The Greeter class
371
class Greeter
372
  def initialize(name)
373
    @name = name.capitalize
374
  end
375
 
376
  def salute
377
    puts "Hello #{@name}!"
378
  end
379 40 Mischa The Evil
end
380 52 Vladimir Vasilkin
</code></pre>
381
382 101 Il Igid
h2. Textile formatting
383
384
Redmine supports textile formatting. For details see "Textile syntax":http://en.wikipedia.org/wiki/Textile_%28markup_language%29
385
386
Additional supported textiles:
387
* *<notextile>%</notextile>{background:lightgreen}Green Background%* displays %{background:lightgreen}Green Background%
388
389 52 Vladimir Vasilkin
h2. Translation
390 1 Jean-Philippe Lang
391 75 Caille Rotie
Note that the following translations may not be up to date. Please refer to the original english documentation if needed.
392 52 Vladimir Vasilkin
393 102 Lucy Yevseyeva
* [[RusRedmineTextFormatting|Русский]]
394 75 Caille Rotie
* [[FrRedmineWikiFormatting|French]]
395 100 DongSeok Oh
* [[KoreanWikiFormatting|Korean]]
396 109 Mustafa Ergin
* [[TurkishWikiFormatting|Türkçe]]
397 110 Ben Huang
* [[TraditionalChineseWikiFormatting|繁體中文]]
398 112 justim chan
* [[SimplifiedChineseWikiFormatting|简体中文]]