[Gihub Blog] 마크다운(Markdown), kramdown 문법 사용
kramdown은 표준 마크다운(Markdown)의 기능을 확장하여 다양한 기능을 제공합니다. 여기서는 kramdown에서만 지원되는 주요 문법 및 기능들을 정리하겠습니다.
1. 블록 요소 (Block Elements)
1.1 표 (Tables)
kramdown은 표를 지원합니다.
| Header 1 | Header 2 |
|----------|----------|
| Cell 1 | Cell 2 |
| Cell 3 | Cell 4 |
1.2 정의 목록 (Definition Lists)
용어와 정의를 나란히 배치할 수 있는 정의 목록을 지원합니다.
Term 1
: Definition 1
Term 2
: Definition 2a
: Definition 2b
1.3 각주 (Footnotes)
각주를 추가할 수 있습니다.
텍스트와 함께 각주를 사용할 수 있습니다[^1].
[^1]: 여기에 각주 내용이 들어갑니다.
1.4 블록 수학 표현식 (Block Mathematical Expressions)
수학 블록을 지원합니다.
$$
E = mc^2
$$
1.5 줄바꿈 (Line Breaks)
kramdown은 명시적인 줄바꿈을 허용합니다. 마지막 공백 2개 추가
이것은 한 줄입니다.
그리고 이것은 다음 줄입니다.
1.6 블록 인용 (Block Quotes)
kramdown은 중첩된 블록 인용을 지원합니다.
> 이것은 첫 번째 인용입니다.
>
> > 이것은 두 번째 인용입니다.
2. 인라인 요소 (Inline Elements)
2.1 하이라이트 (Highlighting)
텍스트 하이라이트 기능을 지원합니다.
이것은 ==하이라이트된 텍스트==입니다.
2.2 인라인 수학 표현식 (Inline Mathematical Expressions)
인라인 수학 표현식을 지원합니다.
인라인 수학: $E = mc^2$
2.3 자동 링크 (Automatic Links)
텍스트 내 URL이나 이메일 주소를 자동으로 링크로 변환합니다.
<http://example.com>
<mailto:example@example.com>
3. HTML5 비호환 태그 (HTML5 Non-Conforming Tags)
HTML5 비호환 태그를 사용할 수 있습니다.
<mark>하이라이트된 텍스트</mark>
4. 문서 구조 (Document Structure)
4.1 Inline Attribute Lists (IAL)
요소에 속성을 추가할 수 있는 기능을 지원합니다.
# 제목 1 {#custom-id .custom-class}
4.2 속성 목록 (Attribute Lists)
블록 요소에도 속성을 추가할 수 있습니다.
- 항목 1
- 항목 2
{: .custom-class #custom-id }
5. 기타 기능
5.1 구문 강조 (Syntax Highlighting)
코드 블록의 언어를 지정할 수 있어 구문 강조(syntax highlighting)가 가능합니다.
```ruby
def hello
puts 'Hello, world!'
end
5.2 텍스트 변형 (Text Transformation)
kramdown은 텍스트 변형 필터를 제공합니다.
~This text will be transformed~
5.3 HTML 엔티티 (HTML Entities)
HTML 엔티티를 지원합니다.
© & < >
5.4 HTML 블록 (HTML Blocks)
HTML 블록을 지원합니다.
<div class="example">
<p>HTML 블록 콘텐츠</p>
</div>
5.5 링크 타이틀 (Link Titles)
링크에 타이틀 속성을 추가할 수 있습니다.
[Google](https://www.google.com "Google's Homepage")
5.6 표준 하이퍼링크 (Standard Hyperlinks)
표준 하이퍼링크를 지원합니다.
[example link](http://example.com)
kramdown 설정 예제
아래는 kramdown의 다양한 설정을 포함한 _config.yml 예제입니다.
markdown: kramdown
kramdown:
input: GFM
auto_ids: true
syntax_highlighter: rouge
syntax_highlighter_opts:
default_lang: "ruby"
line_numbers: true
entity_output: as_char
toc_levels: 1..6
smart_quotes: lsquo,rsquo,ldquo,rdquo
footnote_nr: 1
show_warnings: true
- input: 사용할 마크다운 문법 (기본값: GFM).
- auto_ids: 자동으로 헤딩에 ID를 생성할지 여부.
- syntax_highlighter: 사용할 구문 강조 도구 (예: rouge).
- syntax_highlighter_opts: 구문 강조 도구의 옵션.
- entity_output: HTML 엔티티 출력 방식 (기본값: as_char).
- toc_levels: 목차 수준.
- smart_quotes: 스마트 인용 부호 설정.
- footnote_nr: 각주 번호 시작 값.
- show_warnings: 경고 메시지 표시 여부.
kramdown은 이러한 다양한 기능을 통해 마크다운 문서를 더욱 풍부하고 유연하게 작성할 수 있게 해줍니다. 표준 Markdown에서는 지원하지 않는 고급 기능들을 사용하여 더욱 복잡한 문서도 쉽게 작성할 수 있습니다.
댓글남기기