[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3115":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":15,"starSnapshotCount":15,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},3115,"markdown-it","markdown-it\u002Fmarkdown-it","Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed","https:\u002F\u002Fmarkdown-it.github.io",null,"JavaScript",21552,1832,178,17,0,3,37,142,18,104.29,"MIT License",false,"master",true,[26,27,28],"commonmark","javascript","markdown","2026-06-12 04:00:16","# markdown-it \u003C!-- omit in toc -->\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Factions\u002Fworkflows\u002Fci.yml)\n[![NPM version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fmarkdown-it.svg?style=flat)](https:\u002F\u002Fwww.npmjs.org\u002Fpackage\u002Fmarkdown-it)\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fmarkdown-it\u002Fmarkdown-it\u002Fbadge.svg?branch=master&service=github)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fmarkdown-it\u002Fmarkdown-it?branch=master)\n[![Gitter](https:\u002F\u002Fbadges.gitter.im\u002FJoin%20Chat.svg)](https:\u002F\u002Fgitter.im\u002Fmarkdown-it\u002Fmarkdown-it)\n\n> Markdown parser done right. Fast and easy to extend.\n\n__[Live demo](https:\u002F\u002Fmarkdown-it.github.io)__\n\n- Follows the __[CommonMark spec](http:\u002F\u002Fspec.commonmark.org\u002F)__ + adds syntax extensions & sugar (URL autolinking, typographer).\n- Configurable syntax! You can add new rules and even replace existing ones.\n- High speed.\n- [Safe](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Ftree\u002Fmaster\u002Fdocs\u002Fsecurity.md) by default.\n- Community-written __[plugins](https:\u002F\u002Fwww.npmjs.org\u002Fbrowse\u002Fkeyword\u002Fmarkdown-it-plugin)__ and [other packages](https:\u002F\u002Fwww.npmjs.org\u002Fbrowse\u002Fkeyword\u002Fmarkdown-it) on npm.\n\n__Table of content__\n\n- [Install](#install)\n- [Usage examples](#usage-examples)\n  - [Simple](#simple)\n  - [Init with presets and options](#init-with-presets-and-options)\n  - [Plugins load](#plugins-load)\n  - [Syntax highlighting](#syntax-highlighting)\n  - [Linkify](#linkify)\n- [API](#api)\n- [Syntax extensions](#syntax-extensions)\n  - [Manage rules](#manage-rules)\n- [Benchmark](#benchmark)\n- [markdown-it for enterprise](#markdown-it-for-enterprise)\n- [Authors](#authors)\n- [References \u002F Thanks](#references--thanks)\n\n## Install\n\n**node.js**:\n\n```bash\nnpm install markdown-it\n```\n\n**browser (CDN):**\n\n- [jsDeliver CDN](http:\u002F\u002Fwww.jsdelivr.com\u002F#!markdown-it \"jsDelivr CDN\")\n- [cdnjs.com CDN](https:\u002F\u002Fcdnjs.com\u002Flibraries\u002Fmarkdown-it \"cdnjs.com\")\n\n\n## Usage examples\n\nSee also:\n\n- __[API documentation](https:\u002F\u002Fmarkdown-it.github.io\u002Fmarkdown-it\u002F)__ - for more\n  info and examples.\n- [Development info](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Ftree\u002Fmaster\u002Fdocs) -\n  for plugins writers.\n\n\n### Simple\n\n```js\n\u002F\u002F node.js\n\u002F\u002F can use `require('markdown-it')` for CJS\nimport markdownit from 'markdown-it'\nconst md = markdownit()\nconst result = md.render('# markdown-it rulezz!');\n\n\u002F\u002F browser with UMD build, added to \"window\" on script load\n\u002F\u002F Note, there is no dash in \"markdownit\".\nconst md = window.markdownit();\nconst result = md.render('# markdown-it rulezz!');\n```\n\nSingle line rendering, without paragraph wrap:\n\n```js\nimport markdownit from 'markdown-it'\nconst md = markdownit()\nconst result = md.renderInline('__markdown-it__ rulezz!');\n```\n\n\n### Init with presets and options\n\n(*) presets define combinations of active rules and options. Can be\n`\"commonmark\"`, `\"zero\"` or `\"default\"` (if skipped). See\n[API docs](https:\u002F\u002Fmarkdown-it.github.io\u002Fmarkdown-it\u002F#MarkdownIt.new) for more details.\n\n```js\nimport markdownit from 'markdown-it'\n\n\u002F\u002F commonmark mode\nconst md = markdownit('commonmark')\n\n\u002F\u002F default mode\nconst md = markdownit()\n\n\u002F\u002F enable everything\nconst md = markdownit({\n  html: true,\n  linkify: true,\n  typographer: true\n})\n\n\u002F\u002F full options list (defaults)\nconst md = markdownit({\n  \u002F\u002F Enable HTML tags in source\n  html:         false,\n\n  \u002F\u002F Use '\u002F' to close single tags (\u003Cbr \u002F>).\n  \u002F\u002F This is only for full CommonMark compatibility.\n  xhtmlOut:     false,\n\n  \u002F\u002F Convert '\\n' in paragraphs into \u003Cbr>\n  breaks:       false,\n\n  \u002F\u002F CSS language prefix for fenced blocks. Can be\n  \u002F\u002F useful for external highlighters.\n  langPrefix:   'language-',\n\n  \u002F\u002F Autoconvert URL-like text to links\n  linkify:      false,\n\n  \u002F\u002F Enable some language-neutral replacement + quotes beautification\n  \u002F\u002F For the full list of replacements, see https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Fblob\u002Fmaster\u002Flib\u002Frules_core\u002Freplacements.mjs\n  typographer:  false,\n\n  \u002F\u002F Double + single quotes replacement pairs, when typographer enabled,\n  \u002F\u002F and smartquotes on. Could be either a String or an Array.\n  \u002F\u002F\n  \u002F\u002F For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n  \u002F\u002F and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n  quotes: '“”‘’',\n\n  \u002F\u002F Highlighter function. Should return escaped HTML,\n  \u002F\u002F or '' if the source string is not changed and should be escaped externally.\n  \u002F\u002F If result starts with \u003Cpre... internal wrapper is skipped.\n  highlight: function (\u002F*str, lang*\u002F) { return ''; }\n});\n```\n\n### Plugins load\n\n```js\nimport markdownit from 'markdown-it'\n\nconst md = markdownit\n  .use(plugin1)\n  .use(plugin2, opts, ...)\n  .use(plugin3);\n```\n\n\n### Syntax highlighting\n\nApply syntax highlighting to fenced code blocks with the `highlight` option:\n\n```js\nimport markdownit from 'markdown-it'\nimport hljs from 'highlight.js' \u002F\u002F https:\u002F\u002Fhighlightjs.org\n\n\u002F\u002F Actual default values\nconst md = markdownit({\n  highlight: function (str, lang) {\n    if (lang && hljs.getLanguage(lang)) {\n      try {\n        return hljs.highlight(str, { language: lang }).value;\n      } catch (__) {}\n    }\n\n    return ''; \u002F\u002F use external default escaping\n  }\n});\n```\n\nOr with full wrapper override (if you need assign class to `\u003Cpre>` or `\u003Ccode>`):\n\n```js\nimport markdownit from 'markdown-it'\nimport hljs from 'highlight.js' \u002F\u002F https:\u002F\u002Fhighlightjs.org\n\n\u002F\u002F Actual default values\nconst md = markdownit({\n  highlight: function (str, lang) {\n    if (lang && hljs.getLanguage(lang)) {\n      try {\n        return '\u003Cpre>\u003Ccode class=\"hljs\">' +\n               hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n               '\u003C\u002Fcode>\u003C\u002Fpre>';\n      } catch (__) {}\n    }\n\n    return '\u003Cpre>\u003Ccode class=\"hljs\">' + md.utils.escapeHtml(str) + '\u003C\u002Fcode>\u003C\u002Fpre>';\n  }\n});\n```\n\n### Linkify\n\n`linkify: true` uses [linkify-it](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Flinkify-it). To\nconfigure linkify-it, access the linkify instance through `md.linkify`:\n\n```js\nmd.linkify.set({ fuzzyEmail: false });  \u002F\u002F disables converting email to link\n```\n\n\n## API\n\n__[API documentation](https:\u002F\u002Fmarkdown-it.github.io\u002Fmarkdown-it\u002F)__\n\nIf you are going to write plugins, please take a look at\n[Development info](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Ftree\u002Fmaster\u002Fdocs).\n\n\n## Syntax extensions\n\nEmbedded (enabled by default):\n\n- [Tables](https:\u002F\u002Fhelp.github.com\u002Farticles\u002Forganizing-information-with-tables\u002F) (GFM)\n- [Strikethrough](https:\u002F\u002Fhelp.github.com\u002Farticles\u002Fbasic-writing-and-formatting-syntax\u002F#styling-text) (GFM)\n\nVia plugins:\n\n- [subscript](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-sub)\n- [superscript](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-sup)\n- [footnote](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-footnote)\n- [definition list](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-deflist)\n- [abbreviation](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-abbr)\n- [emoji](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-emoji)\n- [custom container](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-container)\n- [insert](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-ins)\n- [mark](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it-mark)\n- ... and [others](https:\u002F\u002Fwww.npmjs.org\u002Fbrowse\u002Fkeyword\u002Fmarkdown-it-plugin)\n\n\n### Manage rules\n\nBy default all rules are enabled, but can be restricted by options. On plugin\nload all its rules are enabled automatically.\n\n```js\nimport markdownit from 'markdown-it'\n\n\u002F\u002F Activate\u002Fdeactivate rules, with currying\nconst md = markdownit()\n  .disable(['link', 'image'])\n  .enable(['link'])\n  .enable('image');\n\n\u002F\u002F Enable everything\nconst md = markdownit({\n  html: true,\n  linkify: true,\n  typographer: true,\n});\n```\n\nYou can find all rules in sources:\n\n- [`parser_core.mjs`](lib\u002Fparser_core.mjs)\n- [`parser_block.mjs`](lib\u002Fparser_block.mjs)\n- [`parser_inline.mjs`](lib\u002Fparser_inline.mjs)\n\n\n## Benchmark\n\nHere is the result of readme parse at MB Pro Retina 2013 (2.4 GHz):\n\n```bash\nnpm run benchmark-deps\nbenchmark\u002Fbenchmark.mjs readme\n\nSelected samples: (1 of 28)\n > README\n\nSample: README.md (7774 bytes)\n > commonmark-reference x 1,222 ops\u002Fsec ±0.96% (97 runs sampled)\n > current x 743 ops\u002Fsec ±0.84% (97 runs sampled)\n > current-commonmark x 1,568 ops\u002Fsec ±0.84% (98 runs sampled)\n > marked x 1,587 ops\u002Fsec ±4.31% (93 runs sampled)\n```\n\n__Note.__ CommonMark version runs with [simplified link normalizers](https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\u002Fblob\u002Fmaster\u002Fbenchmark\u002Fimplementations\u002Fcurrent-commonmark\u002Findex.mjs)\nfor more \"honest\" compare. Difference is ≈1.5×.\n\nAs you can see, `markdown-it` doesn't pay with speed for its flexibility.\nSlowdown of \"full\" version caused by additional features not available in\nother implementations.\n\n\n## markdown-it for enterprise\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of `markdown-it` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https:\u002F\u002Ftidelift.com\u002Fsubscription\u002Fpkg\u002Fnpm-markdown-it?utm_source=npm-markdown-it&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)\n\n\n## Authors\n\n- Alex Kocharin [github\u002Frlidwka](https:\u002F\u002Fgithub.com\u002Frlidwka)\n- Vitaly Puzrin [github\u002Fpuzrin](https:\u002F\u002Fgithub.com\u002Fpuzrin)\n\n_markdown-it_ is the result of the decision of the authors who contributed to\n99% of the _Remarkable_ code to move to a project with the same authorship but\nnew leadership (Vitaly and Alex). It's not a fork.\n\n## References \u002F Thanks\n\nBig thanks to [John MacFarlane](https:\u002F\u002Fgithub.com\u002Fjgm) for his work on the\nCommonMark spec and reference implementations. His work saved us a lot of time\nduring this project's development.\n\n**Related Links:**\n\n- https:\u002F\u002Fgithub.com\u002Fjgm\u002FCommonMark - reference CommonMark implementations in C & JS,\n  also contains latest spec & online demo.\n- http:\u002F\u002Ftalk.commonmark.org - CommonMark forum, good place to collaborate\n  developers' efforts.\n\n**Ports**\n\n- [motion-markdown-it](https:\u002F\u002Fgithub.com\u002Fdigitalmoksha\u002Fmotion-markdown-it) - Ruby\u002FRubyMotion\n- [markdown-it-py](https:\u002F\u002Fgithub.com\u002FExecutableBookProject\u002Fmarkdown-it-py)- Python\n","markdown-it 是一个高性能的 Markdown 解析器，完全支持 CommonMark 规范，并提供了丰富的扩展功能。其核心特点包括对 CommonMark 的全面兼容、可配置的语法规则以及快速处理速度。用户可以轻松添加新的规则或替换现有规则，同时该解析器默认具有安全性保障。此外，社区还为其开发了大量插件，进一步增强了其功能性和灵活性。适用于需要将 Markdown 格式转换为 HTML 的各种场景，如博客平台、文档生成工具等，尤其适合那些追求高效解析和高度可定制性的开发者。",2,"2026-06-11 02:52:33","top_language"]