企评社

라벨은 한국어(으)로 표시됩니다. 기업 리뷰, 게시판, 도구 설명은 현재 중국어로만 제공됩니다.

리치 텍스트·Markdown

왼쪽에서 Markdown을 쓰고 오른쪽에서 실시간으로 확인. 리치텍스트와 HTML은 원클릭으로 Markdown으로 변환, Excel/CSV 데이터를 붙여 넣으면 Markdown 표가 됩니다

内容只在你的浏览器里处理,不上传、不留存
先说清楚本页的两个取舍。 ① 富文本区用的是 contenteditable + document.execCommand:execCommand 已被标准化组织标记为废弃, 但主流浏览器仍支持它。缺点是格式化按钮在部分浏览器上行为不一致(例如在 Firefox 与 Safari 里插入的标签、 换行方式可能不同,粘贴外部内容时也会带进一堆行内样式),所以长文档建议以 Markdown 源码为准, 富文本区更适合"把一段已有内容快速转成 Markdown"。 ② 预览与导出时只做基础净化:本页会移除脚本类标签与事件属性, 但它不是专业级净化器,不要用它渲染来源不可信的内容(详见页面底部说明)。

Markdown 源码 → 实时预览

实时预览(marked 渲染 + 基础净化)
字符数 0 词数 0 行数 0 词数口径:中日韩字符按「每字一词」,其余按空白切分的连续片段计数

导出与复制

导出的内容以 Markdown 源码框为准(富文本「转成 Markdown」与 HTML 转换的结果都会先写回那里); 文件名形如 markdown-20260607120000.md,由浏览器在本地生成并下载,不经服务器。

HTML 导出预览(净化后的正文片段,最多显示前 1200 字符)

        
Markdown 字符数 0 词数 0 行数 0

Markdown、富文本与 HTML:各自适合什么,以及本页做了什么净化

Markdown 语法要点,一屏就能记住。标题用行首的 #(一级一个、二级两个,最多到六级);**粗体** 与 *斜体* 用星号包裹;行首 > 是引用;- 或 1. 开头是列表;四个空格或三个反引号包起来是代码;方括号接圆括号是链接(方括号里写文字、圆括号里写网址),感叹号加方括号是图片;一行里用竖线分隔、并在下一行写上 --- 就是表格;三个及以上的连字符或星号独占一行是分隔线。这些符号都是纯 ASCII,任何编辑器、任何系统都能读懂,也不会因为换一个软件就"格式全丢"。本页左侧的工具栏就是往光标处插入这些片段,选中的文字会被自动包进成对标记里。

Markdown 和富文本各自的适用场景。富文本(Word、公众号后台、各类所见即所得编辑器)的优势是所见即所得:加粗就是加粗,字号颜色随点随有,交给完全不懂标记的人也能用,排版精细度高。代价是它把"内容"和"样式"绑在一起存成 HTML,同一段文字在不同软件里可能渲染成两个样子。Markdown 的优势是纯文本:一份 .md 文件用记事本打开也能读,用 Git 能看出一行行改了什么,转换成网页、PDF、公众号排版都只是换一个渲染器。代价是它表达能力有限——字体、颜色、居中、分栏这些它基本不管,需要精细排版时仍要回到富文本或 HTML。一个实用的分工是:存稿、写文档、写技术笔记用 Markdown;最终交付或需要精细排版的成品用富文本。本页把三条路都放在一起,就是为了让你在两者之间随时来回:Markdown 写好了可以直接导出 HTML,从别处复制的富文本或 HTML 也能一键退回 Markdown。

