# Wiki formatting

## Links

### Redmine links

Redmine allows hyperlinking between issues, changesets and wiki pages from anywhere wiki formatting is used.

- Link to an issue: #124 (displays #124, link is striked-through if the issue is closed)
- Link to a changeset: r758 (displays r758)
- Link to a changeset with a non-numeric hash: commit:c6f4d0fd (displays c6f4d0fd). Added in r1236.

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 a different text: User manual

You can also link to pages of an other project wiki:

- [[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 others resources (0.7):

- 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)

- 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"

- Attachments:
  - attachment:file.zip (link to the attachment of the current object named file.zip)
  - 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)

- Repository files
  - source:some/file -- Link to the file located at /some/file in the project's repository
  - source:some/file@52 -- Link to the file's revision 52
  - 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
  - export:some/file -- Force the download of the file

Escaping (0.7):

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

### External links

HTTP URLs and email addresses are automatically turned into clickable links:

    http://www.redmine.org, someone@foo.bar

displays: http://www.redmine.org, someone@foo.bar

If you want to display a specific text instead of the URL, you can use the standard textile syntax:

    "Redmine web site":http://www.redmine.org

displays: Redmine web site

## Text formatting

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

### Font style

    * *bold*
    * _italic_
    * _*bold italic*_
    * +underline+
    * -strike-through-

Display:

- bold
- italic
- *bold italic*
- underline
- strike-through

### Inline images

- !image_url! displays an image located at image_url (textile syntax)
- !>image_url! right floating image
- If you have an image attached to your wiki page, it can be displayed inline using its filename: !attached_image.png!

### Headings

    h1. Heading
    h2. Subheading
    h3. Subsubheading

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

### Paragraphs

    p>. right aligned
    p=. centered

This is centered paragraph.

### 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.

Display:

> 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.

### Table of content

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

## Macros

Redmine has the following builtin macros:

`hello_world`

  Sample macro.

`include`

  Include a wiki page. Example:

      {{include(Foo)}}

`macro_list`

  Displays a list of all available macros, including description if available.

## Code highlighting

Code highlightment relies on CodeRay, a fast syntax highlighting library written completely in Ruby. It currently supports c, html, javascript, rhtml, ruby, scheme, xml languages.

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

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

Example:

     1 # The Greeter class
     2 class Greeter
     3   def initialize(name)
     4     @name = name.capitalize
     5   end
     6
     7   def salute
     8     puts "Hello #{@name}!"
     9   end
    10 end