http://commonmark.org/ - markdown 표준화 프로젝트

What is Markdown?

Markdown is a plain text format for writing structured documents, based on conventions used for indicating formatting in email and usenet posts. It was developed in 2004 byJohn Gruber, who wrote the first markdown-to-html converter in Perl, and it soon became widely used in websites. By 2014 there were dozens of implementations in many languages.

Why is a spec needed?

John Gruber’s canonical description of Markdown’s syntax does not specify the syntax unambiguously.

In the absence of a spec, early implementers consulted the original Markdown.pl code to resolve these ambiguities. But Markdown.pl was quite buggy, and gave manifestly bad results in many cases, so it was not a satisfactory replacement for a spec.

이슈나 위키 문서를 작성할 때 구문 강조와 포맷팅의 적절한 사용은 읽는 이의 가독성을 높여주는 중요한 작업이다.  

레드마인은 이를 위해 텍스타일(Textile) 이라는 포맷팅 문법을 지원하고 있으며 이 문법에 따라 작성했을 경우 이를 형식화하여 보기 좋은 문서를 만들어 주고 있다.

단점이라면 전문 워드프로세서처럼 위지위그(WYSIWYG: What You See Is What You Get, "보는 대로 얻는다") 방식의 손쉬운 편집기를 지원하지 않고 전용 문법을 사용해야 하므로 익히기가 어렵고 문법이 다른 툴을 사용하게 되면 새로 익혀야 하는 점이다.

특히 개발자들이 많이 사용하는 github 나 gitlab 의 경우 Textile 이 아닌 Markdown 형식의 문법을 지원하므로 레드마인과 같이 사용할 경우 수정이 필요할 수 있다.

하지만 전용 문법에 익숙해지면 위지위그 방식에 비해 작업 속도가 매우 빨라진다는 장점이 있다. 이슈 등록나 위키 문서 등록시 꼭 필요한 기능이므로 이 절에서는 텍스타일에 대해서 간략하게 알아보자.

텍스타일 포맷팅

이슈 작성, 게시판, 뉴스, 위키등 레드마인에서 작성하는 모든 문서는 텍스타일 문법을 지원하고 있다. 텍스타일은 포맷팅이 필요한 곳에 전용 태그를 삽입하고 렌더링 엔진이 이를 적절한 HTML 코드로 변환하여 표시하는 방식을 취하고 있다.

글꼴 및 불릿

구문텍스타일 문법예제결과
볼드체* 표를 볼드체로 표시할 문장 앞 뒤에 붙여준다.*볼드체*볼드체
이탤릭 체언더바(_) 를 앞 뒤에 붙여 준다._이탤릭체_이탤릭체
문자열에 밑줄 긋기플러스 기호(+) 를 앞 뒤에 붙여 준다.+Underline text+Underline text
코드 작성Inline code  
불릿 리스트* 표를 맨 앞에 붙여준다. *는 맨 앞이어야 하며 앞에 공백이 있으면 안 된다.* 아이템1
* 아이템2 
  • 아이템 1
  • 아이템 2
숫자 리스트# 을 맨 앞에 붙여준다. 불릿처럼 맨 앞이어야 한다.

# 아이템1

# 아이템2

  1. 아이템1
  2. 아이템2
머릿글(Heading)h 뒤에 머릿글의 숫자를 적고 .을 찍어 준다. h1. 에서 h6. 까지 있다.

h1. Heading 1

h2. Heading 2

h3. Heading 3

h4. Heading 4

h5. Heading 5

h6. Heading 6

글꼴 및 불릿 문법

코드 및 문법 강조

구문텍스타일 문법예제결과
Prefomatted Text텍스타일 포맷팅을 적용하지 않으려면 해당 문장을 <pre> 태그에 넣는다.

<pre>

*볼드체*

_이탤릭체_

</pre>

*볼드체*

_이탤릭체_

링크http://example.com 처럼 링크할 주소를 바로 써 주면 된다. 링크 텍스트를 주소대신 다른 문자열로 표시하려면
"Foo":http://example.com 처럼 표시 문자열을 앞에 써주고 : 뒤에 URL 을 적어준다.
"Foo":http://example.comFoo
페이지내에 이미지 포함이미지가 있는 URL 앞 뒤에 느낌표(!) 를 적어 준다. 페이지에 첨부된 이미지를 표시할 경우는 이미지 명을 적는다.!http://example.com/img.png!
!스크린샷1.png!
 
구문 강조(Syntax Highlighting)Java나 SQL 처럼 특정 언어를 구문 강조할 경우 <pre><code class="ruby"> 같이 사용한다.아래 예제 참고 

class 에 구문 강조하려는 언어의 이름을 적어 주면 되며 현재 c, cpp, css, delphi, groovy, html, java, javascript, json, php, python, rhtml, ruby, scheme, sql, xml 과 yaml 을 지원하고 있다.

예제결과
<pre><code class="ruby">
group :unicorn do gem "unicorn", '~> 4.6.3'
gem 'unicorn-worker-killer'
end
</code></pre>
<pre><code class="sql">
SELECT last_name, first_name
FROM hr.employees
WHERE last_name LIKE 'K%'
ORDER BY last_name, first_name;
</code></pre>

<pre><code class="java">
public class HelloWorld {

public static void main(String[] args) {
System.out.println("Hello, World");
}

}
</code></pre>

문법 강조

이슈와 커밋 링크

링크는 레드마인의 이슈나 커밋, 위키, 버전 등을 연결하기 위한 중요한 문법이니 잘 익혀 두자.

구문텍스타일 문법예제비고
위키 페이지 링크레드마인 위키 페이지를 링크할 경우 링크 페이지 명 앞에 [[ 를 뒤에 ]] 를 적어 준다.
  • [[설치 매뉴얼]]
  • [[otherproj:설치 매뉴얼]]
  • "설치 매뉴얼"이라는 위키 페이지를 링크한다.
  • otherproj 라는 프로젝트의 "설치 매뉴얼" 위키를 링크한다.
이슈 링크본문에 다른 이슈를 링크할 경우 # 뒤에 링크할 이슈 번호를 적어 주면 해당 이슈에 대한 링크가 자동 생성된다.
  • 이슈 #13 링크
  • 이슈  노트 #13-4 링크
  • 번호가 13번인 이슈와 링크한다.
  • 13번 이슈의 4번 노트와 링크한다.
프로젝트 링크다른 프로젝트를 링크할 경우 project:proj_name 형식으로 작성해 준다. proj_name 에는 해당 프로젝트 이름이 들어간다.프로젝트 project:test 링크 
커밋 링크버전 관리 시스템의 특정 커밋을 연결할 수 있다.
  • r758
  • commit:c6f4d0fd
  • svn1|r758
  • otherproj:r758
  • otherproj:commit:c6f4d0fd
  • 리비전 758 커밋 링크
  • 해시가 c6f4d0fd인 커밋 링크
  • 서브버전의 특정 저장소(svn1)의 특정 리비전 링크
  • 다른 프로젝트(otherproj)의 리비전 758 링크
  • 다른 프로젝트의 커밋 링크
버전 링크프로젝트내에 정의한 버전을 링크할 경우 version 키워드 뒤에 버전 이름을 적어 준다.
  • version:v1.0.0
  • version:"v1.0.0 RC 3"
  • otherproj:version:v0.9
  • 이름이 v1.0.0 인 버전 링크
  • 이름에 공백이 있는 경우 " "로 둘러 싸면 된다.
  • 다른 프로젝트의 버전을 링크할 경우 앞에 프로젝트 이름 기술
이슈와 커밋 링크