문서 작업 가이드
README와 글을 게시하기 전에 Markdown을 안전하게 미리보기
README, 기술 문서, 글을 게시 시스템으로 옮기기 전에 Markdown 구조, 링크, 이미지, 코드, 수식, 원시 HTML과 정제 결과를 검토하는 방법입니다.
작성 및 검수 SimpleWebUtils게시일: 검토일:
이 작업 흐름을 검증한 방법
이번 검증은 “작업 목록, 표, 각주가 있는 릴리스 노트 검토”의 정확한 입력과 Markdown 미리보기를 짝지어 수행했습니다. “개인정보와 환경 전용 값을 먼저 제거합니다” 단계를 거쳐 “모양보다 문서 구조를 먼저 봅니다” 이후 결과를 캡처해 예시와 비교했습니다. 명시적인 경계 질문은 “호환성을 완전한 동일 렌더링 보증으로 표현하기”, “시각 미리보기만 확인하기”였습니다.
preview에는 h1 하나, 비활성 task box, 오른쪽 정렬 표 열과 연결된 footnote가 있었고, 최종 검사에서는 staging URL이 남지 않았음도 확인했습니다.
문제 상황
Markdown은 평문이라 어디서나 같아 보이지만 렌더러마다 확장 문법과 경계 사례 처리가 다릅니다. GitHub, 문서 생성기, CMS, 이메일 편집기는 제목 ID, 작업 목록, 표, 원시 HTML, 각주, 수식, URL 정책을 서로 다르게 처리할 수 있습니다. 붙여넣은 문서에는 추적 이미지, 비공개 이슈 링크, 내부 호스트명, 코드 예시 속 토큰, 대상 서비스가 다시 해석할 HTML이 들어 있을 수도 있습니다. 로컬 미리보기는 이런 문제를 많이 드러낼 수 있지만 대상 렌더러, CSS, 보안 정책과 최종 검토를 대신할 수는 없습니다.
공식 출처와 표준
다음 공식 문서는 이 작업 흐름에서 다루는 형식과 보안 경계의 기준입니다. 도구별 실행 검증은 위에 별도로 기록합니다.
- CommonMark Specification
CommonMark
이럴 때 사용하세요
- README나 변경 기록에 표, 작업 목록, 코드 펜스, 이미지, 각주가 있어 평문만으로 확인하기 어려울 때
- 기술 문서에 KaTeX 수식, 정의 목록, 접기 영역이 있어 게시 전에 시각 검토가 필요할 때
- Markdown을 CMS, 문서 사이트, 지식 저장소, 이메일 작업용 HTML로 변환할 때
- 복사한 문서에 원격 이미지, 원시 HTML, 비공개 링크, 내부 명칭, 민감한 예시 값이 있을 수 있을 때
단계
- 1단계
개인정보와 환경 전용 값을 먼저 제거합니다
원문에서 접근 토큰, 쿠키, 이메일 주소, 계정 ID, 내부 호스트명, 비공개 저장소 링크, 고객명, 운영 로그 값을 찾으세요. 미리 보거나 공유하기 전에 의도적으로 만든 예시로 바꿉니다. 로컬 렌더링은 전송을 줄이지만 작업 사본, 클립보드 기록, 다운로드 파일과 최종 게시 대상에는 민감한 텍스트가 남을 수 있습니다.
- 2단계
게시 대상의 Markdown 규칙을 확인합니다
대상이 GitHub Markdown, CommonMark, 정적 사이트 플러그인, CMS 파서 또는 미리 생성한 HTML 중 무엇을 사용하는지 확인하세요. 표 정렬, 작업 상태, 제목 앵커, 코드 언어명, 각주, 수식 구분자, 원시 HTML, 상대 경로처럼 중요한 기능을 적어 둡니다. 이 미리보기는 자주 쓰는 기능을 지원하지만 GitHub 자체 렌더러는 아닙니다.
- 3단계
모양보다 문서 구조를 먼저 봅니다
문서를 불러와 논리적인 제목 계층, 목록 중첩, 표 머리글, 링크 문구, 이미지 대체 텍스트, 닫힌 코드 펜스, 각주 참조와 읽을 수 있는 대체 문구를 확인합니다. 큰 문서는 입력할 때마다 렌더링하지 않도록 수동 모드를 사용하세요. 코드 색상과 글꼴보다 올바른 구조를 먼저 검토합니다.
- 4단계
원격 이미지를 불러올지 명시적으로 결정합니다
첫 검토에서는 원격 이미지를 끈 상태로 두세요. 상대 경로와 안전한 래스터 data 이미지는 확인할 수 있고 HTTP(S) 이미지 URL은 제거되어 경고로 표시됩니다. 모든 호스트를 신뢰하고 접속할 의도가 있을 때만 허용합니다. no-referrer 정책이 있어도 각 이미지는 IP 주소, 접속 시각, 사용자 에이전트 같은 정보를 호스트에 전달할 수 있습니다.
- 5단계
정제 결과와 HTML 조각을 함께 검사합니다
렌더링 화면과 HTML 출력을 비교하세요. script, 이벤트 처리기, iframe, 삽입 미디어, form, 실행 가능한 URL 스킴, SVG data 이미지와 임의 스타일이 없는지 확인합니다. 안전한 details, 표, 작업 체크박스, 링크와 KaTeX 마크업은 남을 수 있습니다. 복사 결과는 테마가 포함된 완전한 문서가 아니라 콘텐츠 조각입니다.
- 6단계
실제 게시 시스템에서 다시 테스트합니다
원본 Markdown 또는 HTML 조각을 대상 서비스의 초안, 스테이징 페이지, 임시 테스트 글에 넣으세요. 앵커, 상대 URL, 코드 스타일, 수식 자산, 표 가로 넘침, 다크 모드, 키보드 탐색과 모바일 너비를 다시 확인합니다. 대상 시스템이 이 도구의 정제 뒤에 마크업을 추가하거나 제거하거나 다시 쓸 수 있으므로 최종 네트워크 요청과 DOM도 검토하세요.
예시
작업 목록, 표, 각주가 있는 릴리스 노트 검토
입력
# 버전 2.4 릴리스
- [x] 자동 테스트 실행
- [ ] 마이그레이션 안내 게시
| 영역 | 결과 |
| --- | ---: |
| 키보드 검토 | 통과 |
| 모바일 표 | 확인 필요 |
스테이징 기록을 확인하세요.[^review]
[^review]: 게시 전에 이 문구를 공개 검토 날짜로 바꾸세요.출력
h1 하나, 비활성 작업 체크박스, 표 머리글, 오른쪽 정렬 결과 셀, 연결된 각주, 비공개 스테이징 URL이 없음을 확인한 뒤 대상 렌더러에서 같은 검토를 반복합니다.흔한 실수
호환성을 완전한 동일 렌더링 보증으로 표현하기
로컬 미리보기가 성공해도 GitHub, CMS, 정적 사이트 생성기가 같은 앵커, 작업 마크업, 코드 클래스, 각주, HTML 필터를 만든다는 뜻은 아닙니다.
추적 이미지를 무해한 예시로 사용하기
이미지 URL은 렌더러가 불러오는 즉시 분석 서버에 접속할 수 있습니다. 각 호스트를 검토하고 문서에 필요 없는 쿼리 문자열이나 식별자를 제거할 때까지 원격 로드를 끄세요.
시각 미리보기만 확인하기
화면이 맞아 보여도 제목 순서, 빈 링크 문구, 누락된 대체 텍스트, 위험한 대상 URL, 게시 시스템이 나중에 제거할 마크업에 문제가 있을 수 있습니다. 구조와 모양을 함께 확인하세요.
대상 CSS 없이 HTML 조각을 그대로 게시하기
HTML 출력에는 사이트 글꼴, 코드 테마, 반응형 표 규칙, 완전한 KaTeX 스타일이 들어 있지 않습니다. 원시 파일만 보지 말고 실제 레이아웃 안에서 테스트하세요.
이후 변환에서도 정제 상태가 그대로 유지된다고 믿기
CMS 플러그인, 템플릿 엔진, 클라이언트 컴포넌트가 HTML을 다시 해석하거나 보강할 수 있습니다. 대상 서비스의 정제와 콘텐츠 보안 정책을 적용하고 최종 결과를 검사하세요.
자주 묻는 질문
README가 GitHub에서 똑같이 보인다는 것을 확인할 수 있나요?
아니요. 자주 쓰는 문법을 검토하는 도구입니다. 마지막 GitHub 전용 확인은 브랜치, Pull Request 미리보기 또는 비공개 테스트 저장소에서 수행하세요.
원격 이미지를 왜 기본적으로 차단하나요?
HTTP(S) 이미지를 불러오면 다른 호스트에 접속하여 네트워크와 요청 정보가 전달될 수 있습니다. 차단 상태에서는 사용자가 호스트가 적절하다고 직접 결정하기 전까지 요청하지 않습니다.
생성한 HTML은 어떤 CMS에도 안전하게 붙여넣을 수 있나요?
보편적인 보장은 불가능합니다. 이 도구의 정책으로 정제하지만 대상 서비스가 다시 변환할 수 있고 허용하는 태그, 속성, URL, 스타일 기준도 다를 수 있습니다.
다른 페이지에서 내보낸 HTML이 밋밋하게 보이는 이유는 무엇인가요?
내보내기는 콘텐츠 조각입니다. 대상의 글꼴, 표, 코드 하이라이트, KaTeX 스타일을 추가하고 그 환경에서 반응형과 다크 모드를 테스트하세요.
큰 문서도 실시간 모드로 작업해야 하나요?
반복 렌더링으로 입력이 느려지면 수동 모드를 사용하세요. 도구는 UTF-8 기준 50,000바이트부터 경고하고, 입력 500,000바이트 또는 지나치게 큰 생성 HTML을 차단합니다.