为什么 Markdown 更适合长期存稿。第一,它是纯文本,二十年后任何系统都能打开,不会像老版本的 .doc 那样需要特定软件才能还原;第二,它不依赖样式表,把同一份文件渲染成网页、PDF、电子书只是换渲染器的事;第三,它对版本管理友好,一次修改在 Git 里就是一两行差异,而富文本的一处加粗往往会改掉整段 HTML;第四,它便于程序处理,脚本、静态站点生成器、AI 工具都直接吃 Markdown。需要提醒的是:Markdown 没有统一标准,CommonMark 是最接近共识的规范,表格、删除线、任务列表这些属于 GFM 扩展,不同平台的渲染结果可能略有出入——所以同一份稿件在目标平台上先预览一遍,永远是好习惯。

XSS 是什么,本页做了哪些净化。XSS(跨站脚本)指攻击者把可执行的脚本混进网页内容里,让它在别人的浏览器中运行,从而窃取登录凭据、冒充用户操作。Markdown 本身相对安全,但它允许内嵌原始 HTML,而 Markdown 转出来的是 HTML 字符串——如果直接把这段字符串塞进页面,粘贴进来的 <script>、图片上的 onerror 事件、或者 href="javascript:…" 这类链接就有可能被执行。本页因此在渲染与导出前统一过一遍基础净化:整块移除 script、iframe、object、embed、style 等可执行或可嵌入外部内容的元素;移除全部以 on 开头的事件属性;把 javascript:、vbscript: 以及非图片的 data: 协议链接从 href/src 里摘掉;其余不在白名单内的标签被剥掉、只保留其中的文字。净化逻辑是一个不依赖浏览器的纯函数,因此它本身可以被逐条断言。但必须说清楚:这是基础净化,不是专业级防护——现实中的攻击面还包括 CSS 注入、SVG 内嵌脚本、畸形标签解析差异等等,专业场景请使用成熟的净化库。所以本页的定位是"处理你自己写的内容",不要用它渲染来源不可信的内容。

为什么不上传到服务器,也不做历史记录。Markdown 渲染与 HTML 转 Markdown 都是纯计算:前者是把标记换成标签,后者是把标签换成标记,两步都不需要后端能力,浏览器里几十毫秒就能做完。而这类内容往往正是最私密的那一类——未发布的稿件、内部文档、会议记录、客户材料、产品需求。上传到别人的服务器意味着多一份副本、多一处泄露面,也意味着服务端要为你保存和清理这些文本。所以本页全程在你的设备上完成:渲染、转换、导出、复制全部由页面内的 JavaScript 执行,脚本来自本站自托管(没有 CDN、没有外部请求),你输入的文字不写进网址参数、不写进 localStorage 或 sessionStorage、不写进 cookie,刷新页面就回到空白状态。打开浏览器开发者工具的 Network 面板,整页不会出现任何提交请求——这一点你可以自己验证。

자주 묻는 질문

이 마크다운 편집기 실시간 미리보기는 어떻게 동작해요? 데이터가 서버로 가나요?

미리보기는 브라우저 안에서 자가 보관 marked로 마크다운을 HTML로 렌더링하고 기본 정화 한 번 거처 오른쪽에 띄워요; HTML→마크다운도 같은 식으로 자가 보관 turndown 써요. 두 라이브러리 다 처음 쓸 때만 이 사이트에서 받아와요(첫회 약 45KB랑 27KB, 뒤엔 브라우저가 캐시), 페이지엔 올리기 통로가 아예 없고 CDN 참조도 없어요. 입력한 글은 계속 이 페이지 안에만 있고, 닫거나 새로고침하면 아무것도 안 남아요.

리치 영역 서식 버튼이 가끔씩 다르게 동작하는 건 왜요?

리치 영역이 브라우저 네이티브 contenteditable이랑 document.execCommand를 쓰기 때문이에요. execCommand는 표준기구에서 폐기 표기된 걸로, 주류 브라우저는 여전히 지원하지만 세부 구현이 저마다 달라요 — 같은 '굵게'도 어떤 데는 b 태그, 어떤 데는 인라인 스타일 span을 넣고; 바깥 내용 붙여넣기는 스타일과 중첩 덩어리를 끌어오고; 목록·인용도 브라우저마다 생성 태그가 달라요. 그래서 이 페이지는 '있는 콘텐츠를 빠르게 마크다운으로 바꾸는 보조 도구'로 자리잡혔어요 — 긴 문서는 마크다운 소스 창을 기준으로, 변환 후에도 결과 한번 훑어볼 값어요.

