{"_id":"@brodybits/remark-parse","_rev":"4-03f855741d57f96247e668bd92ca4eb8","name":"@brodybits/remark-parse","dist-tags":{"latest":"8.0.6"},"versions":{"8.0.4":{"name":"@brodybits/remark-parse","version":"8.0.4","description":"remark plugin to parse Markdown","license":"MIT","keywords":["unified","remark","remark-plugin","plugin","markdown","mdast","abstract","syntax","tree","ast","parse"],"types":"types/index.d.ts","homepage":"https://remark.js.org","repository":{"type":"git","url":"https://github.com/remarkjs/remark/tree/main/packages/remark-parse"},"bugs":{"url":"https://github.com/remarkjs/remark/issues"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},{"name":"Eugene Sharygin","email":"eush77@gmail.com"},{"name":"Junyoung Choi","email":"fluke8259@gmail.com"},{"name":"Elijah Hamovitz","email":"elijahhamovitz@gmail.com"},{"name":"Ika","email":"ikatyang@gmail.com"}],"dependencies":{"ccount":"^1.0.0","collapse-white-space":"^1.0.2","is-alphabetical":"^1.0.0","is-decimal":"^1.0.0","is-whitespace-character":"^1.0.0","is-word-character":"^1.0.0","markdown-escapes":"^1.0.0","parse-entities":"^2.0.0","repeat-string":"^1.5.4","state-toggle":"^1.0.0","trim":"^1.0.1","trim-trailing-lines":"^1.0.0","unherit":"^1.0.4","unist-util-remove-position":"^2.0.0","vfile-location":"^3.0.0","xtend":"^4.0.1"},"scripts":{"test":"tape test.js"},"xo":false,"_id":"@brodybits/remark-parse@8.0.4","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-8oQwGMSQJ0GhvuBtu7o0Uppx1zoshIBJ0kmWBFSAKZleGxllDARSR41R45iCDF9t8O+efd8ioZ9R3rJtlaCIog==","shasum":"b194257afe7c075b2029bd5e80f9933ada20375c","tarball":"https://registry.npmjs.org/@brodybits/remark-parse/-/remark-parse-8.0.4.tgz","fileCount":53,"unpackedSize":114893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx4xsCRA9TVsSAnZWagAA+XAP/3O5Z4wvMeSuxjKsgl8s\nOE8acRBqn6hiCgUZRUH7jgF415LcWZwntRsxDkmmls9d88LucUWDGkVkSG0k\nptwyMOC9VH8A1z6gT/HigYZkySKwRp8R1bpk/xfHwgeUOpTKQo9JiIV8k+ks\n/g2L2wBwav4zG5bpwjLlaYIXXe8MFVVUVlqEMb4gwb3ULCka9IbWr+8nx36i\n3tgxZVvcHyXzZt7HOFfN1y8z/slw37OO5UTGpi7vtZZlGHHTInXb4xC41DoW\n/zwUYbXHMby/vsXAf9syEnamErOd5NV+eTwMN5JPoG5OpTbEI+w1IsXGhi94\nr+Ns8SfByQdX9FQClBww6Q2sQQPavbPHiU82bLTlBtG2LQzenlGnEG1FFN5S\nL3Nh8obr6jWJypWCI6hf4YgXmR1jnV8MNtjxMF0mjJg6wfr1lSddeXkUPXLS\nzXhJoeUsR8u8q8/1K/kMR9CF+ZvgYCNyHFQaGPl3ZajpxxibtrvbluqlB5/i\nxbAp7FuFMfPJWSp4XZv6OsjruFkYhYfaeoG+lPyhVkWeVApyQZ010R3BSMrB\nz9Vnw0+Pfuco+QeDFcJpiWRvbZcHUnt2xbUHVqFFYAROzrk7pmx6UO0ke03G\nG0OWHYPC+6/XjOe4m3OnFR6MOe2J7Zz5vXcGW8h4uuaU5nbtcI8BFBAQQIRc\nTtzD\r\n=Z0Ko\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHcXLDXZEPGqaD/YHhDmhfR/XN9n0IscerXJ2mQjB7HAiBDPnyA6AJiL/sX7tD/NJmvWUKOr/TcrHdJ0x6Tb62LIA=="}]},"_npmUser":{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"},"directories":{},"maintainers":[{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/remark-parse_8.0.4_1623690347941_0.4916840105205953"},"_hasShrinkwrap":false},"8.0.5":{"name":"@brodybits/remark-parse","version":"8.0.5","description":"remark plugin to parse Markdown","license":"MIT","keywords":["unified","remark","remark-plugin","plugin","markdown","mdast","abstract","syntax","tree","ast","parse"],"types":"types/index.d.ts","homepage":"https://remark.js.org","repository":{"type":"git","url":"https://github.com/brodybits/remark/tree/main/packages/remark-parse"},"bugs":{"url":"https://github.com/brodybits/remark/issues"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},{"name":"Eugene Sharygin","email":"eush77@gmail.com"},{"name":"Junyoung Choi","email":"fluke8259@gmail.com"},{"name":"Elijah Hamovitz","email":"elijahhamovitz@gmail.com"},{"name":"Ika","email":"ikatyang@gmail.com"}],"dependencies":{"ccount":"^1.0.0","collapse-white-space":"^1.0.2","is-alphabetical":"^1.0.0","is-decimal":"^1.0.0","is-whitespace-character":"^1.0.0","is-word-character":"^1.0.0","markdown-escapes":"^1.0.0","parse-entities":"^2.0.0","repeat-string":"^1.5.4","state-toggle":"^1.0.0","trim":"^1.0.1","trim-trailing-lines":"^1.0.0","unherit":"^1.0.4","unist-util-remove-position":"^2.0.0","vfile-location":"^3.0.0","xtend":"^4.0.1"},"scripts":{"test":"tape test.js"},"xo":false,"_id":"@brodybits/remark-parse@8.0.5","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-7PgST08hL3MRkp8as4yjzmYyvJlDZiMuD5/ItL58d2Ofzl7UR9h2bkkf/9kPHzw5Bcz/yabTL3eE4ALx+iHwCg==","shasum":"e521cbcefb73a7cfca046811983b3e0c379dd3be","tarball":"https://registry.npmjs.org/@brodybits/remark-parse/-/remark-parse-8.0.5.tgz","fileCount":53,"unpackedSize":114797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx6DRCRA9TVsSAnZWagAA3foQAITTjexRRHnXNdn3oPsB\ngrwe4BViJ4qRmH8b5EcpAJXkYpcskcwPIwR8a+PWzhYe0078568qIaKxFZ7p\n2Eblwqzzv3TOYDXKcIJp3ChDmCBY5wWbadWxqaUPsnyhQBgZ+hBqfey8a+aJ\nkZfF5d6jvSSz25uvJTjPt5KMWZQ01P680k6kVSXkqnKVbDDk1SC9ddsB2RSS\n4S+GKz38OWhS1UFCc2N8f2zl+bjAfn84mhBV3tPH7bxYRPxPkafOkNcaT2pR\n/ZJGIP5Bg+wgP7EWwgdjrXhPtTu9r+zVYRTY9OPIW/sA95zbt4Heb39+dX35\nHEk9GoUm6YihhIM/zk5YcW48g5y+yV7fC2a5y28nYcLNitu4ZRsXppv79iGX\nIa5XUyVJ0fz1po8+JhA8N+vZ0yVpQrlzGzuNzfpxk2wP28j6P7fMN8zRnbYI\n2hoou+zbIlnFgBdZs6nrRQLfFmvHeTaPqaP/5lwafBJEUjRTlaxVoEHijY5e\nbgBV5TlGBTUVCoTn87IXGpVNqZKYqfH2aPmuDHIpdGYhRURbB27TWq9OkahK\nFUmJ5fsqDkupKOo1hP7esnl9XRNcUbKTsULLfOazVgJqjCa/48RB5+ovK4qk\nh8DUuyMaFmHZLzTkXmesEN/Bnc6u2SWHWJVTkpLkcGxPuAPekz4mKuUXPdJ4\neKCX\r\n=J9Gw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9lCAN8fCNRT9OxhYux2JRVN0y+ECgzNclak36B45PwgIhAPMXaNi1z8ppSyLQucLgd6ax9i4JqIwEPCPf48tqQhGc"}]},"_npmUser":{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"},"directories":{},"maintainers":[{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/remark-parse_8.0.5_1623695568801_0.6064147206005814"},"_hasShrinkwrap":false},"5.0.1":{"name":"@brodybits/remark-parse","version":"5.0.1","description":"Markdown parser for remark","license":"MIT","keywords":["markdown","abstract","syntax","tree","ast","parse"],"homepage":"http://remark.js.org","repository":{"type":"git","url":"https://github.com/brodybits/remark/tree/master/packages/remark-parse"},"bugs":{"url":"https://github.com/brodybits/remark/issues"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"http://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"http://wooorm.com"},{"name":"Eugene Sharygin","email":"eush77@gmail.com"}],"dependencies":{"collapse-white-space":"^1.0.2","is-alphabetical":"^1.0.0","is-decimal":"^1.0.0","is-whitespace-character":"^1.0.0","is-word-character":"^1.0.0","markdown-escapes":"^1.0.0","parse-entities":"^1.1.0","repeat-string":"^1.5.4","state-toggle":"^1.0.0","trim":"0.0.3","trim-trailing-lines":"^1.0.0","unherit":"^1.0.4","unist-util-remove-position":"^1.0.0","vfile-location":"^2.0.0","xtend":"^4.0.1"},"xo":false,"_id":"@brodybits/remark-parse@5.0.1","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-z4BjfcxegoajMQwIWBewRXVzrEvSQY1rILm7+O57qX9UI4ofCNr+biteNCVMNDv7POleymz6inEIzbCKYX7MVA==","shasum":"f13df839df25f4ff55d6aa8839418b43787f6548","tarball":"https://registry.npmjs.org/@brodybits/remark-parse/-/remark-parse-5.0.1.tgz","fileCount":50,"unpackedSize":108694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx766CRA9TVsSAnZWagAAvjcP/R+UXAKMQNC2hUfvN4LL\nF8O9ORV6wRrNfaG9t5KuAnYSfZTsgs6uBGvXBxKjSUA57UjGAkVCOpYvEjAz\n1SfbrCP1J4BNfQ9wZnnReyKaYzAx0nnFfYVZcQCZ0b3WJZNjQwiNGsZAYKal\njw0o8IzUTnKfA+SdZ4lhLmNh4Nq6813OWiYtOk9YdV0FlSvXBjAAdzmgNJVJ\nH+Yqw+0megAaqWl6fxQ1z+W2t0hk3z1Q1x6LzbvpojCXCcw/Ngfo0BI75R1t\n/r1Nj7ewYNraNB+/MDA3e0bPePP63WfVrUR9t5vuleK3dGv+4azG6p6IpbGW\nnmhXMX23j//iEF9upNbggQnzzpjBVvq3CScjORAJXsYnvrHcIqw+hQm10Wgr\nR8usqf359dqU21SvixMziA3xPX6Qa4U+WqhKbIYDzWW6n7oT6n4LrWExN9jL\n9yiC/TIXq2VBVRroKClcqRCvs0QcNst84bDU1/+3oZHFmBW11KU6146ijxev\ng2rjJhSYNkaELF9MmS2FmdCPSLCSKhy6I2NdVjuJbiEMTM7vtkSIQs6LdsTw\n4Pad14PMXDx7wez77pcLjLwzUSQBOdnbzJN8YdODvlckoDBkxSzP/9j/yvlb\nfIYxBeZQ+/se2nrEaqoet+6Y/Z6Q+jFmCgE+O92iBhKUY1vaiaWGu+GRmLCZ\nM74Q\r\n=YRfq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOlRJ1rsAGn5j9Ta4YE3x4qBEosFsg8JZ6bKIAgo9O8QIgWNJ+WYwRgUSK5Sg3DCNR97/z6sZOUIUjTIhMs7niT0U="}]},"_npmUser":{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"},"directories":{},"maintainers":[{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/remark-parse_5.0.1_1623703225960_0.6372026396345198"},"_hasShrinkwrap":false},"8.0.6":{"name":"@brodybits/remark-parse","version":"8.0.6","description":"remark plugin to parse Markdown","license":"MIT","keywords":["unified","remark","remark-plugin","plugin","markdown","mdast","abstract","syntax","tree","ast","parse"],"types":"types/index.d.ts","homepage":"https://remark.js.org","repository":{"type":"git","url":"git+https://github.com/brodybits/remark.git#main"},"bugs":{"url":"https://github.com/brodybits/remark/issues"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},{"name":"Eugene Sharygin","email":"eush77@gmail.com"},{"name":"Junyoung Choi","email":"fluke8259@gmail.com"},{"name":"Elijah Hamovitz","email":"elijahhamovitz@gmail.com"},{"name":"Ika","email":"ikatyang@gmail.com"}],"dependencies":{"ccount":"^1.1.0","collapse-white-space":"^1.0.6","is-alphabetical":"^1.0.4","is-decimal":"^1.0.4","is-whitespace-character":"^1.0.4","is-word-character":"^1.0.4","markdown-escapes":"^1.0.4","parse-entities":"^2.0.0","repeat-string":"^1.6.1","state-toggle":"^1.0.3","trim":"^1.0.1","trim-trailing-lines":"^1.1.4","unherit":"^1.1.3","unist-util-remove-position":"^2.0.1","vfile-location":"^3.2.0","xtend":"^4.0.2"},"scripts":{"test":"tape test.js"},"xo":false,"_id":"@brodybits/remark-parse@8.0.6","_nodeVersion":"16.4.2","_npmVersion":"7.18.1","dist":{"integrity":"sha512-CrvTO+KJeExbBk3HTkOuIU3TVUF13VNFwaNFlWXid2/V2+Zfx3TOkGPDrM0FSm+AwJgBV67o9ZJe+FAOUSpatQ==","shasum":"fc98919fc8c5954911b149731cd4526692caf8ee","tarball":"https://registry.npmjs.org/@brodybits/remark-parse/-/remark-parse-8.0.6.tgz","fileCount":53,"unpackedSize":114990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5IrECRA9TVsSAnZWagAAeAYP/2o6IAFRisnv7tJZqt7C\n/ShyqyqvYM90yFS1neu6koA53j6cICVITRFdy1zcL3uO4/fJ1GxdKm0kq0Dt\n2YFQZIRRowzoF2lq2e6bYHasMgwEV0d/WFR1b6eiIKOod3AjgyqqCB/8HSbp\nS1T3r4askObc2GOwFksJUbsQuASJc6KUxqhC6jDSmgBJ+n5e1xshxKp89sbd\nG5wLBrxWCrETgjaGwAceEjp587+g1gEnygXeI4aqjggzwy2iNoBp4ITgvEtz\nXXWN6vnIc5JWs/qiTuUK/N0dmc4YlVzEj60j0EhGfNtZsy2hi9eQFbLwfNxX\nS20u5YGkXz5Dj8kmEJd/RDeT3DA48F6mD3nThPbT3NU+JGmreE0Z5lSbB4cN\nh12UaRdChYWY0OlLqOA4o8iVa7uH0t1ZVISuTrU7I+i5sDvcv1II5tRzJGxw\nQkQy32qn0medGp71SLO6sXzImDpfeNjRBDU2qtAnXpOojvMLsYyLTHQuRJcg\niVp4X2iZYw7NqkSYj1MBVsE8xt4EMGvttZtlh39uyD0mqRwvqREXG+ICxjnp\nEYMGaviziptp21j7bydl259+2YtGsc74RK167xMa3m/eGE0Z/aUJ2IIXgAFs\nz0BkOKOc4WPr+Rmztc4fUv/E2o2LzuUYSKHPw9vRAkeNkk59KxucuTznJooG\nbHP1\r\n=zzOo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWy4smcjsYjV8zC9iWJ6Mo0TiSZpRijPV+N7FzWbio/AiEA42SfFv+//40uivxVKNnCrfDCz4RlCbPC7uBZr+sgGEg="}]},"_npmUser":{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"},"directories":{},"maintainers":[{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/remark-parse_8.0.6_1625590468388_0.37146644642645366"},"_hasShrinkwrap":false}},"time":{"created":"2021-06-14T17:05:47.848Z","8.0.4":"2021-06-14T17:05:48.119Z","modified":"2022-04-04T20:44:37.533Z","8.0.5":"2021-06-14T18:32:49.036Z","5.0.1":"2021-06-14T20:40:26.128Z","8.0.6":"2021-07-06T16:54:28.577Z"},"maintainers":[{"name":"brodybits","email":"chris.brody+brodybits@gmail.com"}],"description":"remark plugin to parse Markdown","homepage":"https://remark.js.org","keywords":["unified","remark","remark-plugin","plugin","markdown","mdast","abstract","syntax","tree","ast","parse"],"repository":{"type":"git","url":"git+https://github.com/brodybits/remark.git#main"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},{"name":"Eugene Sharygin","email":"eush77@gmail.com"},{"name":"Junyoung Choi","email":"fluke8259@gmail.com"},{"name":"Elijah Hamovitz","email":"elijahhamovitz@gmail.com"},{"name":"Ika","email":"ikatyang@gmail.com"}],"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"bugs":{"url":"https://github.com/brodybits/remark/issues"},"license":"MIT","readme":"# @brodybits/remark-parse version 8\n\nwith `trim`@1.x update in dependencies\n\n<!-- --\n[![Build][build-badge]][build]\n[![Coverage][coverage-badge]][coverage]\n[![Downloads][downloads-badge]][downloads]\n[![Size][size-badge]][size]\n[![Sponsors][sponsors-badge]][collective]\n[![Backers][backers-badge]][collective]\n[![Chat][chat-badge]][chat]\n-- -->\n\n[Parser][] for [**unified**][unified].\nParses Markdown to [**mdast**][mdast] syntax trees.\nUsed in the [**remark** processor][remark] but can be used on its own as well.\nCan be [extended][extend] to change how Markdown is parsed.\n\nThis version is *tested* with Node.js back to version `6.0.0` & npm version back to `3.10.7`.\n\n## Sponsors\n\n<!--lint ignore no-html-->\n\n<table>\n  <tr valign=\"top\">\n    <td width=\"33.33%\" align=\"center\" colspan=\"2\">\n      <a href=\"https://www.gatsbyjs.org\">Gatsby</a><br>🥇<br><br>\n      <a href=\"https://www.gatsbyjs.org\"><img src=\"https://avatars1.githubusercontent.com/u/12551863?s=900&v=4\"></a>\n    </td>\n    <td width=\"33.33%\" align=\"center\" colspan=\"2\">\n      <a href=\"https://vercel.com\">Vercel</a><br>🥇<br><br>\n      <!--OC has a sharper image-->\n      <a href=\"https://vercel.com\"><img src=\"https://images.opencollective.com/vercel/d8a5bee/logo/512.png\"></a>\n    </td>\n    <td width=\"33.33%\" align=\"center\" colspan=\"2\">\n      <a href=\"https://www.netlify.com\">Netlify</a><br><br><br>\n      <!--OC has a sharper image-->\n      <a href=\"https://www.netlify.com\"><img src=\"https://images.opencollective.com/netlify/4087de2/logo/512.png\"></a>\n    </td>\n  </tr>\n  <tr valign=\"top\">\n    <td width=\"16.67%\" align=\"center\">\n      <a href=\"https://www.holloway.com\">Holloway</a><br><br><br>\n      <a href=\"https://www.holloway.com\"><img src=\"https://avatars1.githubusercontent.com/u/35904294?s=300&v=4\"></a>\n    </td>\n    <td width=\"16.67%\" align=\"center\">\n      <a href=\"https://themeisle.com\">ThemeIsle</a><br>🥉<br><br>\n      <a href=\"https://themeisle.com\"><img src=\"https://twitter-avatar.now.sh/themeisle\"></a>\n    </td>\n    <td width=\"16.67%\" align=\"center\">\n      <a href=\"https://boostio.co\">BoostIO</a><br>🥉<br><br>\n      <a href=\"https://boostio.co\"><img src=\"https://avatars1.githubusercontent.com/u/13612118?s=300&v=4\"></a>\n    </td>\n    <td width=\"16.67%\" align=\"center\">\n      <a href=\"https://expo.io\">Expo</a><br>🥉<br><br>\n      <a href=\"https://expo.io\"><img src=\"https://avatars1.githubusercontent.com/u/12504344?s=300&v=4\"></a>\n    </td>\n    <td width=\"50%\" align=\"center\" colspan=\"2\">\n      <br><br><br><br>\n      <a href=\"https://opencollective.com/unified\"><strong>You?</strong></a>\n    </td>\n  </tr>\n</table>\n\n## Install\n\n[npm][]:\n\n```sh\nnpm install @brodybits/remark-parse\n```\n\n## Use\n\n```js\nvar unified = require('unified')\nvar createStream = require('unified-stream')\nvar markdown = require('@brodybits/remark-parse')\nvar remark2rehype = require('remark-rehype')\nvar html = require('rehype-stringify')\n\nvar processor = unified()\n  .use(markdown, {commonmark: true})\n  .use(remark2rehype)\n  .use(html)\n\nprocess.stdin.pipe(createStream(processor)).pipe(process.stdout)\n```\n\n[See **unified** for more examples »][unified]\n\n## Contents\n\n*   [API](#api)\n    *   [`processor().use(parse[, options])`](#processoruseparse-options)\n    *   [`parse.Parser`](#parseparser)\n*   [Extending the `Parser`](#extending-the-parser)\n    *   [`Parser#blockTokenizers`](#parserblocktokenizers)\n    *   [`Parser#blockMethods`](#parserblockmethods)\n    *   [`Parser#inlineTokenizers`](#parserinlinetokenizers)\n    *   [`Parser#inlineMethods`](#parserinlinemethods)\n    *   [`function tokenizer(eat, value, silent)`](#function-tokenizereat-value-silent)\n    *   [`tokenizer.locator(value, fromIndex)`](#tokenizerlocatorvalue-fromindex)\n    *   [`eat(subvalue)`](#eatsubvalue)\n    *   [`add(node[, parent])`](#addnode-parent)\n    *   [`add.test()`](#addtest)\n    *   [`add.reset(node[, parent])`](#addresetnode-parent)\n    *   [Turning off a tokenizer](#turning-off-a-tokenizer)\n*   [Security](#security)\n*   [Contribute](#contribute)\n*   [License](#license)\n\n## API\n\n[See **unified** for API docs »][unified]\n\n### `processor().use(parse[, options])`\n\nConfigure the `processor` to read Markdown as input and process\n[**mdast**][mdast] syntax trees.\n\n##### `options`\n\nOptions can be passed directly, or passed later through\n[`processor.data()`][data].\n\n###### `options.gfm`\n\nGFM mode (`boolean`, default: `true`).\n\n```markdown\nhello ~~hi~~ world\n```\n\nTurns on:\n\n*   [Fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks#fenced-code-blocks)\n*   [Autolinking of URLs](https://help.github.com/articles/autolinked-references-and-urls)\n*   [Deletions (strikethrough)](https://help.github.com/articles/basic-writing-and-formatting-syntax#styling-text)\n*   [Task lists](https://help.github.com/articles/basic-writing-and-formatting-syntax#task-lists)\n*   [Tables](https://help.github.com/articles/organizing-information-with-tables)\n\n###### `options.commonmark`\n\nCommonMark mode (`boolean`, default: `false`).\n\n```markdown\nThis is a paragraph\n    and this is also part of the preceding paragraph.\n```\n\nAllows:\n\n*   Empty lines to split block quotes\n*   Parentheses (`(` and `)`) around link and image titles\n*   Any escaped [ASCII punctuation][escapes] character\n*   Closing parenthesis (`)`) as an ordered list marker\n*   URL definitions in block quotes\n\nDisallows:\n\n*   Indented code blocks directly following a paragraph\n*   ATX headings (`# Hash headings`) without spacing after opening hashes or and\n    before closing hashes\n*   Setext headings (`Underline headings\\n---`) when following a paragraph\n*   Newlines in link and image titles\n*   White space in link and image URLs in auto-links (links in brackets, `<` and\n    `>`)\n*   Lazy block quote continuation, lines not preceded by a greater than\n    character (`>`), for lists, code, and thematic breaks\n\n###### `options.pedantic`\n\n⚠️ Pedantic was previously used to mimic old-style Markdown mode: no tables, no\nfenced code, and with many bugs.\nIt’s currently still “working”, but please do not use it, it’ll be removed in\nthe future.\n\n###### `options.blocks`\n\nBlocks (`Array.<string>`, default: list of [block HTML elements][blocks]).\n\n```markdown\n<block>foo\n</block>\n```\n\nDefines which HTML elements are seen as block level.\n\n### `parse.Parser`\n\nAccess to the [parser][], if you need it.\n\n## Extending the `Parser`\n\nTypically, using [*transformers*][transformer] to manipulate a syntax tree\nproduces the desired output.\nSometimes, such as when introducing new syntactic entities with a certain\nprecedence, interfacing with the parser is necessary.\n\nIf the `remark-parse` plugin is used, it adds a [`Parser`][parser] constructor\nfunction to the `processor`.\nOther plugins can add tokenizers to its prototype to change how Markdown is\nparsed.\n\nThe below plugin adds a [tokenizer][] for at-mentions.\n\n```js\nmodule.exports = mentions\n\nfunction mentions() {\n  var Parser = this.Parser\n  var tokenizers = Parser.prototype.inlineTokenizers\n  var methods = Parser.prototype.inlineMethods\n\n  // Add an inline tokenizer (defined in the following example).\n  tokenizers.mention = tokenizeMention\n\n  // Run it just before `text`.\n  methods.splice(methods.indexOf('text'), 0, 'mention')\n}\n```\n\n### `Parser#blockTokenizers`\n\nMap of names to [tokenizer][]s (`Object.<Function>`).\nThese tokenizers (such as `fencedCode`, `table`, and `paragraph`) eat from the\nstart of a value to a line ending.\n\nSee `#blockMethods` below for a list of methods that are included by default.\n\n### `Parser#blockMethods`\n\nList of `blockTokenizers` names (`Array.<string>`).\nSpecifies the order in which tokenizers run.\n\nPrecedence of default block methods is as follows:\n\n<!--methods-block start-->\n\n*   `blankLine`\n*   `indentedCode`\n*   `fencedCode`\n*   `blockquote`\n*   `atxHeading`\n*   `thematicBreak`\n*   `list`\n*   `setextHeading`\n*   `html`\n*   `definition`\n*   `table`\n*   `paragraph`\n\n<!--methods-block end-->\n\n### `Parser#inlineTokenizers`\n\nMap of names to [tokenizer][]s (`Object.<Function>`).\nThese tokenizers (such as `url`, `reference`, and `emphasis`) eat from the start\nof a value.\nTo increase performance, they depend on [locator][]s.\n\nSee `#inlineMethods` below for a list of methods that are included by default.\n\n### `Parser#inlineMethods`\n\nList of `inlineTokenizers` names (`Array.<string>`).\nSpecifies the order in which tokenizers run.\n\nPrecedence of default inline methods is as follows:\n\n<!--methods-inline start-->\n\n*   `escape`\n*   `autoLink`\n*   `url`\n*   `email`\n*   `html`\n*   `link`\n*   `reference`\n*   `strong`\n*   `emphasis`\n*   `deletion`\n*   `code`\n*   `break`\n*   `text`\n\n<!--methods-inline end-->\n\n### `function tokenizer(eat, value, silent)`\n\nThere are two types of tokenizers: block level and inline level.\nBoth are functions, and work the same, but inline tokenizers must have a\n[locator][].\n\nThe following example shows an inline tokenizer that is added by the mentions\nplugin above.\n\n```js\ntokenizeMention.notInLink = true\ntokenizeMention.locator = locateMention\n\nfunction tokenizeMention(eat, value, silent) {\n  var match = /^@(\\w+)/.exec(value)\n\n  if (match) {\n    if (silent) {\n      return true\n    }\n\n    return eat(match[0])({\n      type: 'link',\n      url: 'https://social-network/' + match[1],\n      children: [{type: 'text', value: match[0]}]\n    })\n  }\n}\n```\n\nTokenizers *test* whether a document starts with a certain syntactic entity.\nIn *silent* mode, they return whether that test passes.\nIn *normal* mode, they consume that token, a process which is called “eating”.\n\nLocators enable inline tokenizers to function faster by providing where the next\nentity may occur.\n\n###### Signatures\n\n*   `Node? = tokenizer(eat, value)`\n*   `boolean? = tokenizer(eat, value, silent)`\n\n###### Parameters\n\n*   `eat` ([`Function`][eat]) — Eat, when applicable, an entity\n*   `value` (`string`) — Value which may start an entity\n*   `silent` (`boolean`, optional) — Whether to detect or consume\n\n###### Properties\n\n*   `locator` ([`Function`][locator]) — Required for inline tokenizers\n*   `onlyAtStart` (`boolean`) — Whether nodes can only be found at the beginning\n    of the document\n*   `notInBlock` (`boolean`) — Whether nodes cannot be in block quotes or lists\n*   `notInList` (`boolean`) — Whether nodes cannot be in lists\n*   `notInLink` (`boolean`) — Whether nodes cannot be in links\n\n###### Returns\n\n*   `boolean?`, in *silent* mode — whether a node can be found at the start of\n    `value`\n*   [`Node?`][node], In *normal* mode — If it can be found at the start of\n    `value`\n\n### `tokenizer.locator(value, fromIndex)`\n\nLocators are required for inline tokenizers.\nTheir role is to keep parsing performant.\n\nThe following example shows a locator that is added by the mentions tokenizer\nabove.\n\n```js\nfunction locateMention(value, fromIndex) {\n  return value.indexOf('@', fromIndex)\n}\n```\n\nLocators enable inline tokenizers to function faster by providing information on\nwhere the next entity *may* occur.\nLocators may be wrong, it’s OK if there actually isn’t a node to be found at the\nindex they return.\n\n###### Parameters\n\n*   `value` (`string`) — Value which may contain an entity\n*   `fromIndex` (`number`) — Position to start searching at\n\n###### Returns\n\n`number` — Index at which an entity may start, and `-1` otherwise.\n\n### `eat(subvalue)`\n\n```js\nvar add = eat('foo')\n```\n\nEat `subvalue`, which is a string at the start of the [tokenized][tokenizer]\n`value`.\n\n###### Parameters\n\n*   `subvalue` (`string`) - Value to eat\n\n###### Returns\n\n[`add`][add].\n\n### `add(node[, parent])`\n\n```js\nvar add = eat('foo')\n\nadd({type: 'text', value: 'foo'})\n```\n\nAdd [positional information][position] to `node` and add `node` to `parent`.\n\n###### Parameters\n\n*   `node` ([`Node`][node]) - Node to patch position on and to add\n*   `parent` ([`Parent`][parent], optional) - Place to add `node` to in the\n    syntax tree.\n    Defaults to the currently processed node\n\n###### Returns\n\n[`Node`][node] — The given `node`.\n\n### `add.test()`\n\nGet the [positional information][position] that would be patched on `node` by\n`add`.\n\n###### Returns\n\n[`Position`][position].\n\n### `add.reset(node[, parent])`\n\n`add`, but resets the internal position.\nUseful for example in lists, where the same content is first eaten for a list,\nand later for list items.\n\n###### Parameters\n\n*   `node` ([`Node`][node]) - Node to patch position on and insert\n*   `parent` ([`Node`][node], optional) - Place to add `node` to in\n    the syntax tree.\n    Defaults to the currently processed node\n\n###### Returns\n\n[`Node`][node] — The given node.\n\n### Turning off a tokenizer\n\nIn some situations, you may want to turn off a tokenizer to avoid parsing that\nsyntactic feature.\n\nPreferably, use the [`remark-disable-tokenizers`][remark-disable-tokenizers]\nplugin to turn off tokenizers.\n\nAlternatively, this can be done by replacing the tokenizer from\n`blockTokenizers` (or `blockMethods`) or `inlineTokenizers` (or\n`inlineMethods`).\n\nThe following example turns off indented code blocks:\n\n```js\nremarkParse.Parser.prototype.blockTokenizers.indentedCode = indentedCode\n\nfunction indentedCode() {\n  return true\n}\n```\n\n## Security\n\nAs Markdown is sometimes used for HTML, and improper use of HTML can open you up\nto a [cross-site scripting (XSS)][xss] attack, use of remark can also be unsafe.\nWhen going to HTML, use remark in combination with the [**rehype**][rehype]\necosystem, and use [`rehype-sanitize`][sanitize] to make the tree safe.\n\nUse of remark plugins could also open you up to other attacks.\nCarefully assess each plugin and the risks involved in using them.\n\n## Contribute\n\nSee [`contributing.md`][contributing] in [`remarkjs/.github`][health] for ways\nto get started.\nSee [`support.md`][support] for ways to get help.\nIdeas for new plugins and tools can be posted in [`remarkjs/ideas`][ideas].\n\nA curated list of awesome remark resources can be found in [**awesome\nremark**][awesome].\n\nThis project has a [code of conduct][coc].\nBy interacting with this repository, organization, or community you agree to\nabide by its terms.\n\n## License\n\n[MIT][license] © [Titus Wormer][author]\n\n<!-- Definitions -->\n\n[build-badge]: https://img.shields.io/travis/remarkjs/remark.svg\n\n[build]: https://travis-ci.org/remarkjs/remark\n\n[coverage-badge]: https://img.shields.io/codecov/c/github/remarkjs/remark.svg\n\n[coverage]: https://codecov.io/github/remarkjs/remark\n\n[downloads-badge]: https://img.shields.io/npm/dm/remark-parse.svg\n\n[downloads]: https://www.npmjs.com/package/remark-parse\n\n[size-badge]: https://img.shields.io/bundlephobia/minzip/remark-parse.svg\n\n[size]: https://bundlephobia.com/result?p=remark-parse\n\n[sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg\n\n[backers-badge]: https://opencollective.com/unified/backers/badge.svg\n\n[collective]: https://opencollective.com/unified\n\n[chat-badge]: https://img.shields.io/badge/chat-spectrum-7b16ff.svg\n\n[chat]: https://spectrum.chat/unified/remark\n\n[health]: https://github.com/remarkjs/.github\n\n[contributing]: https://github.com/remarkjs/.github/blob/HEAD/contributing.md\n\n[support]: https://github.com/remarkjs/.github/blob/HEAD/support.md\n\n[coc]: https://github.com/remarkjs/.github/blob/HEAD/code-of-conduct.md\n\n[ideas]: https://github.com/remarkjs/ideas\n\n[awesome]: https://github.com/remarkjs/awesome-remark\n\n[license]: https://github.com/remarkjs/remark/blob/main/license\n\n[author]: https://wooorm.com\n\n[npm]: https://docs.npmjs.com/cli/install\n\n[unified]: https://github.com/unifiedjs/unified\n\n[data]: https://github.com/unifiedjs/unified#processordatakey-value\n\n[remark]: https://github.com/remarkjs/remark/tree/main/packages/remark\n\n[blocks]: https://github.com/remarkjs/remark/blob/main/packages/remark-parse/lib/block-elements.js\n\n[mdast]: https://github.com/syntax-tree/mdast\n\n[escapes]: https://spec.commonmark.org/0.29/#backslash-escapes\n\n[node]: https://github.com/syntax-tree/unist#node\n\n[parent]: https://github.com/syntax-tree/unist#parent\n\n[position]: https://github.com/syntax-tree/unist#position\n\n[parser]: https://github.com/unifiedjs/unified#processorparser\n\n[transformer]: https://github.com/unifiedjs/unified#function-transformernode-file-next\n\n[extend]: #extending-the-parser\n\n[tokenizer]: #function-tokenizereat-value-silent\n\n[locator]: #tokenizerlocatorvalue-fromindex\n\n[eat]: #eatsubvalue\n\n[add]: #addnode-parent\n\n[remark-disable-tokenizers]: https://github.com/zestedesavoir/zmarkdown/tree/HEAD/packages/remark-disable-tokenizers\n\n[xss]: https://en.wikipedia.org/wiki/Cross-site_scripting\n\n[rehype]: https://github.com/rehypejs/rehype\n\n[sanitize]: https://github.com/rehypejs/rehype-sanitize\n","readmeFilename":"readme.md"}