RedmineTextFormatting » History » Version 100

DongSeok Oh, 2013-12-30 12:34

1 68 Jean-Philippe Lang
h1. Text formatting
2 1 Jean-Philippe Lang
3 1 Jean-Philippe Lang
{{>TOC}}
4 1 Jean-Philippe Lang
5 1 Jean-Philippe Lang
h2. Links
6 1 Jean-Philippe Lang
7 6 Jean-Philippe Lang
h3. Redmine links
8 6 Jean-Philippe Lang
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 51 Graham King
* *[[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 1 Jean-Philippe Lang
* *[[sandbox:]]* displays a link to the Sandbox wiki main page
26 1 Jean-Philippe Lang
27 1 Jean-Philippe Lang
Wiki links are displayed in red if the page doesn't exist yet, eg: [[Nonexistent page]].
28 1 Jean-Philippe Lang
29 32 Jean-Philippe Lang
Links to others resources:
30 6 Jean-Philippe Lang
31 6 Jean-Philippe Lang
* Documents:
32 6 Jean-Philippe Lang
33 6 Jean-Philippe Lang
  * *!document#17* (link to document with id 17)
34 6 Jean-Philippe Lang
  * *!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 6 Jean-Philippe Lang
* Versions:
39 6 Jean-Philippe Lang
40 6 Jean-Philippe Lang
  * *!version#3* (link to version with id 3)
41 6 Jean-Philippe Lang
  * *!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 1 Jean-Philippe Lang
  * *!attachment:file.zip* (link to the attachment of the current object named file.zip)
48 1 Jean-Philippe Lang
  * *!attachment:"file.zip"* (double quotes can be used when the filename contains non word characters)
49 1 Jean-Philippe Lang
  * 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 1 Jean-Philippe Lang
51 87 Olivier Pinette
* Changesets:
52 1 Jean-Philippe Lang
53 87 Olivier Pinette
  * *!r758* (link to a changeset)
54 87 Olivier Pinette
  * *!commit:c6f4d0fd* (link to a changeset with a non-numeric hash)
55 87 Olivier Pinette
  * *!svn1|r758* (link to a changeset of a specific repository, for projects with multiple repositories)
56 87 Olivier Pinette
  * *!commit:hg|c6f4d0fd* (link to a changeset with a non-numeric hash of a specific repository)
57 87 Olivier Pinette
  * *!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 87 Olivier Pinette
* Repository files:
61 87 Olivier Pinette
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 1 Jean-Philippe Lang
  * *!source:"some file@52#L120"* -- Double quotes can be used when the URL contains spaces  
67 1 Jean-Philippe Lang
  * *!source:repo_identifier|some/file* -- Link to a file in a repository other than the project default repository. 
68 1 Jean-Philippe Lang
  * *!source:"repo_identifier|some file"* -- Link to a file in a repository other than the project default repository, with spaces in the path. 
69 1 Jean-Philippe Lang
  * *!export:some/file*           -- Force the download of the file
70 1 Jean-Philippe Lang
 
71 96 Mischa The Evil
* Forums:
72 96 Mischa The Evil
73 96 Mischa The Evil
  * *!forum#2* (link to forum with id 2)
74 96 Mischa The Evil
  * *!forum:Discussion* (link to forum with name "Discussion")
75 96 Mischa The Evil
  * *!forum:"Help and more"* (double quotes can be used when forum name contains spaces)
76 96 Mischa The Evil
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 96 Mischa The Evil
* News items
82 96 Mischa The Evil
83 96 Mischa The Evil
  * *!news#1* (link to news item with id 1)
84 99 Mischa The Evil
  * *!news:Greetings* (link to news item with name "Greetings")
85 99 Mischa The Evil
  * *!news:"eCookbook first release !"* (double quotes can be used when news item name contains spaces)
86 87 Olivier Pinette
87 87 Olivier Pinette
* 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 6 Jean-Philippe Lang
* You can prevent Redmine links from being parsed by preceding them with an exclamation mark: !
96 6 Jean-Philippe Lang
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 47 Ian Epperson
* *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 1 Jean-Philippe Lang
p=. !http://www.redmine.org/attachments/7069/Redmine_logo.png(Redmine web site)!:http://www.redmine.org
108 83 Jean-Philippe Lang
109 83 Jean-Philippe Lang
h3. Email addresses
110 83 Jean-Philippe Lang
111 83 Jean-Philippe Lang
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 48 Ian Epperson
* *"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 48 Ian Epperson
* *"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 48 Ian Epperson
* *"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 48 Ian Epperson
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 38 ha thach
126 38 ha thach
<pre>
127 38 ha thach
JPL(Jean-Philippe Lang)
128 38 ha thach
</pre>
129 38 ha thach
130 38 ha thach
Display:
131 38 ha thach
132 38 ha thach
JPL(Jean-Philippe Lang)
133 38 ha thach
134 1 Jean-Philippe Lang
h3. Font style
135 1 Jean-Philippe Lang
136 1 Jean-Philippe Lang
<pre><code>* *bold*
137 1 Jean-Philippe Lang
* _italic_
138 19 Pavel Schichko
* *_bold italic_*
139 1 Jean-Philippe Lang
* +underline+
140 1 Jean-Philippe Lang
* -strike-through-
141 45 Ian Epperson
* Plain ^superscript^
142 45 Ian Epperson
* Plain ~subscript~
143 63 Colin Sullivan
* @inline monospace@
144 1 Jean-Philippe Lang
</code></pre>
145 1 Jean-Philippe Lang
146 1 Jean-Philippe Lang
Display:
147 1 Jean-Philippe Lang
148 1 Jean-Philippe Lang
 * *bold*
149 1 Jean-Philippe Lang
 * _italic_
150 19 Pavel Schichko
 * *_bold italic_*
151 1 Jean-Philippe Lang
 * +underline+
152 1 Jean-Philippe Lang
 * -strike-through-
153 45 Ian Epperson
 * Plain ^superscript^
154 45 Ian Epperson
 * Plain ~subscript~
155 63 Colin Sullivan
 * @inline monospace@
156 1 Jean-Philippe Lang
157 1 Jean-Philippe Lang
h3. Inline images
158 9 Jean-Philippe Lang
159 1 Jean-Philippe Lang
* *&#33;image_url&#33;* displays an image located at image_url (textile syntax)
160 1 Jean-Philippe Lang
* *&#33;>image_url&#33;* right floating image
161 66 Jean-Philippe Lang
* *&#33;image_url(Image title)&#33;* displays an image with an alt/title attribute
162 73 Dieter Egert
* *&#33;image_url&#33;:URL* displays an image located at image_url with link URL added
163 18 samir djouadi
164 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;*
165 1 Jean-Philippe Lang
166 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.
167 80 Caio Cunha
168 1 Jean-Philippe Lang
h3. Headings
169 1 Jean-Philippe Lang
170 1 Jean-Philippe Lang
<pre><code>h1. Heading
171 1 Jean-Philippe Lang
172 1 Jean-Philippe Lang
h2. Subheading
173 66 Jean-Philippe Lang
174 1 Jean-Philippe Lang
h3. Subheading
175 66 Jean-Philippe Lang
</code></pre>
176 87 Olivier Pinette
177 87 Olivier Pinette
Redmine assigns an anchor to each of those headings thus you can link to them with "#Heading", "#Subheading" and so forth.
178 1 Jean-Philippe Lang
179 1 Jean-Philippe Lang
h3. Paragraphs
180 1 Jean-Philippe Lang
181 58 Dieter Egert
<pre><code>p. left aligned
182 58 Dieter Egert
183 60 Dieter Egert
  p(. left ident 1em
184 58 Dieter Egert
185 60 Dieter Egert
    p((. left ident 2em
186 60 Dieter Egert
    as well as for following lines
187 58 Dieter Egert
188 60 Dieter Egert
                                                                                   p>. right aligned
189 58 Dieter Egert
190 60 Dieter Egert
                                                                        p)))>. right ident 3em
191 58 Dieter Egert
192 60 Dieter Egert
                           p=. This is centered paragraph.
193 1 Jean-Philippe Lang
</code></pre>
194 1 Jean-Philippe Lang
195 90 Olivier Pinette
h3. Horizontal rule 
196 90 Olivier Pinette
197 90 Olivier Pinette
@----@
198 90 Olivier Pinette
Display: 
199 90 Olivier Pinette
200 90 Olivier Pinette
----
201 90 Olivier Pinette
202 90 Olivier Pinette
203 1 Jean-Philippe Lang
h3. Predefined
204 1 Jean-Philippe Lang
205 1 Jean-Philippe Lang
To escape wiki syntax
206 58 Dieter Egert
<pre> <pre> *Your text won't become bold* </pre> </pre>
207 36 ha thach
Display:
208 37 ha thach
209 1 Jean-Philippe Lang
<pre> *Your text won't become bold* </pre>
210 38 ha thach
211 38 ha thach
h3. Blockquotes
212 37 ha thach
213 84 Jean-Philippe Lang
Start the paragraph with *bq.*:
214 1 Jean-Philippe Lang
215 1 Jean-Philippe Lang
<pre><code>bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
216 1 Jean-Philippe Lang
To go live, all you need to add is a database and a web server.
217 1 Jean-Philippe Lang
</code></pre>
218 1 Jean-Philippe Lang
219 84 Jean-Philippe Lang
Displays:
220 1 Jean-Philippe Lang
221 1 Jean-Philippe Lang
bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
222 1 Jean-Philippe Lang
To go live, all you need to add is a database and a web server.
223 1 Jean-Philippe Lang
224 84 Jean-Philippe Lang
You can also use > at the beginning of each line and stack them for nested quotes:
225 84 Jean-Philippe Lang
226 84 Jean-Philippe Lang
<pre>
227 1 Jean-Philippe Lang
>> Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
228 84 Jean-Philippe Lang
>> To go live, all you need to add is a database and a web server.
229 84 Jean-Philippe Lang
> Great!
230 84 Jean-Philippe Lang
</pre>
231 84 Jean-Philippe Lang
232 84 Jean-Philippe Lang
Displays:
233 84 Jean-Philippe Lang
234 84 Jean-Philippe Lang
>>  Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
235 84 Jean-Philippe Lang
>>  To go live, all you need to add is a database and a web server.
236 84 Jean-Philippe Lang
> Great!
237 60 Dieter Egert
238 28 Jean-Philippe Lang
h3. Unordered lists
239 28 Jean-Philippe Lang
240 28 Jean-Philippe Lang
<pre>
241 28 Jean-Philippe Lang
* Item 1
242 28 Jean-Philippe Lang
* Item 2
243 29 Eric Gallimore
** Item 21
244 29 Eric Gallimore
** Item 22
245 28 Jean-Philippe Lang
* Item 3
246 28 Jean-Philippe Lang
</pre>
247 28 Jean-Philippe Lang
248 28 Jean-Philippe Lang
displays:
249 1 Jean-Philippe Lang
250 28 Jean-Philippe Lang
* Item 1
251 28 Jean-Philippe Lang
* Item 2
252 29 Eric Gallimore
** Item 21
253 28 Jean-Philippe Lang
** Item 22
254 28 Jean-Philippe Lang
* Item 3
255 1 Jean-Philippe Lang
256 1 Jean-Philippe Lang
h3. Ordered lists
257 1 Jean-Philippe Lang
258 28 Jean-Philippe Lang
<pre>
259 28 Jean-Philippe Lang
# Item 1
260 28 Jean-Philippe Lang
# Item 2
261 28 Jean-Philippe Lang
# Item 3
262 28 Jean-Philippe Lang
## Item 3.1
263 28 Jean-Philippe Lang
## Item 3.2
264 1 Jean-Philippe Lang
</pre>
265 29 Eric Gallimore
266 29 Eric Gallimore
displays:
267 1 Jean-Philippe Lang
268 20 Kirill Ponomarev
# Item 1
269 20 Kirill Ponomarev
# Item 2
270 20 Kirill Ponomarev
# Item 3
271 21 Andrew Chaika
## Item 3.1
272 21 Andrew Chaika
## Item 3.2
273 21 Andrew Chaika
274 1 Jean-Philippe Lang
h3. Tables
275 1 Jean-Philippe Lang
276 1 Jean-Philippe Lang
<pre>
277 91 Filou Centrinov
|_.UserID      |_.Name          |_.Group     |_. attribute list   |
278 91 Filou Centrinov
|Starting with | a              |   simple   |row                 |
279 91 Filou Centrinov
|\3=.IT                                      |<. align left       |
280 91 Filou Centrinov
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
281 91 Filou Centrinov
|2             |Vasya Rogov     |=. center   |
282 91 Filou Centrinov
|3             |John Smith      |Admin
283 91 Filou Centrinov
                                 (root)      |^. valign top       |
284 91 Filou Centrinov
|4             |-               |Nobody
285 91 Filou Centrinov
                                 (anonymous) |~. valign bottom    |
286 20 Kirill Ponomarev
</pre>
287 21 Andrew Chaika
288 1 Jean-Philippe Lang
displays (all multiple spaces are replaced by 1 space):
289 1 Jean-Philippe Lang
290 91 Filou Centrinov
|_.UserID      |_.Name          |_.Group     |_. attribute list   |
291 91 Filou Centrinov
|Starting with | a              |   simple   |row                 |
292 91 Filou Centrinov
|\3=.IT                                      |<. align left       |
293 91 Filou Centrinov
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
294 91 Filou Centrinov
|2             |Vasya Rogov     |=. center   |
295 91 Filou Centrinov
|3             |John Smith      |Admin
296 91 Filou Centrinov
                                 (root)      |^. valign top       |
297 91 Filou Centrinov
|4             |-               |Nobody
298 91 Filou Centrinov
                                 (anonymous) |~. valign bottom    |
299 1 Jean-Philippe Lang
300 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:
301 78 Thomas Themel
302 78 Thomas Themel
|_.Input |_. Output|
303 78 Thomas Themel
|*<notextile><notextile>|</notextile></notextile>*|<notextile>|</notextile>|
304 78 Thomas Themel
305 1 Jean-Philippe Lang
h3. Table of content
306 1 Jean-Philippe Lang
307 1 Jean-Philippe Lang
<pre><code>{{toc}} => left aligned toc
308 1 Jean-Philippe Lang
{{>toc}} => right aligned toc
309 1 Jean-Philippe Lang
</code></pre>
310 7 Jean-Philippe Lang
311 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.
312 79 Mike Bison
313 79 Mike Bison
Example:
314 79 Mike Bison
315 79 Mike Bison
<pre><code>
316 79 Mike Bison
h1. headLineOne
317 79 Mike Bison
318 79 Mike Bison
h2. something
319 79 Mike Bison
320 79 Mike Bison
{{toc}}
321 79 Mike Bison
322 79 Mike Bison
h2. something more
323 79 Mike Bison
</code></pre>
324 79 Mike Bison
325 7 Jean-Philippe Lang
h2. Macros
326 7 Jean-Philippe Lang
327 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:
328 7 Jean-Philippe Lang
329 7 Jean-Philippe Lang
{{macro_list}}
330 1 Jean-Philippe Lang
331 4 Jean-Philippe Lang
h2. Code highlighting
332 51 Graham King
333 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.
334 1 Jean-Philippe Lang
335 1 Jean-Philippe Lang
You can highlight code in your wiki page using this syntax:
336 1 Jean-Philippe Lang
337 49 Dave Clements
<pre><code><pre><code class="ruby">
338 1 Jean-Philippe Lang
  Place your code here.
339 40 Mischa The Evil
</code></pre>
340 1 Jean-Philippe Lang
</code></pre>
341 1 Jean-Philippe Lang
342 1 Jean-Philippe Lang
Example:
343 1 Jean-Philippe Lang
344 1 Jean-Philippe Lang
<pre><code class="ruby">
345 1 Jean-Philippe Lang
# The Greeter class
346 1 Jean-Philippe Lang
class Greeter
347 1 Jean-Philippe Lang
  def initialize(name)
348 1 Jean-Philippe Lang
    @name = name.capitalize
349 1 Jean-Philippe Lang
  end
350 1 Jean-Philippe Lang
 
351 1 Jean-Philippe Lang
  def salute
352 1 Jean-Philippe Lang
    puts "Hello #{@name}!"
353 1 Jean-Philippe Lang
  end
354 40 Mischa The Evil
end
355 52 Vladimir Vasilkin
</code></pre>
356 52 Vladimir Vasilkin
357 52 Vladimir Vasilkin
h2. Translation
358 1 Jean-Philippe Lang
359 75 Caille Rotie
Note that the following translations may not be up to date. Please refer to the original english documentation if needed.
360 52 Vladimir Vasilkin
361 75 Caille Rotie
* [[RusRedmineTextFormatting|Перевод на русский]]
362 75 Caille Rotie
* [[FrRedmineWikiFormatting|French]]
363 100 DongSeok Oh
* [[KoreanWikiFormatting|Korean]]