Project

General

Profile

Actions

Textile formatting

Below is Textile formatting. For Markdown formatting see RedmineTextFormattingMarkdown.
For limitations of current Textile support see #6269, #10078 (Definition Lists).

Links

Redmine links

Redmine allows hyperlinking between resources (wiki pages, issues, documents...) from anywhere text formatting is used.

Wiki links:

  • [[Guide]] displays a link to the page named 'Guide': Guide
  • [[Guide#further-reading]] takes you to the anchor "further-reading". Headings get automatically assigned anchors so that you can refer to them: Guide
  • [[Guide|User manual]] displays a link to the same page but with different text: User manual
  • [[Guide#User-guide|User guide]] displays a link to the header on the same page with different text: User guide

You can also link to pages of another project's wiki (using the project identifier):

  • [[sandbox:some page]] displays a link to the page named 'Some page' of the Sandbox wiki
  • [[sandbox:]] displays a link to the Sandbox wiki main page

Wiki links are displayed in red if the page doesn't exist yet, eg: Nonexistent page.

Links to other resources:

  • Issues:
    • #124 (link to an issue: displays #124, link is striked-through if the issue is closed)
    • #124-6, or #124#note-6 (link to an issue note: displays #124-6, or #124#note-6)
  • Documents:
    • document#17 (link to document with id 17)
    • document:Greetings (link to the document with title "Greetings")
    • document:"Some document" (double quotes can be used when document title contains spaces)
    • sandbox:document:"Some document" (link to a document with title "Some document" in project identifier "sandbox")
  • Versions:
    • version#3 (link to version with id 3)
    • version:1.0.0 (link to version named "1.0.0")
    • version:"1.0 beta 2" (double quotes can be used when version name contains spaces)
    • sandbox:version:1.0.0 (link to version "1.0.0" in the project identifier "sandbox")
  • Attachments:
    • attachment:file.zip (link to the attachment of the current object named file.zip)
    • attachment:"file name.zip" (double quotes can be used when the filename contains non word characters)
    • 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)
  • Changesets:
    • r758 (link to a changeset, displays r758)
    • commit:c6f4d0fd (link to a changeset with a non-numeric hash)
    • svn1|r758 (link to a changeset of a specific repository, for projects with multiple repositories)
    • commit:hg|c6f4d0fd (link to a changeset with a non-numeric hash of a specific repository)
    • sandbox:r758 (link to a changeset of another project)
    • sandbox:commit:c6f4d0fd (link to a changeset with a non-numeric hash of another project identifier)
  • Repository files:
    • source:some/file (link to the file located at /some/file in the project's repository)
    • source:"some file" (link to the file with non word characters in the path)
    • source:some/file@52 (link to the file's revision 52)
    • source:some/file@master (link to the file in branch master)
    • source:some/file#L120 (link to line 120 of the file)
    • source:some/file@52#L120 (link to line 120 of the file's revision 52)
    • source:repo_identifier|some/file (link to a file of a specific repository, for projects with multiple repositories)
    • sandbox:source:some/file (link to the file in the project identifier "sandbox")
    • sandbox:source:repo_identifier|some/file (link to the file, with non word characters in the path, of a specific repository in the project identifier "sandbox")
    • export:some/file (force the download of the file)
  • Forums:
    • forum#2 (link to forum with id 2)
    • forum:Discussion (link to forum with name "Discussion")
    • forum:"Help and more" (double quotes can be used when forum name contains spaces)
  • Forum messages:
    • message#1218 (link to message with id 1218)
  • News items
    • news#1 (link to news item with id 1)
    • news:Greetings (link to news item with name "Greetings")
    • news:"eCookbook first release !" (double quotes can be used when news item name contains spaces)
  • Projects:
    • project#3 (link to project with id 3)
    • project:someproject (link to project with name "someproject")
    • project:"Multiple words project" (double quotes can be used when project name contains spaces)
  • Users:
    • Thomas Lecavelier (link to user with id 2)
    • user:jsmith (Link to user with login "jsmith")
    • @jsmith (Link to user with login "jsmith")

Escaping:

  • You can prevent Redmine links from being parsed by preceding them with an exclamation mark: !

External links

URLs (http, https, ftp and ftps) are automatically turned into clickable links: URLs can also use different text than the link itself:
  • "Redmine web site":http://www.redmine.org -- External link with different text: Redmine web site
  • !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:

Redmine web site

File URI can be used to link UNC path:
  • "\\server\share$":file://///server/share%24 -- File URI showing UNC path: \\server\share$
    You should URL Encodings for special characters like empty space, $, á, é, í, ó, ú, etc.

Email addresses

Email addresses are automatically turned into clickable links:

  • someone@foo.bar -- Link to an email address:
  • "Email someone":mailto:someone@foo.bar -- Email link with different text: Email someone
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.
  • "Email webmaster and admin":mailto:webmaster@foo.bar?cc=admin@foo.bar -- Email to webmaster, CC admin: Email webmaster and admin
  • "Email someone for help":mailto:someone@foo.bar?subject=Website%20Help -- Email link with the subject "Website Help": Email someone for help
  • "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: My problem is

Text formatting

For things such as headlines, bold, tables, lists, Redmine supports Textile syntax. 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.

Acronym

JPL(Jean-Philippe Lang)

displays:

JPL

Font style

* *bold*
* _italic_
* *_bold italic_*
* +underline+
* -strike-through-
* Plain ^superscript^
* Plain ~subscript~
* @inline monospace@
* normal *bold* _italic_ normal;E=mc ^2^
* normal<notextile></notextile>*bold*<notextile></notextile>_italic_<notextile></notextile>normal;E=mc<notextile></notextile>^2^
* Escaping: <notextile>*bold* _italic_ @inlinemono@</notextile> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alternative using HTML-codes: &#42;bold&#42; &#95;italic&#95; &#64;inlinemono&#64;
* <pre>*some lines*      some "link":http://www.redmine.org</pre>
* <pre><notextile></notextile>*some lines*      some "link":http://www.redmine.org</pre>

displays:

  • bold
  • italic
  • bold italic
  • underline
  • strike-through
  • Plain superscript
  • Plain subscript
  • inline monospace
  • normal bold italic normal;E=mc 2
  • normalbolditalicnormal;E=mc2
  • Escaping: *bold* _italic_ @inlinemono@       Alternative using HTML-codes: *bold* _italic_ @inlinemono@
  • *some lines*      some "link":http://www.redmine.org
  • some lines      some link

Color

* %{color:red}red% %{color:green}green% %{color:yellow}yellow% %{color:#82B6E1}blue'ish%
* %{color:red}red%<notextile></notextile>%{color:green}green%<notextile></notextile>%{color:yellow}yellow%<notextile></notextile>%{color:#82B6E1}blue'ish%
* %{background:lightgreen}Lightgreen Background% %{background:yellow}Yellow Background%
* %{background:lightgreen}Lightgreen Background%<notextile></notextile>%{background:yellow}Yellow Background%

displays:

  • red green yellow blue'ish
  • redgreenyellowblue'ish
  • Lightgreen Background Yellow Background
  • Lightgreen BackgroundYellow Background

Inline images

  • !image_url! displays an image located at image_url (textile syntax)
  • !>image_url! right floating image
  • !image_url(Image title)! displays an image with an alt/title attribute
  • !image_url!:URL displays an image located at image_url with link URL added

If you have an image attached to your wiki page, it can be displayed inline using its filename: !attached_image.png!

You can also apply a CSS style to the image in the same ways as styling SPANs. The code !{width: 100%}attached_image.png! will make the image adjusts to the parent's width.

Headings

h1. Heading

h2. Subheading

h3. Subheading

Redmine assigns an anchor to each of those headings thus you can link to them with "#Heading", "#Subheading" and so forth.

Paragraphs

p. left aligned

p(. left ident 1em

p((. left ident 2em
as well as for following lines

p>. right aligned

p)))>. right ident 3em

p=. This is centered paragraph.

displays;

left aligned

left ident 1em

left ident 2em
as well as for following lines

right aligned

right ident 3em

This is centered paragraph.

Horizontal rule

----

displays:


Preformatted Text

 <pre>*Your text won't become bold*</pre> 

displays:

 *Your text won't become bold* 

Blockquotes

Start the paragraph with bq.:

bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
To go live, all you need to add is a database and a web server.

displays:

Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
To go live, all you need to add is a database and a web server.

You can also use > at the beginning of each line and stack them for nested quotes:

>> Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
>> To go live, all you need to add is a database and a web server.
> Great!

displays:

Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
To go live, all you need to add is a database and a web server.

Great!

Unordered lists

* Item 1
* Item 2
** Item 21
** Item 22
* Item 3

displays:

  • Item 1
  • Item 2
    • Item 21
    • Item 22
  • Item 3

Ordered lists

# Item 1
# Item 2
# Item 3
## Item 3.1
## Item 3.2

displays:

  1. Item 1
  2. Item 2
  3. Item 3
    1. Item 3.1
    2. Item 3.2

Tables

|_.UserID      |_.Name          |_.Group     |_. attribute list   |
|Starting with | a              |   simple   |row                 |
|\3=.IT                                      |<. align left       |
|1             |Artur Pirozhkov |/2.Users    |>. align right      |
|2             |Vasya Rogov     |=. center   |
|3             |John Smith      |Admin
                                 (root)      |^. valign top       |
|4             |-               |Nobody
                                 (anonymous) |~. valign bottom    |

displays (all multiple spaces are replaced by 1 space):

UserID Name Group attribute list
Starting with a simple row
IT align left
1 Artur Pirozhkov Users align right
2 Vasya Rogov center
3 John Smith Admin
(root)
valign top
4 - Nobody
(anonymous)
valign bottom

If you want to include pipe characters inside your table (e.g. for Wiki links), you need to prevent textile from interpreting them:

Input Output
<notextile>|</notextile> |

If you want to specify the width of the table, you need to put table{width:100%}. just before your table definition:

table{width:100%}.
| This table will use
all horizontal space |

This way the table will extend to the whole page width ...

This table will use
all horizontal space

... compared with the standard width:

This table will use
only the required space

Table of content

{{toc}} => left aligned toc
{{>toc}} => right aligned toc

Please keep in mind, that the toc-tag needs an empty line above and underneath it and no other text before and after it.

Example:


h1. headLineOne

h2. something

{{toc}}

h2. something more

Footnotes

Marker:

This is a first word[1] with a footnote.

This is a second word[2] with a footnote.

Note: Marker directly attached to word (no space, no dot or any thing else in between).

Definition:

fn1. Footnote for the first word

fn2. Footnote for the second word

Note: Each definition on its own line anywhere within the document. Empty lines between definitions.

displays:

This is a first word1 with a footnote.

This is a second word2 with a footnote.

1 Footnote for the first word

2 Footnote for the second word

Macros

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:

hello_world
Sample macro.
macro_list
Displays a list of all available macros, including description if available.
child_pages
Displays a list of child pages. With no argument, it displays the child pages of the current wiki page. Examples:

{{child_pages}} -- can be used from a wiki page only
{{child_pages(depth=2)}} -- display 2 levels nesting only
{{child_pages(Foo)}} -- lists all children of page Foo
{{child_pages(Foo, parent=1)}} -- same as above with a link to page Foo
include
Includes a wiki page. Examples:

{{include(Foo)}}
{{include(projectname:Foo)}} -- to include a page of a specific project wiki
collapse
Inserts of collapsed block of text. Examples:

{{collapse
This is a block of text that is collapsed by default.
It can be expanded by clicking a link.
}}

{{collapse(View details...)
With custom link text.
}}
thumbnail
Displays a clickable thumbnail of an attached image.
Default size is 200 pixels. Examples:

{{thumbnail(image.png)}}
{{thumbnail(image.png, size=300, title=Thumbnail)}} -- with custom title and size
issue
Displays an issue link including additional information. Examples:

{{issue(123)}}                              -- Issue #123: Enhance macro capabilities
{{issue(123, project=true)}}                -- Andromeda - Issue #123: Enhance macro capabilities
{{issue(123, tracker=false)}}               -- #123: Enhance macro capabilities
{{issue(123, subject=false, project=true)}} -- Andromeda - Issue #123
sample_macro
Sample macro

Code highlighting

Default code highlightment relies on Rouge, a syntax highlighting library written in pure Ruby. It supports many commonly used languages such as c, cpp (c++), csharp (c#, cs), css, diff (patch, udiff), go (golang), groovy, html, java, javascript (js), kotlin, objective_c (objc), perl (pl), php, python (py), r, ruby (rb), sass, scala, shell (bash, zsh, ksh, sh), sql, swift, xml and yaml (yml) languages, where the names inside parentheses are aliases. Please refer to RedmineCodeHighlightingLanguages for the full list of supported languages.

You can highlight code in your wiki page using this syntax:

<pre><code class="ruby">
  Place your code here.
</code></pre>

Example:

# The Greeter class
class Greeter
  def initialize(name)
    @name = name.capitalize
  end

  def salute
    puts "Hello #{@name}!" 
  end
end

Styling text using CSS

Textile can style text using CSS. Examples as follows:

Three primary colors of light are %{color: #f00}red%, %{color: #0f0}green% and %{color: #00f}blue%.

p{border: solid 1px #000; padding: 0.5em;}. The quick brown fox jumps over the lazy dog.

table{width: 100%}.
|={width: 30%; background-color: #aaf;}. column 1 |={width: 70%}. column 2 |

displays:

Three primary colors of light are red, green and blue.

The quick brown fox jumps over the lazy dog.

column 1 column 2

Allowed CSS properties

Redmine allows the following properties. Other properties are not allowed for security reasons (see r2192).

  • background
  • background-*
  • border
  • border-*
  • color
  • float
  • font
  • font-*
  • height
  • margin
  • margin-*
  • max-height
  • max-width
  • min-height
  • min-width
  • padding
  • padding-*
  • text
  • text-*
  • width

Translation

Note that the following translations may not be up to date. Please refer to the original english documentation if needed.

Updated by Andrea Ludin about 2 years ago · 14 revisions