2편. Github Pages Markdown

Github의 Markdown은 GFM

Github는 파일, 이슈, 코멘트에 Markdown을 허용하는데, 이때 사용하는 Markdown을 GFM이라 부른다. GFM은 Github Flavored Markdown의 약자이며, 굳이 한글로 번역하자면 ‘깃허브-맛 마크다운’ 정도가 되겠다. (‘딸기맛 초콜렛’을 Strawberry flavored chocolate라고 하니…)

GFM은 그 나름의 기술 스펙(Specification)을 가지고 있으며, 이 GFM 스펙은 Github와 관련한 Markdown 전체에 적용된다. 재밋는 점은 GFM이 CommonMark를 차용하여 변형시킨 스펙을 사용한다는 점이다. GFM은 CommonMark의 Subset으로 정의되어 있으며, 원래 CommonMark에서 지원하던 기능들 외에도 테이블, 취소선, 자동 링크 등의 기능들을 추가 지원한다.

관련한 내용을 검색해보니 Nolboo님의 블로그에 번역된 내용이 있었으니 세부 내용이 궁금하신 분들은 참고하시기 바란다.



알아두면 좋은 유의 사항

Github와 Github Pages에 적용되는 GFM은 기본적으로 같으나, 본 블로그처럼 Github Pages에 특정 Framework 혹은 Theme을 사용하는 경우 적용되는 Github Pages에서 적용되는 Markdown 문법은 달라질 수 있다. Github에 올라가는 Static Page Generator들에 정의된 CSS 내의 정의가 GFM 문법과 다른 경우, HTML Generator 쪽의 스타일을 따르기 때문이다.

일반적인 경우 각 Framework나 Theme도 Markdown의 기본 스펙은 같지만, Image나 Table 등의 사용이 미세하게 다를 수 있다. 그런 경우 그냥 HTML의 문법을 사용하면 된다. 예를 들면, 아래와 같다. GFM에서는 HTML image 태그의 기능들이나 스타일들을 허용하지 않는데, 이럴 때는 그냥 Markdown 내에 HTML 문법을 끼워 넣으면 된다.

1
2
<image src="{파일 경로와 이름}" width="{가로 크기}" height="{세로 크기/생략 가능}" 
alt="{캡션/이미지 미노출 시 텍스트}" style="{필요한 스타일}">

이는 Markdown 소개 페이지에서도 ‘단점’으로 지목했었던 내용이다. 다시 한 번 짚고 넘어가보면…

Markdown은 사용하기 편리한 경량의 문법을 가지고 있지만, 그래서 웹 문서를 만들 때 기능상 제약이 있고, 그래서 결국 이것저것 많이 공부하고 알아야 세련되게 쓸 수 있다. (“Markdown만 알면 돼!”가 안된다.)



GFM 가이드와 CheetSheet

필자는 꽤 오랜 시간 동안 개인 블로그의 형태와 운영방식 등을 고려하였고 결론적으로 Static Site Generator로 가야겠다고 결심했다. 그리고 이를 가장 잘 서비스할 수 있는 Cloud 서비스 제공자를 검토했고, Github에서 블로그를 작성하기로 결정했다. 그리고, 여기저기 퍼져 있던 이전 블로그들의 내용들을 이동하기 전에 제일 처음 다시 한 번 공부하고, 정리해야 하는 내용이 Github의 Markdown이라 생각했다.

본 블로그에서 정리하려고 하는 내용은 Github Guide - Mastering Markdown에 있는 내용들이다. 이미 꽤 많은 분들이 한글 자료들을 만들어 두었지만, 나 역시 내 나름대로 공부하면서 정리하는 데에 의미를 두려한다.

참고로, 우리가 흔히 시험 볼 때 흘깃 훔쳐본다는 의미로 이야기하는 ‘컨닝페이퍼’는 영어로 CheetSheet라고 한다.

GFM CheetSheet는 Github Guide - Mastering Markdown에 들어가면 “Download PDF”를 클릭하면 나오는 파일이고, PDF 파일로 제공되고 있어 저장해서 사용하기에 편리하다. 이 링크는 언제 경로가 변경되어도 이상하지 않으므로, 나중에라도 필자가 변경하기 쉽도록 날것의 링크 그대로 두려한다.



주요 참고 자료