# Wiki記法 (Markdown)

## Links

### Redmine内のリンク

RedmineはWiki記法が使える箇所のどこからでも、チケット・チェンジセット・Wikiページなどのリソースへのリンクができます。

- チケットへのリンク: #124 (終了したチケットは #124 のように取り消し線付きで表示されます)
- チケットへのリンク (トラッカー名と題名も表示): ##124 (表示例: Bug #124: bulk edit doesn't change the category or fixed version properties)
- チケットのコメントへのリンク: #124-6 または #124#note-6
- 同じチケット内のコメントへのリンク: #note-6

Wikiへのリンク:

- [[Guide]] "Guide"という名称のページへのリンク: Guide
- [[Guide#further-reading]] "Guide"というページ内の"further-reading"というアンカーに飛びます。見出しには自動的にアンカーが設定されるのでこのようにリンク先とすることができます: Guide
- [[#further-reading]] 同じページ内のアンカー"further-reading"へのリンク: #further-reading
- [[Guide|User manual]] "Guide"というページへのリンクを異なるテキストで表示: User manual

別のプロジェクトのwikiへのリンクも可能です:

- [[sandbox:some page]] sandboxというプロジェクトのwikiの"some page"という名称のページへのリンク
- [[sandbox:]] sanbdoxというプロジェクトのwikiのメインページへのリンク

存在しないwikiページへのリンクは赤で表示されます。 例: Nonexistent page.

そのほかのリソースへのリンク:

- 文書:
  - document#17 (id 17の文書へのリンク)
  - document:Greetings ("Greetings" というタイトルの文書へのリンク)
  - document:"Some document" (文書のタイトルに空白が含まれる場合はダブルクォーテーションで囲んでください)
  - sandbox:document:"Some document" ("sandbox" というプロジェクトの "Some document" というタイトルの文書へのリンク)

- バージョン:
  - version#3 (id 3のバージョンへのリンク)
  - version:1.0.0 ("1.0.0"という名称のバージョンへのリンク)
  - version:"1.0 beta 2"
  - sandbox:version:1.0.0 ("sandbox"というプロジェクトの "1.0.0" という名称のバージョンへのリンク)

- 添付ファイル:
  - attachment:file.zip (現在のオブジェクトに添付された file.zip というファイルへのリンク)
  - 現在のオブジェクト上の添付ファイルのみリンク先として指定できます (例えばあるチケットからは、そのチケットに添付されたファイルのみリンク先にできます)

- チェンジセット:
  - r758 (チェンジセットへのリンク)
  - commit:c6f4d0fd (ハッシュ値によるチェンジセットへのリンク)
  - svn1|r758 (複数のリポジトリが設定されたプロジェクトで、特定のリポジトリのチェンジセットへのリンク)
  - commit:hg|c6f4d0fd (ハッシュ値による、特定のリポジトリのチェンジセットへのリンク)
  - sandbox:r758 (他のプロジェクトのチェンジセットへのリンク)
  - sandbox:commit:c6f4d0fd (ハッシュ値による、他のプロジェクトのチェンジセットへのリンク)

- リポジトリ内のファイル:
  - source:some/file (プロジェクトのリポジトリ内の /some/file というファイルへのリンク)
  - source:some/file@52 (ファイルのリビジョン52へのリンク)
  - source:some/file#L120 (ファイルの120行目へのリンク)
  - source:some/file@52#L120 (リビジョン52のファイルの120行目へのリンク)
  - source:"some file@52#L120" (URLにスペースが含まれる場合はダブルクォーテーションで囲んでください)
  - export:some/file (ファイルのダウンロードを強制)
  - source:svn1|some/file (複数のリポジトリが設定されたプロジェクトで、特定のリポジトリのファイルへのリンク)
  - sandbox:source:some/file ("sandbox" というプロジェクトのリポジトリ上の /some/file というファイルへのリンク)
  - sandbox:export:some/file (ファイルのダウンロードを強制)

- フォーラム:
  - forum#1 (id 1のフォーラムへのリンク)
  - forum:Support ("Support"という名称のフォーラムへのリンク)
  - forum:"Technical Support" (フォーラム名に空白が含まれる場合はダブルクォーテーションで囲んでください)

- フォーラムのメッセージ:
  - message#1218 (id 1218のメッセージへのリンク)

- プロジェクト:
  - project#3 (id 3のプロジェクトへのリンク)
  - project:someproject ("someproject"という名称のプロジェクトへのリンク)
  - project:"some project" (プロジェクト名に空白が含まれる場合はダブルクォーテーションで囲んでください)

- ニュース:
  - news#2 (id 2のニュースへのリンク)
  - news:Greetings ("Greetings"というタイトルのニュースへのリンク)
  - news:"First Release" (タイトルに空白が含まれる場合はダブルクォーテーションで囲んでください)

- ユーザー:
  - user#2 (id 2のユーザーへのリンク)
  - user:jsmith (jsmith というログインIDのユーザーへのリンク)
  - @jsmith (jsmith というログインIDのユーザーへのリンク)

エスケープ:

- テキストをRedmineのリンクとして解釈させたくない場合は感嘆符 ! を前につけてください。

### 外部リンク

URL(starting with: www, http, https, ftp, ftps, sftp and sftps)とメールアドレスは自動的にリンクになります:

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

上記記述の表示例です: http://www.redmine.org, someone@foo.bar

URLのかわりに別のテキストを表示させたい場合は、通常のMarkdown記法が利用できます:

    [Redmine web site](http://www.redmine.org)

上記記述の表示例です: Redmine web site

## テキストの書式

見出し、太字、テーブル、リスト等は、RedmineはMarkdownでの記述に対応しています。Markdownの詳細は http://daringfireball.net/projects/markdown/syntax を参照してください。Markdownの一例を以下に示しますが、実際にはここで取り上げた以外の記法にも対応しています。

### 文字の書式

    * **太字**
    * *斜体*
    * ***太字で斜体***
    * ~~取り消し線~~

表示例:

- 太字
- 斜体
- 太字で斜体
- 取り消し線

### 画像

- ![](image_url) image_urlで指定されたURLの画像を表示 (Markdownの記法)
- Wikiページに添付された画像があれば、ファイル名を指定して画像を表示させることができます: ![](attached_image)
- PCのクリップボード内の画像は Ctrl-v または Command-v で直接貼り付けることができます。
- 画像ファイルをテキストエリアにドロップするとアップロードと画像の埋め込みが行われます。

### 見出し

    # Heading
    ## Subheading
    ### Subsubheading

Redmineは見出しにアンカーを設定するので、"#Heading", "#Subheading"のように記述して見出しへのリンクが行えます。

### 引用

段落を > で開始してください。

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

表示例:

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

### 目次

    {{toc}} => 目次(左寄せ)
    {{>toc}} => 目次(右寄せ)

### 区切り線

    ---

## マクロ

Redmineには以下の組み込みマクロが用意されています:

`hello_world`

  サンプルのマクロです。

`macro_list`

  利用可能なマクロの一覧を表示します。マクロの説明があればそれも表示します。

`child_pages`

  子ページの一覧を表示します。引数の指定が無ければ現在のwikiページの子ページを表示します。以下は使用例です:

      {{child_pages}} -- wikiページでのみ使用可能です
      {{child_pages(depth=2)}} -- 2階層分のみ表示します

`include`

  別のWikiページの内容を挿入します。 以下は使用例です:

      {{include(Foo)}}

  別プロジェクトのWikiページを挿入することもできます:

      {{include(projectname:Foo)}}

`collapse`

  折り畳まれた状態のテキストを挿入します。以下は使用例です:

      {{collapse(詳細を表示...)
      この部分はデフォルトでは折り畳まれた状態で表示されます。
      リンクをクリックすると展開されます。
      }}

`thumbnail`

  添付ファイルのクリック可能なサムネイル画像を表示します。以下は使用例です:

      {{thumbnail(image.png)}}
      {{thumbnail(image.png, size=300, title=Thumbnail)}}

`issue`

  チケットへのリンクをカスタマイズ可能なテキストとともに挿入します。以下は使用例です:

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

## コードハイライト

RedmineはRubyで記述されたシンタックスハイライト用ライブラリ Rouge を使用しています。Rougeは 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, yaml (yml) など一般的に使われている多数の言語に対応しています（括弧内の名前はコードハイライトの指定に利用できる別名です）。全対応言語の一覧は https://www.redmine.org/projects/redmine/wiki/RedmineCodeHighlightingLanguages を参照してください。

Wiki記法に対応している箇所であればどこでも以下の記述によりコードハイライトが利用できます (言語名・別名では大文字・小文字は区別されません):

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

表示例:

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

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