마크다운 파서가 올바르게 수행되었습니다. 빠르고 쉽게 확장할 수 있습니다.
라이브 데모
CommonMark 사양을 따르고 구문 확장 및 설탕(URL 자동 링크, 타이포그래퍼)을 추가합니다.
구성 가능한 구문! 새로운 규칙을 추가하고 기존 규칙을 교체할 수도 있습니다.
고속.
기본적으로 안전합니다.
npm의 커뮤니티 작성 플러그인 및 기타 패키지.
목차
설치하다
사용 예
단순한
사전 설정 및 옵션으로 초기화
플러그인 로드
구문 강조
링크파이
API
구문 확장
규칙 관리
기준
기업용 markdown-it
저자
참고자료/감사합니다
노드.js :
npm 설치 markdown-it
브라우저(CDN):
jsDeliver CDN
cdnjs.com CDN
참조:
API 문서 - 자세한 정보와 예시를 확인하세요.
개발 정보 - 플러그인 작성자용.
// node.js// 'markdown-it'에서 CJSimport markdownit에 `require('markdown-it')`를 사용할 수 있습니다.const md = markdownit()const result = md.render('# markdown-it rulezz!') ;// UMD 빌드가 있는 브라우저, 스크립트 로드 시 "창"에 추가됨// "markdownit"에는 대시가 없습니다.const md = window.markdownit();const result = md.render('# markdown-it rulezz!');
단락 줄 바꿈 없이 한 줄 렌더링:
import markdownit from 'markdown-it'const md = markdownit()const result = md.renderInline('__markdown-it__ rulezz!');
(*) 사전 설정은 활성 규칙과 옵션의 조합을 정의합니다. "commonmark"
, "zero"
또는 "default"
일 수 있습니다(건너뛴 경우). 자세한 내용은 API 문서를 참조하세요.
'markdown-it'에서 markdownit 가져오기// commonmark 모드const md = markdownit('commonmark')// 기본 모드const md = markdownit()// 모든 항목 활성화const md = markdownit({ HTML: 사실, linkify: 사실, typographer: true})// 전체 옵션 목록 (기본값)const md = markdownit({ // 소스에서 HTML 태그를 활성화합니다. HTML: 거짓, // 단일 태그(<br />)를 닫으려면 '/'를 사용합니다. // 이는 전체 CommonMark 호환성을 위한 것입니다. xhtml출력: 거짓, // 단락의 'n'을 <br>로 변환합니다. 휴식 시간: 거짓, // 울타리 블록에 대한 CSS 언어 접두사. 될 수 있다 // 외부 형광펜에 유용합니다. langPrefix: '언어-', // URL과 같은 텍스트를 링크로 자동 변환합니다. 연결하다: 거짓, // 일부 언어 중립적 대체 + 따옴표 미화 활성화 // 전체 교체 목록은 https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs를 참조하세요. 타이포그래퍼: 거짓, // 큰따옴표 + 작은따옴표 대체 쌍, 타이포그래퍼가 활성화된 경우, // 그리고 스마트따옴표를 켭니다. 문자열일 수도 있고 배열일 수도 있습니다. // // 예를 들어 러시아어의 경우 '«»„“', 독일어의 경우 '„“‚''를 사용할 수 있습니다. // 및 프랑스어의 경우 ['«xA0', 'xA0»', '<xA0', 'xA0>'](nbsp 포함). 따옴표: '“”''', // 하이라이터 기능. 이스케이프된 HTML을 반환해야 합니다. // 또는 소스 문자열이 변경되지 않고 외부에서 이스케이프되어야 하는 경우 ''입니다. // 결과가 <pre...로 시작하면 내부 래퍼를 건너뜁니다. 하이라이트: 함수 (/*str, lang*/) { return ''; }});
'markdown-it'에서 markdownit 가져오기const md = markdownit .use(플러그인1) .use(플러그인2, 선택, ...) .use(플러그인3);
highlight
옵션을 사용하여 분리된 코드 블록에 구문 강조를 적용합니다.
import markdownit from 'markdown-it'import hljs from 'highlight.js' // https://highlightjs.org// 실제 기본값const md = markdownit({ 하이라이트: 함수 (str, lang) {if (lang && hljs.getLanguage(lang)) { try {return hljs.highlight(str, { 언어: lang }).value; } catch (__) {}}return ''; // 외부 기본 이스케이프 사용 }});
또는 전체 래퍼 재정의를 사용하는 경우( <pre>
또는 <code>
에 클래스를 할당해야 하는 경우):
import markdownit from 'markdown-it'import hljs from 'highlight.js' // https://highlightjs.org// 실제 기본값const md = markdownit({ 하이라이트: 함수 (str, lang) {if (lang && hljs.getLanguage(lang)) { try {return '<pre><code class="hljs">' + hljs.highlight(str, { 언어: lang,ignoreIllegals : true }).value + '</code></pre>'; } catch (__) {}}return '<pre><code class="hljs">' + md.utils.escapeHtml(str) + '</code></pre>'; }});
linkify: true
linkify-it을 사용합니다. linkify-it을 구성하려면 md.linkify
통해 linkify 인스턴스에 액세스합니다.
md.linkify.set({ fuzzyEmail: false }); // 이메일을 링크로 변환하는 것을 비활성화합니다.
API 문서
플러그인을 작성하려는 경우 개발 정보를 살펴보세요.
내장(기본적으로 활성화됨):
테이블(GFM)
취소선(GFM)
플러그인을 통해:
아래첨자
어깨 기호
각주
정의 목록
약어
이모티콘
맞춤 컨테이너
끼워 넣다
표시
... 그리고 다른 사람들
기본적으로 모든 규칙은 활성화되어 있지만 옵션으로 제한될 수 있습니다. 플러그인을 로드하면 모든 규칙이 자동으로 활성화됩니다.
'markdown-it'에서 markdownit 가져오기// curryingconst md = markdownit()을 사용하여 규칙 활성화/비활성화 .disable(['링크', '이미지']) .enable(['링크']) .enable('image');// 모든 것을 활성화합니다.const md = markdownit({ HTML: 사실, linkify: 사실, 타이포그래퍼: true,});
소스에서 모든 규칙을 찾을 수 있습니다.
parser_core.mjs
parser_block.mjs
parser_inline.mjs
다음은 MB Pro Retina 2013(2.4GHz)의 Readme 구문 분석 결과입니다.
npm 실행 벤치마크-뎁스 벤치마크/benchmark.mjs 읽어보기 선택된 샘플: (1/28) > 읽어보기 샘플: README.md(7774바이트) > commonmark-reference x 1,222 ops/sec ±0.96%(97 실행 샘플링) > current x 743 ops/sec ±0.84%(97 실행 샘플링) > current-commonmark x 1,568 ops/sec ±0.84%(98개 실행 샘플링) > 표시됨 x 1,587ops/초 ±4.31% (샘플링된 93개 실행)
메모. CommonMark 버전은 보다 "정직한" 비교를 위해 단순화된 링크 노멀라이저와 함께 실행됩니다. 차이는 1.5×입니다.
보시다시피 markdown-it
유연성에 비해 속도가 빠르지 않습니다. 다른 구현에서는 사용할 수 없는 추가 기능으로 인해 "정식" 버전이 느려집니다.
Tidelift 구독의 일부로 제공됩니다.
markdown-it
및 수천 개의 기타 패키지 관리자는 Tidelift와 협력하여 애플리케이션 구축에 사용하는 오픈 소스 종속성에 대한 상업적 지원 및 유지 관리를 제공하고 있습니다. 시간을 절약하고 위험을 줄이며 코드 상태를 개선하는 동시에 사용하는 정확한 종속성에 대한 비용을 관리자에게 지불합니다. 자세히 알아보세요.
알렉스 코차린(Alex Kocharin) github/rlidwka
비탈리 푸즈린 github/puzrin
마크다운 -Remarkable 코드의 99%에 기여한 작성자가 동일한 작성자이지만 새로운 리더십(Vitaly 및 Alex)이 있는 프로젝트로 이동하기로 결정한 결과입니다. 포크가 아닙니다.
CommonMark 사양 및 참조 구현에 대한 작업을 수행한 John MacFarlane에게 큰 감사를 드립니다. 그의 작업 덕분에 이 프로젝트를 개발하는 동안 우리는 많은 시간을 절약할 수 있었습니다.
관련 링크:
https://github.com/jgm/CommonMark - C 및 JS의 CommonMark 구현을 참조하고 최신 사양 및 온라인 데모도 포함되어 있습니다.
http://talk.commonmark.org - CommonMark 포럼, 개발자들의 노력을 협력할 수 있는 좋은 장소입니다.
포트
모션 마크다운-it - Ruby/RubyMotion
markdown-it-py- Python