마크다운 표 만들기 — 칸 안의 | 하나가 표를 무너뜨립니다
마크다운 표는 칸을 세로 막대 | 로 나눕니다. 그래서 칸 안에 | 가 들어가면 칸이 하나 늘어나고, 그 아래 줄이 전부 어긋납니다. 원본만 보면 멀쩡해 보여서 넘어가기 쉬운 종류의 사고입니다.
마크다운 표는 세 부분입니다. 첫 줄은 열 이름, 둘째 줄은 정렬을 정하는 하이픈 줄, 그 아래가 내용입니다. 문법이라고 할 것도 없이 단순합니다.
단순한 대신 도망갈 곳이 없습니다. 칸의 경계가 | 하나뿐이라 그 글자가 내용에 섞이면 구분할 방법이 없고, 한 줄이 한 행이라 줄바꿈이 섞여도 마찬가지입니다. 표를 만들 때 실제로 신경 쓸 것은 이 두 글자가 거의 전부입니다.
| 는 백슬래시로 가려야 합니다
두 칸짜리 표에 a|b 라고 적으면 렌더링할 때 세 칸이 됩니다. 헤더는 두 칸인데 본문이 세 칸이니 그 행부터 열이 밀립니다. 소스에서는 | 이름 | a|b | 로 보이는데 눈으로는 이상한 점을 찾기 어렵습니다.
해결은 백슬래시입니다. a\|b 라고 적으면 진짜 막대로 나옵니다. 이 도구가 자동으로 붙이고, 몇 칸을 바꿨는지 결과 위에 적어 둡니다.
표 안에서 | 를 쓸 일은 생각보다 많습니다. 정규식, 셸 명령, 논리 연산자 ||, 코드 예제가 전부 해당합니다.
줄바꿈은 <br> 로 바꿔야 합니다
표에서는 한 줄이 한 행입니다. 그래서 칸 안에 진짜 줄바꿈을 넣으면 거기서 행이 끝나고, 나머지는 표가 아닌 문단이 됩니다. 표 절반이 사라진 것처럼 보입니다.
마크다운에는 칸 안 줄바꿈을 위한 문법이 없습니다. 관례적으로 <br> 을 씁니다. 깃허브도 그렇게 렌더링합니다. 이 도구는 붙여넣은 데이터에 줄바꿈이 있으면 <br> 로 바꿔 넣습니다.
칸에 넣으면 문제가 되는 것
| 칸 안의 내용 | 그대로 두면 | 이 도구가 넣는 값 |
|---|---|---|
| a|b | 칸이 하나 늘어남 | a\|b |
| 서울시(줄바꿈)강남구 | 그 행에서 표가 끝남 | 서울시<br>강남구 |
| 부산시, 해운대구 | 문제 없음 | 그대로 |
| **굵게** | 굵게 렌더링됨 | 그대로 (의도한 경우가 많음) |
엑셀에서 붙여넣기
스프레드시트에서 셀 범위를 복사하면 탭으로 나뉜 텍스트가 클립보드에 들어갑니다. CSV 파일이라면 쉼표입니다. 이 도구는 어느 쪽인지 알아서 판단합니다. 따옴표 밖에 있는 쉼표와 탭을 세어 많은 쪽을 고릅니다.
구분자를 고르지 않고 쉼표와 탭 양쪽에서 자르는 방식이 흔한데, 그러면 탭으로 나뉜 데이터에 쉼표가 하나만 있어도 그 칸이 둘로 쪼개집니다. '안녕, 반가워' 같은 메모 한 줄이면 충분합니다.
따옴표도 제대로 읽습니다. "부산시, 해운대구" 는 쉼표가 있어도 한 칸입니다. 엑셀이 그렇게 저장하기 때문에 이걸 못 읽으면 주소가 들어간 표는 거의 다 깨집니다.
읽기 좋은 표를 만드는 요령
- •열 너비를 맞춰서 내보냅니다. 렌더링 결과는 같지만 편집기에서 원본을 볼 때 훨씬 읽기 쉽습니다.
- •정렬은 하이픈 줄의 콜론으로 정합니다. :--- 왼쪽, :---: 가운데, ---: 오른쪽.
- •숫자 열은 오른쪽 정렬이 읽기 좋습니다. 자릿수가 맞아떨어집니다.
- •열이 다섯 개를 넘어가면 표보다 목록이 나을 때가 많습니다. 좁은 화면에서 가로 스크롤이 생깁니다.
- •빈 칸은 비워 두면 됩니다. 하이픈이나 N/A 를 채울 필요는 없습니다.
자주 묻는 질문
칸 안에 목록이나 여러 문단을 넣을 수 있나요?
없습니다. 표의 한 칸은 한 줄입니다. <br> 로 줄만 바꿀 수 있고, 진짜 목록이 필요하면 표를 쓰지 않는 편이 낫습니다.
만든 표가 깃허브에서만 되고 다른 곳에서는 안 됩니다.
표는 마크다운 표준(CommonMark)에 없는 확장 문법입니다. 깃허브, 노션, 대부분의 정적 사이트 생성기는 지원하지만 아주 기본적인 마크다운 처리기는 표를 모릅니다.
열 너비를 맞춘 공백이 결과에 영향을 주나요?
주지 않습니다. 렌더링할 때 칸 앞뒤 공백은 무시됩니다. 사람이 원본을 읽기 좋으라고 넣는 것입니다.
붙여넣은 데이터가 저장되나요?
아니요. 전부 브라우저 안에서 처리됩니다.
