Project

General

Profile

Actions

RedmineTextFormattingMarkdown » History » Revision 31

« Previous | Revision 31/32 (diff) | Next »
Piotr Robert Konopelko, 2021-09-24 19:47
Added information about how to patch Redmine to allow HTML tags in Markdown in all the places where it should be mentioned


Markdown formatting

Below is Markdown formatting. For Textile formatting see Textile formatting.
Currently HTML tags are not allowed by default. See #15520 and #20497 for details. For other limitations of the current Markdown formatting see #16373 and #21443.

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
  • [![Redmine web site](http://www.redmine.org/attachments/7069/Redmine_logo.png)](http://www.redmine.org) -- External image with a title that links to an URL:

Redmine web site

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: Email someone for help

Text formatting

For things such as headlines, bold, tables, lists, Redmine supports Markdown syntax. See http://daringfireball.net/projects/markdown/syntax, http://agea.github.io/tutorial.md/, http://stackoverflow.com/editing-help for information on using any of these features. A few samples are included below, but the engine is capable of much more of that. For conversions see Pandoc. The Redcarpet formatter is used.

Acronym

Not supported by Markdown

Font style

* **bold** __bold__
* *italic* _italic_
* ***bold italic*** ___bold italic___
* <ins>underline</ins>
* <del>strike through</del>
* Plain <sup>superscript</sup>
* Plain <sub>subscript</sub>
* `inline monospace`
* normal **bold** _italic_ normal;E=mc<sup>2</sup>
* normal<strong>bold</strong><em>italic</em>normal;E=mc<sup>2</sup>
* Escaping: \*\*bold\*\* \_italic\_ \`inlinemono\`
* <pre>**some lines**      some [link](http://www.redmine.org)</pre>
* <pre>\*\*some lines\*\*      some \[link](http\://www\.redmine\.org)</pre>

displays:

  • bold bold
  • italic italic
  • bold italic bold italic
  • underline
  • strike-through
  • Plain superscript
  • Plain subscript
  • inline monospace
  • normal bold italic normal;E=mc2
  • normalbolditalicnormal;E=mc2
  • Escaping: **bold** _italic_ `inlinemono`
  • some lines      some link
  • **some lines**      some [link](http://www.redmine.org)

Note: HTML tags need to be allowed to use the HTML tags (<strong>, <em>, <ins>, <del>, <sup>, <sub>). See #15520-16 and #15520-17 for details.
More explicitly, you need to patch redmine, as explained in this post

Color

* <span style="color:red">red</span> <span style="color:green">green</span> <span style="color:yellow">yellow</span> <span style="color:#82B6E1">blue'ish</span>
* <span style="color:red">red</span><span style="color:green">green</span><span style="color:yellow">yellow</span><span style="color:#82B6E1">blue'ish</span>
* <span style="background-color:lightgreen">Lightgreen Background</span> <span style="background-color:yellow">Yellow Background</span>
* <span style="background-color:lightgreen">Lightgreen Background</span><span style="background-color:yellow">Yellow Background</span>

displays:

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

Note: HTML tags need to be allowed to use the HTML tag (<span>). See #15520-16 and #15520-17 for details.
More explicitly, you need to patch redmine, as explained in this post

Inline images

  • ![](image_url) displays an image located at image_url (textile syntax)
  • ![alt text](image_url "optional 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).

As of this writing, Markdown has no syntax for specifying the dimensions of an image; if this is important to you, you can use regular HTML <img> tags.

  • <img style="float:right" src="URL"/>
  • <img style="width:100%" src="attached_image.png"/>

Note: HTML tags need to be allowed to use the HTML tag (<img>). See #15520-16 and #15520-17 for details.
More explicitly, you need to patch redmine, as explained in this post

Headings

# Heading

## Subheading

### Subheading

or

Heading
=======

Subheading
----------

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

Paragraphs

Markdown does not support alignment of a paragraph. Use <div> tags if you need it.

left aligned
<div style="padding-left:1em;">
left ident 1em
</div>

<div style="padding-left:2em;">
left ident 2em
as well as for following lines
</div>

<div style="text-align:right;">
right aligned
</div>

<div style="padding-right:3em;text-align:right;">
right ident 3em
</div>

<div style="text-align:center;">
This is centered paragraph.
</div>

displays;

left aligned

left ident 1em

left ident 2em
as well as for following lines

right aligned

right ident 3em

This is centered paragraph.

Note: HTML tags need to be allowed to use the HTML tags (<div>). See #15520-16 and #15520-17 for details.
More explicitly, you need to patch redmine, as explained in this post

Horizontal rule

----

displays:


Preformatted Text

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

displays:

**Your text won't become bold**

Blockquotes

You can 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

Unordered lists use asterisks (*), pluses (+), and hyphens (-) as list markers

* Item 1
* Item 2
  * Item 21 (two spaces indentation)
  * Item 22
* Item 3

displays:

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

Ordered lists

Ordered lists use numbers followed by periods.

1. Item 1
3. Item 2
2. Item 3
  1. Item 3.1 (two spaces)
  1. Item 3.2

displays:

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

Note that the actual numbers you use to mark the list have no effect on the output.

Tables

|UserID (align right)|Name (align left)|Group (align center)|
|-------------------:|:----------------|:------------------:|
|2                   |John Smith       |                    |
|3                   |Dave Lopper      |A Team              |
|4                   |Robert Hill      |B Team              |

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

UserID (align right) Name (align left) Group (align center)
2 John Smith
3 Dave Lopper A Team
4 Robert Hill B Team

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

A footnote works very much like a reference-style link: it consists of a marker next to the text, e.g.

This is a sentence.[^1]
and a footnote definition on its own line anywhere within the document, e.g.
[^1]: This is a footnote.

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:

``` ruby
Place your code here.
```

Example:

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

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

Translation

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

Updated by Piotr Robert Konopelko about 3 years ago · 31 revisions