HTML→마크다운이면 뭔가를 잃어요? 표·코드 블록 모양이 변한 건 왜요?

잃어요, 변환 자체의 한계예요 — 마크다운이 표현하는 건 제목·강조이탤릭·링크·그림·목록·인용·코드·구분선뿐이고 글자크기·색·가운데 정렬·단 분란엔 대응 문법이 없어 turndown이 그냥 버려요(색+가운데 정렬 문단은 변환 후 맨 텍스트가 돼요). 특별 안내: **turndown 기본 규칙에 표 처리가 없어요** — 표는 '칸마다 한 문단'짜리 일반 글로 바뀌고 행열 구조는 사라져요. 표가 필요하면 '표 → 마크다운 표' 탭으로 옮겨 데이터 붙여 넣으면 정상 표가 나와요; 행·열을 넘나드는 병합 칸은 마크다운이 애초 표현 불가. 코드 블록은 출처에 달려요 — 원본 HTML이 CSS 공백으로 채운 평범 문단으로 코드를 저장했다면(많은 WYSIWYG 편집기가 딱 그렇게 저장), 일반 텍스트로 와서 삼중 역작부호를 손으로 메워야 해요.

Excel·글을 마크다운 표로 바꾸려면요?

'표 → 마크다운 표' 탭: 엑스셀이든 웹 표든 바로 복사해 붙여넣기(탭 구분), CSV(쉼표)나 세로줄 구분 글도 가능, 구분자는 기본 자동 인식이고 수동 지정도 돼요. '첫 행이 표 머리' 체크로 머리 행 정하고, 열마다 왼쪽·가운데·오른쪽 정렬 따로 지정, 출력엔 :--- 정렬 표시가 붙어요. 칸 안의 세로줄은 자동 이스케이프, 처리 전체 브라우저 로컬이고 안 올려요.

미리보기의 '기본 정화'로 XSS가 실제로 막혀요?

제일 흔한 몇 부류는 막아요: 스크립트 요소 태그, iframe/object/embed 같은 외부 콘텐츠 심기 요소, 이름 첫 글자가 로마자 두 글자 on으로 시작하는 이벤트 속성 전부(에러 처리·클릭 처리 속성 등), href/src 안의 스크립트·vbscript·data URL 프로토콜(data:image/ 그림만 통과), 나머지 태그는 화이트리스트제로 비등록 태그는 통째 벗기고 글자만 남겨요. '남의 데서 마크다운/HTML 한 단락 붙이기' 정도는 거의 커버돼요. 다만 전문급 정화는 아니에요 — 현실 공격면엔 CSS 주입, SVG 안 심은 스크립트, 비정상 태그 해석의 브라우저 차이도 있어서 출처 불분명 콘텐츠 렌더링엔 쓰지 마시고, 딱딱한 상황엔 성숙한 정화 라이브러리를 쓰세요.

통계의 '단어 수'는 어떻게 세요? 중국어도 세나요?

구경: 한·중·일 문자(한자·가나·한글)는 글자마다 한 단어, 나머지는 공백으로 잘린 연속 조각이 한 단어, 숫자와 영어 약어도 한 단어예요. 중국어엔 공백 분사가 없어서 공백 기준이면 중국어 한 단락이 1 단어로 기어이 너무 낮게 나와요. 글자 수는 유니코드 코드포인트로 세고(그림문자·희귀 한자가 서러게이트 쌍이어도 둘로 안 셜어), 줄 수는 개행 문자로 세고 빈 텍스트는 0 줄. 통계 세 기준은 모두 순수 함수로 썼고 페이지와 내보내기가 같은 구현을 나눠 써요.

관련 도구