Markdown 편집기에 담긴 이야기
Markdown은 일반 텍스트로도 자연스럽게 읽히는 서식 있는 글을 쓰는 방법입니다. 강조용 별표, 제목용 샵 기호, 목록용 하이픈은 사람들이 이미 이메일을 쓰던 방식에서 가져왔습니다. 이 페이지는 그 단순한 아이디어가 어떻게 README 파일, 메모, 문서의 언어가 되었는지 소개합니다.
이메일에서 태어나다
2004년 John Gruber는 Aaron Swartz의 도움을 받아 자신의 사이트 Daring Fireball에 Markdown을 공개했습니다. 목표는 있는 그대로 읽고 쓰기 쉬우면서도 HTML로 깔끔하게 바뀌는 텍스트였습니다. 많은 규칙이 이메일과 Setext 같은 오래된 텍스트 형식에서 왔습니다. 줄 아래에 등호를 그어 제목을 만들고, 단어를 별표로 감싸 강조하고, 줄을 하이픈으로 시작해 목록을 만듭니다. 최초의 변환기는 Perl 스크립트 하나였습니다.
너무 많은 방언
원래 설명은 중첩 목록을 얼마나 들여써야 하는지, 빈 줄이 언제 블록을 끝내는지 같은 경계 사례를 많이 열어 두었습니다. 구현마다 다르게 판단해서 같은 글이 사이트마다 다르게 보일 수 있었습니다. 2014년 John MacFarlane, Jeff Atwood 등이 수백 개의 예제를 담은 정확한 사양을 발표했습니다. 처음에는 Standard Markdown이라고 불렸지만 Gruber의 반대 이후 CommonMark로 이름이 바뀌었습니다.
GitHub Flavored Markdown
GitHub은 README 파일, 이슈, 댓글을 통해 Markdown을 프로그래머의 일상 업무로 만들었습니다. 2017년에는 CommonMark의 엄격한 상위 집합으로 GitHub Flavored Markdown의 공식 사양을 발표했습니다. 열 정렬이 있는 표, 체크박스가 있는 작업 목록, 물결표 두 개로 쓰는 취소선, 자동으로 인식되는 링크가 추가되었습니다. 이미 널리 쓰이던 언어 이름이 붙은 펜스 코드 블록 덕분에 구문 강조도 가능해졌습니다.
미리 보기를 정리하는 이유
Markdown은 원시 HTML을 허용해 편리하지만 위험하기도 합니다. 다른 사람의 Markdown을 보여 주는 페이지라면 숨겨진 script 태그, 이미지의 onerror 속성, javascript 링크가 독자의 브라우저에서 코드를 실행할 수 있으며, 이를 크로스 사이트 스크립팅이라고 합니다. 그래서 이 편집기는 원시 HTML을 글자로 보여 주고, 안전하지 않은 링크 스킴을 제거하며, 표시하기 전에 허용된 요소와 속성 목록으로 결과를 걸러 냅니다.
자주 묻는 질문
Markdown은 누가 만들었나요?
2004년 John Gruber가 Markdown을 만들었고, Aaron Swartz가 초기부터 중요한 협력자이자 테스터였습니다.
CommonMark와 GFM의 차이는 무엇인가요?
CommonMark는 Markdown 핵심 문법의 정확한 사양입니다. GitHub Flavored Markdown은 이를 바탕으로 표, 작업 목록, 취소선, 자동 링크를 더합니다.
내 HTML이 왜 글자로 보이나요?
안전을 위해서입니다. 원시 HTML에는 스크립트가 들어 있을 수 있으므로 편집기는 이를 이스케이프하고 무해하다고 알려진 요소만 만듭니다.
시도해 볼 준비가 되셨나요?
브라우저에서 PictorX를 엽니다. 설치가 필요 없고 시작하는 데 신용 카드가 필요하지 않습니다.
Markdown 편집기 열기