도움말

마크다운 뷰어·편집기 (md 파일 열기·미리보기)

  • 파일이 업로드되지 않음

근거CommonMark 명세

.md 파일을 끌어다 놓아 바로 보고, 고치고, 저장합니다. 폴더째 넣으면 문서 안의 그림도 보이고, 표·코드·체크 목록·각주와 HTML 변환을 지원합니다.

파일이나 폴더를 여기에 끌어다 놓아도 됩니다

미리보기

왼쪽 칸에 마크다운을 붙여 넣으면 바로 변환됩니다.

사용 방법

  1. md 파일을 보려면 파일을 끌어다 놓거나 파일 열기를 누릅니다. 열면 문서만 넓게 보이는 보기로 바뀝니다.
  2. 문서에 그림이 있으면 문서가 든 폴더째 끌어다 놓거나 폴더 열기로 고릅니다. 폴더 안의 그림을 경로대로 찾아 보여 주고, 문서가 여럿이면 위의 문서 칸에서 골라 오갑니다.
  3. 쓰려면 보기 방식을 나란히(쓰는 칸과 미리보기를 함께 — 넓은 화면은 좌우, 휴대폰은 위아래. 한쪽을 굴리면 다른 쪽이 같은 줄로 따라옵니다)나 편집(글 칸만)으로 바꿉니다. 붙여 넣으면 버튼을 누르지 않아도 바로 미리보기와 HTML 코드가 만들어집니다.
  4. 글 칸 위의 서식 단추(굵게 · 기울임 · 제목 · 목록 · 표 · 링크 · 코드)로 문법을 외우지 않고 넣을 수 있습니다. 글을 골라 누르면 그 글에 서식이 붙고, 굵게 · 기울임 · 목록 · 코드는 한 번 더 누르면 벗겨집니다. 제목은 누를 때마다 큰 제목 → 중간 → 작은 제목 → 없음으로 바뀝니다. 굵게는 Ctrl+B, 기울임은 Ctrl+I, 링크는 Ctrl+K로도 됩니다. 스프레드시트에서 복사한 칸을 붙여 넣고 골라 표를 누르면 그대로 표가 됩니다.
  5. 미리보기는 실제로 브라우저가 그리는 모습이고, 나란히 보기에서는 그 아래 HTML 코드 칸에 붙여 쓸 수 있는 결과가 들어갑니다.
  6. 저장에서 md 파일(쓴 글 그대로)이나 html 파일(미리보기 모양 그대로 · 브라우저에서 바로 열림)을 고릅니다. html 파일에는 스크립트를 넣지 않습니다.
  7. 인쇄 · PDF를 누르면 문서만 인쇄합니다. 인쇄 창에서 "PDF로 저장"을 고르면 PDF 파일이 됩니다.
  8. 제목을 하나라도 쓰면 목차가 자동으로 생기고, 각 제목에는 앵커 주소가 붙습니다.
  9. 글자 수, 공백을 뺀 글자 수, 낱말 수, 줄 수, 예상 읽는 시간이 결과 맨 위에 함께 나옵니다.
  10. 변환할 수 없는 부분이나 막은 주소가 있으면 결과 아래에 알림으로 알려 줍니다.

입력한 글은 서버로 전송되지 않습니다. 변환, 미리보기, 글자 수 계산은 모두 이 페이지에서 내려받은 자바스크립트가 브라우저 안에서 처리하며, 어디에도 저장하거나 올려보내지 않습니다. 회사 문서나 공개 전 원고도 안심하고 붙여 넣을 수 있습니다.

지원하는 문법

아래 표는 이 페이지를 만들 때 실제 변환기를 돌려 얻은 결과입니다. 왼쪽처럼 쓰면 오른쪽 HTML이 나옵니다.

