{"id":20350021,"url":"https://github.com/webbestmaster/markdown-pro","last_synced_at":"2025-04-12T01:30:27.611Z","repository":{"id":41863062,"uuid":"271256342","full_name":"webbestmaster/markdown-pro","owner":"webbestmaster","description":"Markdown Pro - the lightest markdown parser","archived":false,"fork":false,"pushed_at":"2024-09-24T22:04:54.000Z","size":744,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T21:11:35.033Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://webbestmaster.github.io/markdown-pro/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webbestmaster.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-10T11:16:33.000Z","updated_at":"2024-09-24T22:04:57.000Z","dependencies_parsed_at":"2024-06-21T05:47:48.342Z","dependency_job_id":"9755f4ca-ac7f-4a02-87de-db298624221f","html_url":"https://github.com/webbestmaster/markdown-pro","commit_stats":{"total_commits":345,"total_committers":2,"mean_commits":172.5,"dds":"0.023188405797101463","last_synced_commit":"1f8e56091b587de18fd75beaac071808907c9f86"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbestmaster%2Fmarkdown-pro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbestmaster%2Fmarkdown-pro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbestmaster%2Fmarkdown-pro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbestmaster%2Fmarkdown-pro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webbestmaster","download_url":"https://codeload.github.com/webbestmaster/markdown-pro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248504178,"owners_count":21115132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T22:28:36.370Z","updated_at":"2025-04-12T01:30:27.591Z","avatar_url":"https://github.com/webbestmaster.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Markdown Pro\n\n[![GitHub license](https://img.shields.io/npm/l/markdown-pro)](https://github.com/webbestmaster/markdown-pro/blob/master/license)\n[![codecov](https://codecov.io/gh/webbestmaster/markdown-pro/branch/master/graph/badge.svg)](https://codecov.io/gh/webbestmaster/markdown-pro)\n[![npm version](https://img.shields.io/npm/v/markdown-pro.svg)](https://www.npmjs.com/package/markdown-pro)\n[![Known Vulnerabilities](https://snyk.io/test/github/webbestmaster/markdown-pro/badge.svg)](https://snyk.io/test/github/webbestmaster/markdown-pro)\n[![Dependency count](https://badgen.net/bundlephobia/dependency-count/markdown-pro)](https://libraries.io/npm/markdown-pro)\n[![npm bundle size](https://img.shields.io/bundlephobia/minzip/markdown-pro)](https://bundlephobia.com/package/markdown-pro)\n[![nodejs version](https://img.shields.io/node/v/markdown-pro)](https://nodejs.org/en/docs)\n[![Github CI](https://github.com/webbestmaster/markdown-pro/actions/workflows/github-ci.yml/badge.svg)](https://github.com/webbestmaster/markdown-pro/actions/workflows/github-ci.yml)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/webbestmaster/markdown-pro/github-ci.yml)](https://github.com/webbestmaster/markdown-pro/actions/workflows/github-ci.yml)\n[![Type definitions](https://img.shields.io/npm/types/markdown-pro)](https://www.typescriptlang.org)\n[![Website](https://img.shields.io/website?url=https://webbestmaster.github.io/markdown-pro)](https://webbestmaster.github.io/markdown-pro)\n[![CodeFactor](https://www.codefactor.io/repository/github/webbestmaster/markdown-pro/badge)](https://www.codefactor.io/repository/github/webbestmaster/markdown-pro)\n[![Package Quality](https://packagequality.com/shield/markdown-pro.svg)](https://packagequality.com/#?package=markdown-pro)\n[![GitHub stars](https://img.shields.io/github/stars/webbestmaster/markdown-pro?style=social)](https://github.com/webbestmaster/markdown-pro)\n\n\u003c!--\n[![Libraries.io dependency status for GitHub repo](https://img.shields.io/librariesio/github/webbestmaster/markdown-pro)](https://libraries.io/npm/markdown-pro)\n--\u003e\n\nMarkdown Pro - the lightest markdown parser.\n\n**[Live demo](https://webbestmaster.github.io/markdown-pro)**\n\n\n## Install\n\n```bash\nnpm i markdown-pro\n```\n\n## Usage examples\n\n```javascript\nimport markdownPro, {ThemeNameEnum, classNameMdPro, classNameMdProThemeLight, classNameMdProThemeDark} from 'markdown-pro';\n// import styles\nimport 'markdown-pro/dist/style.css';\n\nconst htmlCode = markdownPro('# Markdown Pro'); // \u003ch1\u003eMarkdown Pro\u003c/h1\u003e\n\nconst config = {\n    // convert '\\n' into \u003cbr/\u003e, default: false, optional\n    useLineBreak: true,\n    // add css class into wrapper, default: '', optional\n    wrapperClassName: 'my-markdown-pro',\n    // https://exmaple.com -\u003e \u003ca href=\"https://exmaple.com\"\u003ehttps://exmaple.com\u003c/a\u003e, default: true, optional\n    parseLink: true,\n    // langNme: string, code: string, optional\n    codeHighlight: function (langNme, code) {\n        return yourHighlightFunction(langNme, code);\n    },\n    // use wrapper \u003cdiv class=\"md-pro\"\u003e...\u003c/div\u003e, default: true, optional\n    useWrapper: true,\n    // themeName: light | dark | auto, default: auto, optional\n    // auto - will use current system theme i.e. light or dark\n    // needed class will be added to the wrapper div\n    themeName: ThemeNameEnum.auto,\n};\n\nconst htmlCodeConfigured = markdownPro('# Markdown Pro', config);\n```\n\n\n### Typing Flow\nUse `./flow-typed/markdown-pro.js`.\n\n\n### Reference\n\n#### Headers\n```html\n# Header 1       -\u003e  \u003ch1\u003eHeader 1\u003c/h1\u003e\n## Header 2      -\u003e  \u003ch2\u003eHeader 2\u003c/h2\u003e\n### Header 3     -\u003e  \u003ch3\u003eHeader 3\u003c/h3\u003e\n#### Header 4    -\u003e  \u003ch4\u003eHeader 4\u003c/h4\u003e\n##### Header 5   -\u003e  \u003ch5\u003eHeader 5\u003c/h5\u003e\n###### Header 6  -\u003e  \u003ch6\u003eHeader 6\u003c/h6\u003e\n```\n\n\n#### Paragraph\n\n```html\nsome text -\u003e \u003cp\u003esome text\u003c/p\u003e\n```\n\n\n#### Emphasis\n\n```html\n**This is bold text**               -\u003e  \u003cb\u003eThis is bold text\u003c/b\u003e\n__This is underline text__          -\u003e  \u003cu\u003eThis is underline text\u003c/u\u003e\n_This is italic text_               -\u003e  \u003ci\u003eThis is italic text\u003c/i\u003e\n*This is italic text __too__*       -\u003e  \u003ci\u003eThis is italic text \u003cu\u003etoo\u003c/u\u003e\u003c/i\u003e\n***This is bold and italic text***  -\u003e  \u003cb\u003e\u003ci\u003eThis is bold and italic text\u003c/i\u003e\u003c/b\u003e\n~~This is strikethrough text~~      -\u003e  \u003cstrike\u003eThis is strikethrough text\u003c/strike\u003e\n```\n\n\n#### Lines\n\n```html\n---  -\u003e  \u003chr/\u003e\n***  -\u003e  \u003chr/\u003e\n___  -\u003e  \u003chr/\u003e\n```\n\n\n#### Subscript/Superscript\n\n```html\n25^th^      -\u003e  25\u003csup\u003eth\u003c/sup\u003e\nC~2~H~5~OH  -\u003e  C\u003csub\u003e2\u003c/sub\u003eH\u003csub\u003e5\u003c/sub\u003eOH\n```\n\n\n#### Images\n\n```html\n![](https://placekitten.com/100/100)                                        -\u003e  \u003cimg src=\"https://placekitten.com/100/100\"/\u003e\n![Cat](https://placekitten.com/110/110)                                     -\u003e  \u003cimg src=\"https://placekitten.com/110/110\" alt=\"Cat\"/\u003e\n![Cat](https://placekitten.com/120/120 \"The cat\")                           -\u003e  \u003cimg src=\"https://placekitten.com/120/120\" alt=\"Cat\" title=\"The cat\"/\u003e\n![Cat](https://placekitten.com/120/120 \"The cat\" your-attribute=\"my value\") -\u003e  \u003cimg src=\"https://placekitten.com/120/120\" alt=\"Cat\" title=\"The cat\" your-attribute=\"my value\"/\u003e\nImage ![](https://placekitten.com/100/25) inline                            -\u003e  Image \u003cimg src=\"https://placekitten.com/100/25\"/\u003e inline\n```\n\n\n#### Checkboxes\n\n```html\n// big \"X\" to check checkbox\n[X] checked    -\u003e  \u003cinput type=\"checkbox\" checked=\"checked\" disabled=\"disabled\"/\u003e checked\n\n// small \"x\" to check checkbox\n[x] checked    -\u003e  \u003cinput type=\"checkbox\" checked=\"checked\" disabled=\"disabled\"/\u003e checked\n\n// single space (\" \") to uncheck checkbox\n[ ] unchecked  -\u003e  \u003cinput type=\"checkbox\" disabled=\"disabled\"/\u003e unchecked\n```\n\n\n#### Links\n\n```html\n[the site](http://example.com)               -\u003e  \u003ca href=\"http://example.com\"\u003ethe site\u003c/a\u003e\n[](http://example.com)                       -\u003e  \u003ca href=\"http://example.com\"\u003ehttp://example.com\u003c/a\u003e\n[](http://example.com \"go to site\")          -\u003e  \u003ca href=\"http://example.com\" title=\"go to site\"\u003ehttp://example.com\u003c/a\u003e\n[the site](http://example.com \"go to site\")  -\u003e  \u003ca href=\"http://example.com\" title=\"go to site\"\u003ethe site\u003c/a\u003e\n\n// parse link, configurable\nhttp://example.com                           -\u003e  \u003ca href=\"http://example.com\"\u003ehttp://example.com\u003c/a\u003e\n```\n\n\n#### Emails\n\n```html\n[send a email](my-email@example.com)                                    -\u003e  \u003ca href=\"mailto:my-email@example.com\"\u003esend a email\u003c/a\u003e\n[](my-email@example.com \"send a email\")                                 -\u003e  \u003ca href=\"mailto:my-email@example.com\" title=\"send a email\"\u003emy-email@example.com\u003c/a\u003e\n[send a email](my-email@example.com \"send a email\")                     -\u003e  \u003ca href=\"mailto:my-email@example.com\" title=\"send a email\"\u003esend a email\u003c/a\u003e\n[email and subject](my-email@example.com \"Link title\" \"Email subject\")  -\u003e  \u003ca href=\"mailto:my-email@example.com?subject=Email subject\" title=\"Link title\"\u003eemail and subject\u003c/a\u003e\n[](my-email@example.com)                                                -\u003e  \u003ca href=\"mailto:my-email@example.com\"\u003emy-email@example.com\u003c/a\u003e\n\n// parse email, configurable\nmy-email@example.com                                                    -\u003e  \u003ca href=\"mailto:my-email@example.com\"\u003emy-email@example.com\u003c/a\u003e\n```\n\n\n#### Unordered list\n\nMarkdown:\n```\n+ Create an unordered list by starting a line with `+`, `-` or `*`\n+ Sub-lists are made by indenting space(s):\n    + Lorem ipsum dolor\n    + Alias animi autem beatae\n```\n\nHtml:\n```html\n\u003cul\u003e\n    \u003cli\u003eCreate an unordered list by starting a line with \u003ccode data-type=\"inline\"\u003e+\u003c/code\u003e, \u003ccode data-type=\"inline\"\u003e-\u003c/code\u003e or \u003ccode data-type=\"inline\"\u003e*\u003c/code\u003e\u003c/li\u003e\n    \u003cli\u003eSub-lists are made by indenting space(s):\n        \u003cul\u003e\n            \u003cli\u003eLorem ipsum dolor\u003c/li\u003e\n            \u003cli\u003eAlias animi autem beatae\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/li\u003e\n\u003c/ul\u003e\n```\n\n\n### Ordered lists\n\nMarkdown:\n```\n5. Create a Numeric list\n1. by starting a line with\n2. any number(s) with a dot, for example: `1.`\n\nB. Create a Big Alphabet list\nO. by starting a line with\nP. any Big Letter(s) with a dot, for example: `A.`\nQ. PS: avoid Roman number - I, V, X, L, C, D, M\n\nf. The same rule\no. for Small Alphabet list\nq. PS: avoid Roman number - i, v, x, l, c, d, m\n\nI. Create a Big Roman Number list\nII. by starting a line with\nV. any Big Roman Number(s) with a dot, for example: `I.`\n\nii. The same rule\nv. for Small Roman Number list\n```\n\nHtml:\n```html\n\u003col type=\"1\" start=\"5\"\u003e\n    \u003cli\u003eCreate a Numeric list\u003c/li\u003e\n    \u003cli\u003eby starting a line with\u003c/li\u003e\n    \u003cli\u003eany number(s) with a dot, for example: \u003ccode data-type=\"inline\"\u003e1.\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003col type=\"A\" start=\"B\"\u003e\n    \u003cli\u003eCreate a Big Alphabet list\u003c/li\u003e\n    \u003cli\u003eby starting a line with\u003c/li\u003e\n    \u003cli\u003eany Big Letter(s) with a dot, for example: \u003ccode data-type=\"inline\"\u003eA.\u003c/code\u003e\u003c/li\u003e\n    \u003cli\u003ePS: avoid Roman number - I, V, X, L, C, D, M\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003col type=\"a\" start=\"f\"\u003e\n    \u003cli\u003eThe same rule\u003c/li\u003e\n    \u003cli\u003efor Small Alphabet list\u003c/li\u003e\n    \u003cli\u003ePS: avoid Roman number - i, v, x, l, c, d, m\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003col type=\"I\" start=\"I\"\u003e\n    \u003cli\u003eCreate a Big Roman Number list\u003c/li\u003e\n    \u003cli\u003eby starting a line with\u003c/li\u003e\n    \u003cli\u003eany Big Roman Number(s) with a dot, for example: \u003ccode data-type=\"inline\"\u003eI.\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003col type=\"i\" start=\"ii\"\u003e\n    \u003cli\u003eThe same rule\u003c/li\u003e\n    \u003cli\u003efor Small Roman Number list\u003c/li\u003e\n\u003c/ol\u003e\n```\n\n\n### Table\n\nMarkdown:\n```\n| Left | Center | Right  |\n| :--- | :----: | -----: |\n| beep | 123    | abc    |\n| boop | 456    | def    |\n```\n\nHtml:\n```html\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth align=\"left\"\u003eLeft\u003c/th\u003e\n            \u003cth align=\"center\"\u003eCenter\u003c/th\u003e\n            \u003cth align=\"right\"\u003eRight\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd align=\"left\"\u003ebeep\u003c/td\u003e\n            \u003ctd align=\"center\"\u003e123\u003c/td\u003e\n            \u003ctd align=\"right\"\u003eabc\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd align=\"left\"\u003eboop\u003c/td\u003e\n            \u003ctd align=\"center\"\u003e456\u003c/td\u003e\n            \u003ctd align=\"right\"\u003edef\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n```\n\n\n### Footnote\n\nMarkdown:\n```\nFootnote 1 link[^first].\n\nInline footnote^[Text of inline footnote] definition.\n\n[^first]: Footnote definition.\n```\n\nHtml:\n```html\n\u003cp\u003eFootnote 1 link\u003ca href=\"#first\"\u003e\u003csup\u003e[1]\u003c/sup\u003e\u003c/a\u003e.\u003c/p\u003e\n\n\u003cp\u003eInline footnote\u003ca href=\"#text-of-inline-footnote\"\u003e\u003csup\u003e[2]\u003c/sup\u003e\u003c/a\u003e definition.\u003c/p\u003e\n\n\u003chr/\u003e\n\n\u003col type=\"1\"\u003e\n    \u003cli id=\"first\"\u003e\n        \u003cp\u003eFootnote definition.\u003c/p\u003e\n    \u003c/li\u003e\n    \u003cli id=\"text-of-inline-footnote\"\u003e\n        \u003cp\u003eText of inline footnote\u003c/p\u003e\n    \u003c/li\u003e\n\u003c/ol\u003e\n```\n\n\n#### Blockquote\n\n```html\n\u003e Markdown-pro  -\u003e  \u003cblockquote\u003eMarkdown-pro\u003c/blockquote\u003e\n```\n\n\n#### Code\n\n\u003cpre\u003e\u003ccode\u003e```bash                 -\u003e  \u0026lt;code data-lang=\"bash\"\u0026gt;\n$ npm i markdown-pro    -\u003e  $ npm i markdown-pro\n$ sudo be happy         -\u003e  $ sudo be happy\n```                     -\u003e  \u0026lt;\u0026#47;code\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\n\n### Variables\n\n```html\n[image-variable]: https://placekitten.com/100/100\n[url variable]: http://example.com\n[email variable]: email@example.com\n\n![][image-variable]           -\u003e  \u003cimg loading=\"lazy\" src=\"https://placekitten.com/100/100\"/\u003e\n![cat][image-variable]        -\u003e  \u003cimg loading=\"lazy\" src=\"https://placekitten.com/100/100\" alt=\"cat\"/\u003e\n\n[][url variable]              -\u003e  \u003ca href=\"http://example.com\"\u003ehttp://example.com\u003c/a\u003e\n[to site][url variable]       -\u003e  \u003ca href=\"http://example.com\"\u003eto site\u003c/a\u003e\n[send email][email variable]  -\u003e  \u003ca href=\"mailto:email@example.com\"\u003esend email\u003c/a\u003e\n```\n\n## License\n\nSee [license](license).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebbestmaster%2Fmarkdown-pro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebbestmaster%2Fmarkdown-pro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebbestmaster%2Fmarkdown-pro/lists"}