Project

General

Profile

RedmineTextFormatting » History » Version 96

Mischa The Evil, 2013-10-12 03:41
Add the syntax for news and forums links (issue #13497).

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 1 Jean-Philippe Lang
  * *!version:"1.0 beta 2"*
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
  * *!news:"eCookbook first release !"* (link to news item with name "eCookbook first release !")
85 87 Olivier Pinette
86
* Projects:
87
88
  * *project#<id>* (link to project with id, eg. *project#3* link to project with id 3)
89 89 Olivier Pinette
  * *!project:<name>*  (link to project with name, eg. *project:someproject* link to project identifier "project")
90 87 Olivier Pinette
91 32 Jean-Philippe Lang
Escaping:
92 6 Jean-Philippe Lang
93
* You can prevent Redmine links from being parsed by preceding them with an exclamation mark: !
94
95 42 Andrew Quach Huynh
h3. External links
96 5 Jean-Philippe Lang
97 83 Jean-Philippe Lang
HTTP URLs are automatically turned into clickable links: 
98 47 Ian Epperson
* *http&#58;//www.redmine.org* -- External link to the redmine website: http://www.redmine.org
99
* *someone&#64;foo.bar* -- Link to an email address: someone@foo.bar
100 5 Jean-Philippe Lang
101 83 Jean-Philippe Lang
HTTP URLs can also use different text than the link itself:
102 47 Ian Epperson
* *"Redmine web site"&#58;http&#58;//www.redmine.org* -- External link with different text: "Redmine web site":http://www.redmine.org
103 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: 
104 1 Jean-Philippe Lang
105
p=. !http://www.redmine.org/attachments/7069/Redmine_logo.png(Redmine web site)!:http://www.redmine.org
106 83 Jean-Philippe Lang
107
h3. Email addresses
108
109
Email addresses are automatically turned into clickable links:
110 70 Jean-Philippe Lang
111 47 Ian Epperson
* *"Email someone"&#58;mailto&#58;someone&#64;foo.bar* -- Email link with different text: "Email someone":mailto:someone@foo.bar
112 1 Jean-Philippe Lang
113 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.
114
* *"Email webmaster and admin"&#58;mailto&#58;webmaster&#64;foo.bar?cc=admin&#64;foo.bar* -- Email to webmaster, CC admin:  "Email webmaster and admin":mailto:webmaster@foo.bar?cc=admin@foo.bar
115
* *"Email someone for help"&#58;mailto&#58;someone&#64;foo.bar?subject=Website%20Help* -- Email link with the subject "Website Help": "Email someone for help":mailto:someone@foo.bar?subject=Website%20Help
116
* *"Email someone for help"&#58;mailto&#58;someone&#64;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
117
118 1 Jean-Philippe Lang
h2. Text formatting
119 10 John Goerzen
120 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.
121 1 Jean-Philippe Lang
122 38 ha thach
h3. Acronym
123
124
<pre>
125
JPL(Jean-Philippe Lang)
126
</pre>
127
128
Display:
129
130
JPL(Jean-Philippe Lang)
131
132 1 Jean-Philippe Lang
h3. Font style
133
134
<pre><code>* *bold*
135
* _italic_
136 19 Pavel Schichko
* *_bold italic_*
137 1 Jean-Philippe Lang
* +underline+
138
* -strike-through-
139 45 Ian Epperson
* Plain ^superscript^
140
* Plain ~subscript~
141 63 Colin Sullivan
* @inline monospace@
142 1 Jean-Philippe Lang
</code></pre>
143
144
Display:
145
146
 * *bold*
147
 * _italic_
148 19 Pavel Schichko
 * *_bold italic_*
149 1 Jean-Philippe Lang
 * +underline+
150
 * -strike-through-
151 45 Ian Epperson
 * Plain ^superscript^
152
 * Plain ~subscript~
153 63 Colin Sullivan
 * @inline monospace@
154 1 Jean-Philippe Lang
155
h3. Inline images
156 9 Jean-Philippe Lang
157 1 Jean-Philippe Lang
* *&#33;image_url&#33;* displays an image located at image_url (textile syntax)
158
* *&#33;>image_url&#33;* right floating image
159 66 Jean-Philippe Lang
* *&#33;image_url(Image title)&#33;* displays an image with an alt/title attribute
160 73 Dieter Egert
* *&#33;image_url&#33;:URL* displays an image located at image_url with link URL added
161 18 samir djouadi
162 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;*
163 1 Jean-Philippe Lang
164 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.
165
166 1 Jean-Philippe Lang
h3. Headings
167
168
<pre><code>h1. Heading
169
170
h2. Subheading
171 66 Jean-Philippe Lang
172 1 Jean-Philippe Lang
h3. Subheading
173 66 Jean-Philippe Lang
</code></pre>
174 87 Olivier Pinette
175
Redmine assigns an anchor to each of those headings thus you can link to them with "#Heading", "#Subheading" and so forth.
176 1 Jean-Philippe Lang
177
h3. Paragraphs
178
179 58 Dieter Egert
<pre><code>p. left aligned
180
181 60 Dieter Egert
  p(. left ident 1em
182 58 Dieter Egert
183 60 Dieter Egert
    p((. left ident 2em
184
    as well as for following lines
185 58 Dieter Egert
186 60 Dieter Egert
                                                                                   p>. right aligned
187 58 Dieter Egert
188 60 Dieter Egert
                                                                        p)))>. right ident 3em
189 58 Dieter Egert
190 60 Dieter Egert
                           p=. This is centered paragraph.
191 1 Jean-Philippe Lang
</code></pre>
192
193 90 Olivier Pinette
h3. Horizontal rule 
194
195
@----@
196
Display: 
197
198
----
199
200
201 1 Jean-Philippe Lang
h3. Predefined
202
203
To escape wiki syntax
204 58 Dieter Egert
<pre> <pre> *Your text won't become bold* </pre> </pre>
205 36 ha thach
Display:
206 37 ha thach
207 1 Jean-Philippe Lang
<pre> *Your text won't become bold* </pre>
208 38 ha thach
209
h3. Blockquotes
210 37 ha thach
211 84 Jean-Philippe Lang
Start the paragraph with *bq.*:
212 1 Jean-Philippe Lang
213
<pre><code>bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
214
To go live, all you need to add is a database and a web server.
215
</code></pre>
216
217 84 Jean-Philippe Lang
Displays:
218 1 Jean-Philippe Lang
219
bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
220
To go live, all you need to add is a database and a web server.
221
222 84 Jean-Philippe Lang
You can also use > at the beginning of each line and stack them for nested quotes:
223
224
<pre>
225 1 Jean-Philippe Lang
>> Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
226 84 Jean-Philippe Lang
>> To go live, all you need to add is a database and a web server.
227
> Great!
228
</pre>
229
230
Displays:
231
232
>>  Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
233
>>  To go live, all you need to add is a database and a web server.
234
> Great!
235 60 Dieter Egert
236 28 Jean-Philippe Lang
h3. Unordered lists
237
238
<pre>
239
* Item 1
240
* Item 2
241 29 Eric Gallimore
** Item 21
242
** Item 22
243 28 Jean-Philippe Lang
* Item 3
244
</pre>
245
246
displays:
247 1 Jean-Philippe Lang
248 28 Jean-Philippe Lang
* Item 1
249
* Item 2
250 29 Eric Gallimore
** Item 21
251 28 Jean-Philippe Lang
** Item 22
252
* Item 3
253 1 Jean-Philippe Lang
254
h3. Ordered lists
255
256 28 Jean-Philippe Lang
<pre>
257
# Item 1
258
# Item 2
259
# Item 3
260
## Item 3.1
261
## Item 3.2
262 1 Jean-Philippe Lang
</pre>
263 29 Eric Gallimore
264
displays:
265 1 Jean-Philippe Lang
266 20 Kirill Ponomarev
# Item 1
267
# Item 2
268
# Item 3
269 21 Andrew Chaika
## Item 3.1
270
## Item 3.2
271
272 1 Jean-Philippe Lang
h3. Tables
273
274
<pre>
275 91 Filou Centrinov
|_.UserID      |_.Name          |_.Group     |_. attribute list   |
276
|Starting with | a              |   simple   |row                 |
277
|\3=.IT                                      |<. align left       |
278
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
279
|2             |Vasya Rogov     |=. center   |
280
|3             |John Smith      |Admin
281
                                 (root)      |^. valign top       |
282
|4             |-               |Nobody
283
                                 (anonymous) |~. valign bottom    |
284 20 Kirill Ponomarev
</pre>
285 21 Andrew Chaika
286 1 Jean-Philippe Lang
displays (all multiple spaces are replaced by 1 space):
287
288 91 Filou Centrinov
|_.UserID      |_.Name          |_.Group     |_. attribute list   |
289
|Starting with | a              |   simple   |row                 |
290
|\3=.IT                                      |<. align left       |
291
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
292
|2             |Vasya Rogov     |=. center   |
293
|3             |John Smith      |Admin
294
                                 (root)      |^. valign top       |
295
|4             |-               |Nobody
296
                                 (anonymous) |~. valign bottom    |
297 1 Jean-Philippe Lang
298 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:
299
300
|_.Input |_. Output|
301
|*<notextile><notextile>|</notextile></notextile>*|<notextile>|</notextile>|
302
303 1 Jean-Philippe Lang
h3. Table of content
304
305
<pre><code>{{toc}} => left aligned toc
306
{{>toc}} => right aligned toc
307
</code></pre>
308 7 Jean-Philippe Lang
309 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.
310
311
Example:
312
313
<pre><code>
314
h1. headLineOne
315
316
h2. something
317
318
{{toc}}
319
320
h2. something more
321
</code></pre>
322
323 7 Jean-Philippe Lang
h2. Macros
324
325 82 Jean-Philippe Lang
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 alse includes a few builtin macros:
326 7 Jean-Philippe Lang
327
{{macro_list}}
328 1 Jean-Philippe Lang
329 4 Jean-Philippe Lang
h2. Code highlighting
330 51 Graham King
331 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.
332
333
You can highlight code in your wiki page using this syntax:
334
335 49 Dave Clements
<pre><code><pre><code class="ruby">
336 1 Jean-Philippe Lang
  Place your code here.
337 40 Mischa The Evil
</code></pre>
338 1 Jean-Philippe Lang
</code></pre>
339
340
Example:
341
342
<pre><code class="ruby">
343
# The Greeter class
344
class Greeter
345
  def initialize(name)
346
    @name = name.capitalize
347
  end
348
 
349
  def salute
350
    puts "Hello #{@name}!"
351
  end
352 40 Mischa The Evil
end
353 52 Vladimir Vasilkin
</code></pre>
354
355
h2. Translation
356 1 Jean-Philippe Lang
357 75 Caille Rotie
Note that the following translations may not be up to date. Please refer to the original english documentation if needed.
358 52 Vladimir Vasilkin
359 75 Caille Rotie
* [[RusRedmineTextFormatting|Перевод на русский]]
360
* [[FrRedmineWikiFormatting|French]]