문법쓰는 법만들어지는 HTML
제목 (1~6단계)## 소제목<h2 id="md-소제목">소제목</h2>
굵게**굵게**<p><strong>굵게</strong></p>
기울임*기울임*<p><em>기울임</em></p>
굵게+기울임***둘 다***<p><strong><em>둘 다</em></strong></p>
취소선~~취소선~~<p><del>취소선</del></p>
인라인 코드`코드`<p><code>코드</code></p>
링크[이름](https://example.com)<p><a href="https://example.com" rel="nofollow noopener noreferrer" target="_blank">이름</a></p>
이미지![대체글](/cat.png)<p><img src="/cat.png" alt="대체글" loading="lazy" /></p>
인용> 인용문<blockquote> <p>인용문</p> </blockquote>
순서 없는 목록- 항목<ul> <li>항목</li> </ul>
순서 있는 목록1. 항목<ol> <li>항목</li> </ol>
수평선---<hr />
줄바꿈 (공백 두 칸)첫 줄 둘째 줄<p>첫 줄<br /> 둘째 줄</p>
체크 목록- [x] 끝난 일<ul> <li class="task"><input type="checkbox" disabled checked /> 끝난 일</li> </ul>
주소 자동 링크https://example.com<p><a href="https://example.com" rel="nofollow noopener noreferrer" target="_blank">https://example.com</a></p>

제목은 # 한 개부터 여섯 개까지이고, 기호 뒤에 공백이 있어야 제목이 됩니다. 그래서 해시태그처럼 붙여 쓴 #할인은 제목이 되지 않고 그대로 글자로 남습니다. 목록은 두 칸 이상 들여쓰면 중첩되고, 목록 안에 코드 블록이나 인용을 넣을 수도 있습니다. 목록 표시가 점에서 번호로 바뀌면 새 목록이 시작됩니다.

표와 코드 블록

표는 머리글 줄과 하이픈 구분줄로 만듭니다. 구분줄에 콜론을 넣어 칸마다 정렬을 정할 수 있습니다. 왼쪽 정렬은 :---, 가운데는 :---:, 오른쪽은 ---:입니다.

입력결과 HTML
| 이름 | 수량 | 금액 |
| :--- | :---: | ---: |
| 연필 | 2 | 1,200 |
<div class="table-wrap">
<table>
<thead>
<tr><th style="text-align: left">이름</th><th style="text-align: center">수량</th><th style="text-align: right">금액</th></tr>
</thead>
<tbody>
<tr><td style="text-align: left">연필</td><td style="text-align: center">2</td><td style="text-align: right">1,200</td></tr>
</tbody>
</table>
</div>
```python
print("안녕")
```
<pre data-lang="python"><code class="language-python">print(&quot;안녕&quot;)</code></pre>

코드 블록은 백틱 세 개로 여닫습니다. 여는 줄에 언어 이름을 적으면 결과에 language-로 시작하는 클래스가 붙어, 색을 칠해 주는 도구와 그대로 이어 쓸 수 있습니다. 코드 블록과 인라인 코드 안에서는 별표나 밑줄, 대괄호가 문법으로 해석되지 않고 적은 그대로 남습니다. 닫는 줄을 빠뜨리면 문서 끝까지 코드로 보고 그 사실을 알려 줍니다.

원시 HTML을 왜 막는가

미리보기는 남이 쓴 글을 화면에 그리는 자리입니다. 마크다운 안의 HTML 태그를 그대로 그리면 스크립트가 이 페이지에서 실행될 수 있고, 그 스크립트는 화면을 바꾸거나 다른 입력칸의 내용을 읽어 밖으로 보낼 수도 있습니다. 그래서 이 도구는 기본값으로 꺾쇠, 따옴표, 앰퍼샌드를 모두 이스케이프해 태그를 글자로 바꿉니다. 링크와 이미지 주소도 따로 검사해서, 스크립트를 실행하는 스킴과 SVG data URL은 아예 주소로 쓰지 않습니다. 아래는 그런 입력이 실제로 어떻게 바뀌는지 빌드할 때 변환기를 돌려 얻은 결과입니다.

입력이 도구의 결과
<script>alert(1)</script><p>&lt;script&gt;alert(1)&lt;/script&gt;</p>
<img src=x onerror=alert(1)><p>&lt;img src=x onerror=alert(1)&gt;</p>
[클릭](javascript:alert(1))<p>클릭</p>
[클릭](&#106;avascript:alert(1))<p>클릭</p>
![그림](data:image/svg+xml;base64,PHN2Zy8+)<p>그림</p>

막는 방법을 하나 더 적어 두면, 주소는 겉모양만 보지 않습니다. 대소문자를 섞은 것, 앞뒤에 공백이나 보이지 않는 글자를 끼운 것, 숫자 엔티티로 감춘 것을 모두 같은 주소로 보고 판단합니다. 허용하는 스킴은 http, https, mailto, tel, sms, ftp, ftps와 스킴이 없는 상대 주소뿐입니다.

목차와 글자 수

제목마다 앵커 id를 만들고 그것으로 목차를 엮습니다. 한글 제목은 그대로 id가 되고, 같은 제목이 여러 번 나오면 뒤에 번호를 붙여 서로 겹치지 않게 합니다. 예상 읽는 시간은 한글과 한자는 분당 500자, 그 밖의 낱말은 분당 220개로 잡아 더합니다. 예시 넣기로 들어가는 문서는 문법 기호를 뺀 453자, 14덩어리여서 읽는 시간이 1분 미만으로 나옵니다.

알아 둘 점

이 도구는 CommonMark와 GitHub 표 문법을 기준으로 삼되, 미리보기에서 안전한 쪽으로 다르게 처리하는 부분이 있습니다. 깃허브나 다른 편집기와 결과가 조금 다를 수 있으니, 최종 결과는 실제로 붙여 쓸 곳에서 한 번 더 확인해 주세요.

자주 묻는 질문

마크다운 안에 쓴 HTML 태그가 왜 그대로 글자로 보이나요?

미리보기가 남이 준 태그를 그대로 그리면 스크립트가 실행될 수 있어, 이 도구는 원시 HTML을 기본적으로 이스케이프해 글자로 보여 줍니다. 굵게·기울임처럼 속성이 없는 서식 태그만 필요하다면 원시 HTML 허용을 켜면 되고, 그때도 script·iframe·svg나 속성이 붙은 태그는 계속 글자로 남습니다.

줄을 바꿨는데 미리보기에서 한 줄로 붙는 경우가 있습니다. 왜 그런가요?

표준 마크다운은 한 번 줄을 바꾼 것을 같은 문단으로 봅니다. 이 도구는 붙여 넣은 글이 보이는 대로 나오도록 한 줄 바꿈도 줄바꿈 태그로 처리하는 설정을 기본으로 켜 두었고, 이 설정을 끄면 줄 끝에 공백 두 칸이나 백슬래시를 넣은 곳만 줄이 바뀝니다.

표 문법을 썼는데 표로 바뀌지 않는 이유는 무엇인가요?

표는 머리글 줄 바로 다음에 하이픈으로 된 구분줄이 있어야 만들어집니다. 구분줄이 없거나 머리글과 구분줄 사이에 빈 줄이 있으면 그냥 글로 처리됩니다. 칸 수가 줄마다 다르면 머리글 칸 수에 맞춰 부족한 칸은 비우고 남는 칸은 버린 뒤 그 사실을 알림으로 표시합니다.

이미지에 data URL을 넣었는데 그림이 안 나옵니다. 왜인가요?

PNG, JPEG, GIF, WebP, AVIF, BMP 형식의 base64 data URL만 허용하고, SVG data URL은 일부러 막았습니다. SVG 파일 안에는 스크립트와 이벤트 속성을 넣을 수 있어 이미지처럼 보이는 실행 파일이 될 수 있기 때문입니다. 막힌 주소는 그림 대신 대체글만 나오고 알림이 뜹니다.

작성 중인 마크다운 문서가 서버로 전송되나요?

아니요. 변환과 미리보기, 글자 수 계산까지 모두 이 페이지 안의 자바스크립트가 처리하며 입력한 글은 어디에도 전송되거나 저장되지 않습니다. 사내 회의록이나 공개 전인 원고를 붙여 넣어도 글이 브라우저 밖으로 나가지 않습니다.

md 파일을 열었는데 마크다운 문서 안의 이미지가 보이지 않습니다. 어떻게 하나요?

마크다운 문서는 그림을 문서 옆의 파일 경로로 가리키는 경우가 많아, 문서 하나만 열면 그 그림 파일이 없어서 보이지 않습니다. 문서와 그림이 함께 든 폴더를 통째로 끌어다 놓거나 폴더 열기로 고르면 경로를 따라 그림을 찾아 보여 줍니다. 휴대폰처럼 폴더를 고를 수 없는 기기에서는 파일 열기에서 문서와 그림 파일을 함께 고르면 됩니다.

마크다운 문서를 폴더째 넣으면 폴더 안의 파일이 어디로 올라가나요?

어디에도 올라가지 않습니다. 폴더 안의 문서와 그림은 이 기기의 브라우저가 직접 읽어 화면에만 그리고, 서버로 보내는 요청은 없습니다. 탭을 닫거나 다른 문서를 열면 읽어 둔 내용도 함께 사라집니다. 다만 문서에 https로 시작하는 바깥 그림 주소가 적혀 있으면 그 그림은 브라우저가 해당 주소에서 직접 받아 옵니다.

이 도구가 도움이 되었다면 공유해 주세요

계산 근거

이 계산기가 쓰는 세율·요율·기준의 출처입니다. 숫자가 맞는지 직접 확인해 보세요.

결과가 이상한가요? 알려 주세요
어떤 이야기인가요?

적어 주신 글과 접속 국가만 저장합니다. 도구에 넣은 값이 자동으로 함께 보내지는 일은 없으니, 필요한 내용은 위에 직접 적어 주세요. 답장을 드릴 수는 없습니다.

계산 결과는 참고용이며 법적 효력이 없습니다.