{"_id":"@aizatto/draft-js-markdown-plugin","_rev":"2-8ff235037ac2f38cdc47c7c07aa69f34","name":"@aizatto/draft-js-markdown-plugin","dist-tags":{"latest":"3.0.7-0"},"versions":{"3.0.6":{"name":"@aizatto/draft-js-markdown-plugin","version":"3.0.6","description":"A DraftJS plugin for supporting Markdown syntax shortcuts, fork of draft-js-markdown-shortcuts-plugin","main":"lib/index.js","scripts":{"build":"npm run clean && npm run build:js","build:demo":"NODE_ENV=production webpack --config demo/webpack.config.prod.js && rm -rf demo/public/css && cp -R demo/publicTemplate/* demo/public/","build:js":"BABEL_DISABLE_CACHE=1 BABEL_ENV=production NODE_ENV=production node_modules/.bin/babel --out-dir='lib' --ignore='**/__test__/*' src","clean":"rimraf lib; node_modules/.bin/rimraf demo/public","dev":"babel-node ./demo/server.js","test":"jest","precommit":"jest && lint-staged"},"repository":{"type":"git","url":"git+https://github.com/aizatto/draft-js-markdown-plugin.git"},"keywords":["draftjs","editor","plugin","markdown"],"author":{"name":"Aizat Faiz","email":"aizat.faiz@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/aizatto/draft-js-markdown-plugin/issues"},"homepage":"https://github.com/aizatto/draft-js-markdown-plugin#readme","lint-staged":{"*.{js,css}":["prettier --write","git add"]},"devDependencies":{"autoprefixer":"^6.5.3","babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-rewire":"^1.2.0","babel-polyfill":"^6.16.0","babel-preset-es2015":"^6.18.0","babel-preset-react":"^6.16.0","babel-preset-react-hmre":"^1.1.1","babel-preset-stage-0":"^6.16.0","cheerio":"^0.22.0","coveralls":"^2.13.3","css-loader":"^0.26.0","css-modules-require-hook":"^4.2.3","draft-js-plugins-editor":"2.0.0-rc2","draft-js-prism":"github:ngs/draft-js-prism#6edb31c3805dd1de3fb897cc27fced6bac1bafbb","enzyme":"^2.6.0","eslint":"^3.11.1","eslint-config-airbnb":"^13.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"2.2.3","eslint-plugin-mocha":"^4.12.1","eslint-plugin-react":"^6.7.1","express":"^4.16.4","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","flow-bin":"^0.36.0","history":"^2.0.0","husky":"^0.14.3","jest":"^21.2.1","jsdom":"^9.8.3","lint-staged":"^4.3.0","mocha":"^3.2.0","mocha-junit-reporter":"^1.18.0","mocha-multi-reporters":"^1.1.7","npm-watch":"^0.1.6","nyc":"^10.0.0","postcss-loader":"^1.1.1","prettier":"^1.14.3","prismjs":"^1.15.0","raf":"^3.4.1","react":"16.2.x","react-addons-pure-render-mixin":"^15.6.2","react-addons-test-utils":"^15.6.2","react-dom":"16.2.0","react-github-corner":"^2.3.0","react-github-fork-ribbon":"^0.4.4","react-test-renderer":"^16.6.0","rimraf":"^2.5.4","sinon":"^1.17.6","static-site-generator-webpack-plugin":"^3.1.0","style-loader":"^0.13.1","url-loader":"^0.5.7","webpack":"^1.13.3","webpack-dev-middleware":"^1.12.2","webpack-hot-middleware":"^2.24.3"},"peerDependencies":{"draft-js-plugins-editor":"~2.0.0-rc.1 || 2.0.0-rc2 || 2.0.0-rc1 || 2.0.0-beta12","react":"^15.0.0 || ^16.0.0","react-dom":"^15.0.0 || ^16.0.0"},"contributors":[{"name":"Max Stoiber","email":"contact@mxstbr.com"},{"name":"Atsushi Nagase","email":"a@ngs.io"}],"dependencies":{"decorate-component-with-props":"^1.1.0","draft-js":"^0.11.4","draft-js-checkable-list-item":"^2.0.6","draft-js-prism-plugin":"^0.1.3","immutable":"~3.7.4","react-click-outside":"^3.0.1"},"gitHead":"1dda4bae76bec292b666db971c4e49604f771601","_id":"@aizatto/draft-js-markdown-plugin@3.0.6","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-jlpl4rJsY3boQN8DWZorJhLOcnkgwG+d6sUNeYQt1LTGOAFy1LZWoA0ASL6BsDa4Z36fxENQwUT1Lj6cim7dCg==","shasum":"617b1c01ec14c89a22a00952f159ffb08fd0816e","tarball":"https://registry.npmjs.org/@aizatto/draft-js-markdown-plugin/-/draft-js-markdown-plugin-3.0.6.tgz","fileCount":29,"unpackedSize":62253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeGKA0CRA9TVsSAnZWagAAF/4QAIsx1753QcAvD2InOrUd\nKXv1Q6BrDl8LZSjzmeQRUwO/NFBqob36Y3Jo03s9S+/ZoMNRx6Yx1g6JGT8/\njCOtIlEtmBM+kZi1W+GLO1OPfSjCz43tMiicRmx4UtTOf+vLbEQcv1v4o4s6\nl5Hppci0NL0AxgWQeHSYEXmJRc8SiE1TeArfkz7skRRPXx+qFdKNSDPNWxDn\nEsuZ+GXvEl1Rb/hon5aBGCesOWyckJmApakT6ILCQ97DGjYx0yB82IqejHOw\n0vnJopl0ARAj1MquIHuA2bUnkPmyTHhpXqjljCs+Vx3kanTESbQ9xHGr2Vc1\nwrtQTuHOUYz3PGvhKyLkPgnn5XMp0mnV13DleB1XY2Wq8EuwsZ3o6Pog3UAx\nmJxnA5sH8GbEbfJd5g7LvvPSMVueyG/Hb2/EmSMAD3NJlNdH87XQcRqvRMB+\nER6j5psIkZLuiZ1ZEfHqkiOcjQckXuczgJVAh2CqfeH1fIbwvwJvlry3DsEC\ntaTaouYcEQ7Bhf8+PqjyDp/G8yvFTcgaD3NYIOR+ceMdZhVBX3BvM3kXYRNJ\nUZ/9y7ZeqDzuTScr8m5Nfr4hkJisqf3jmNEgLoX40D8qZAtw45OpP/m9Nhz4\njtjHWVAzuHbzakxc2Jcx6Xn6ARjt1LExCIMW5L+UngHv5KnL5qAE8tmzp3Gp\nAWX+\r\n=CYdD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSq5XoXZ5cXUOe/nUhuuohPJyqB6DNNgyx/dtZQ1gD3AIhAKWuPjw/L4rGZo6z7KMMiYEkMfiz3ZUCmKEnsjv7fbil"}]},"maintainers":[{"name":"aizatto","email":"aizat.faiz@gmail.com"}],"_npmUser":{"name":"aizatto","email":"aizat.faiz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/draft-js-markdown-plugin_3.0.6_1578672180201_0.1965421636640441"},"_hasShrinkwrap":false},"3.0.7-0":{"name":"@aizatto/draft-js-markdown-plugin","version":"3.0.7-0","description":"A DraftJS plugin for supporting Markdown syntax shortcuts, fork of draft-js-markdown-shortcuts-plugin","main":"lib/index.js","scripts":{"build":"npm run clean && npm run build:js","build:demo":"NODE_ENV=production webpack --config demo/webpack.config.prod.js && rm -rf demo/public/css && cp -R demo/publicTemplate/* demo/public/","build:js":"BABEL_DISABLE_CACHE=1 BABEL_ENV=production NODE_ENV=production node_modules/.bin/babel --out-dir='lib' --ignore='**/__test__/*' src","clean":"rimraf lib; node_modules/.bin/rimraf demo/public","dev":"babel-node ./demo/server.js","test":"jest","precommit":"jest && lint-staged"},"repository":{"type":"git","url":"git+https://github.com/aizatto/draft-js-markdown-plugin.git"},"keywords":["draftjs","editor","plugin","markdown"],"author":{"name":"Aizat Faiz","email":"aizat.faiz@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/aizatto/draft-js-markdown-plugin/issues"},"homepage":"https://github.com/aizatto/draft-js-markdown-plugin#readme","lint-staged":{"*.{js,css}":["prettier --write","git add"]},"devDependencies":{"autoprefixer":"^6.5.3","babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-rewire":"^1.2.0","babel-polyfill":"^6.16.0","babel-preset-es2015":"^6.18.0","babel-preset-react":"^6.16.0","babel-preset-react-hmre":"^1.1.1","babel-preset-stage-0":"^6.16.0","cheerio":"^0.22.0","coveralls":"^2.13.3","css-loader":"^0.26.0","css-modules-require-hook":"^4.2.3","draft-js-plugins-editor":"2.0.0-rc2","draft-js-prism":"github:ngs/draft-js-prism#6edb31c3805dd1de3fb897cc27fced6bac1bafbb","enzyme":"^2.6.0","eslint":"^3.11.1","eslint-config-airbnb":"^13.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"2.2.3","eslint-plugin-mocha":"^4.12.1","eslint-plugin-react":"^6.7.1","express":"^4.16.4","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","flow-bin":"^0.36.0","history":"^2.0.0","husky":"^0.14.3","jest":"^21.2.1","jsdom":"^9.8.3","lint-staged":"^4.3.0","mocha":"^3.2.0","mocha-junit-reporter":"^1.18.0","mocha-multi-reporters":"^1.1.7","npm-watch":"^0.1.6","nyc":"^10.0.0","postcss-loader":"^1.1.1","prettier":"^1.14.3","prismjs":"^1.15.0","raf":"^3.4.1","react":"16.2.x","react-addons-pure-render-mixin":"^15.6.2","react-addons-test-utils":"^15.6.2","react-dom":"16.2.0","react-github-corner":"^2.3.0","react-github-fork-ribbon":"^0.4.4","react-test-renderer":"^16.6.0","rimraf":"^2.5.4","sinon":"^1.17.6","static-site-generator-webpack-plugin":"^3.1.0","style-loader":"^0.13.1","url-loader":"^0.5.7","webpack":"^1.13.3","webpack-dev-middleware":"^1.12.2","webpack-hot-middleware":"^2.24.3"},"peerDependencies":{"draft-js-plugins-editor":"~2.0.0-rc.1 || 2.0.0-rc2 || 2.0.0-rc1 || 2.0.0-beta12","react":"^15.0.0 || ^16.0.0","react-dom":"^15.0.0 || ^16.0.0"},"contributors":[{"name":"Max Stoiber","email":"contact@mxstbr.com"},{"name":"Atsushi Nagase","email":"a@ngs.io"}],"dependencies":{"decorate-component-with-props":"^1.1.0","draft-js":"^0.11.4","draft-js-checkable-list-item":"^2.0.6","draft-js-prism-plugin":"^0.1.3","immutable":"~3.7.4","react-click-outside":"^3.0.1"},"gitHead":"fc8689195d4d481a4c7993abca86568c47631016","_id":"@aizatto/draft-js-markdown-plugin@3.0.7-0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-K4f1nmI8NWRg8mHq0ObNRxgbOnVMep96dN1/oGu3vSnp0LCAo/6Au8weKVBxb2gs2RUEdulGkFqPl08E+qcGKg==","shasum":"e4b891565f8517e5586e134b8945b1a9263e65ec","tarball":"https://registry.npmjs.org/@aizatto/draft-js-markdown-plugin/-/draft-js-markdown-plugin-3.0.7-0.tgz","fileCount":29,"unpackedSize":62372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeGTATCRA9TVsSAnZWagAA0W8P/AuP6HpOECz8hSDMIj/a\npdA+cK3ZY67w764K0caxViYhB5WaGwxXWuo+JocgS01JLDFI/1Nsqp7BKOvq\nbeGfT/Xa3crhOmZjv2pZpJb6L/eemSbR7McONX9J/IKVuLeGKnbEDoiVvzih\nRfkjg3pIFIGmuUfNWwgh24V+CXQF9ZLUIePF2bqv17iSWhx3eQGRIcbpO46S\nxbdvcrjrLWUCiU0UiWJOM+zjECgpfM+ijNMkrxxtxpHXddHf40mNcnY/LQ/U\nAr8ZpkrHGWcNf6Ea5R8IlJJnVQmQb/g29MjKIsEeKDKqcQBJdvCjOlFk5z0q\nTWsaVoIYNAfXHl2er3xT8IDMzRHSRAvioe8ECQugqusMBEpARY6Xr2cLxHNG\nq+t+J54ceZZRVUadBiRvlKZQzWcgRgff9GYbzunbvjiSkf6W4b8uwgX+FfSS\ncqtjrNC+Y4abBr6el631tBV5OlhGz5Up23CP+meWmQKf2ej6qteJUHnU0R0H\nZ7lnNM0LOQMl++IArqLILlWWRwWHU+F/WtH7U638OyLKT7fJTANFt7dkpeI8\nSD/DDV0GwYPOgqW/4lTeElPB/jYM+LhRc1Luq/HMOF1RGk8Wsvn6KsT82ZmG\nTw35n6UiGhZGxdYIxcHWQGwLMiBPWDMmiV5WZt4wN+t0ISS1lBt9rtzYS4xe\nXWpE\r\n=Dl5P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwXIaK2YAu8LR+1mZaDHUxqMVIfn3GiileZep1Q76sQgIhALw4NK2tuDb0CIbZeGmJjKJgx355wLT0GPSde3wUbsHh"}]},"maintainers":[{"name":"aizatto","email":"aizat.faiz@gmail.com"}],"_npmUser":{"name":"aizatto","email":"aizat.faiz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/draft-js-markdown-plugin_3.0.7-0_1578709010533_0.015404503961476745"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-10T16:03:00.172Z","3.0.6":"2020-01-10T16:03:00.352Z","modified":"2022-04-04T12:26:04.814Z","3.0.7-0":"2020-01-11T02:16:50.632Z"},"maintainers":[{"name":"aizatto","email":"aizat.faiz@gmail.com"}],"description":"A DraftJS plugin for supporting Markdown syntax shortcuts, fork of draft-js-markdown-shortcuts-plugin","homepage":"https://github.com/aizatto/draft-js-markdown-plugin#readme","keywords":["draftjs","editor","plugin","markdown"],"repository":{"type":"git","url":"git+https://github.com/aizatto/draft-js-markdown-plugin.git"},"contributors":[{"name":"Max Stoiber","email":"contact@mxstbr.com"},{"name":"Atsushi Nagase","email":"a@ngs.io"}],"author":{"name":"Aizat Faiz","email":"aizat.faiz@gmail.com"},"bugs":{"url":"https://github.com/aizatto/draft-js-markdown-plugin/issues"},"license":"MIT","readme":"# @aizatto/draft-js-markdown-plugin\n\n\nThis is a fork of https://github.com/withspectrum/draft-js-markdown-plugin to get it to work with draft-js@0.11.0\n\nThere were other forks, but they changed/broke alot of other things, so I thought I'd isolate it down to only one commit.\n\n## Installation\n\n```sh\nnpm i --save @aizatto/draft-js-markdown-plugin\n```\n\n## Usage\n\n```js\nimport React, { Component } from 'react';\nimport Editor from 'draft-js-plugins-editor';\nimport createMarkdownPlugin from 'draft-js-markdown-plugin';\nimport { EditorState } from 'draft-js';\n\nexport default class DemoEditor extends Component {\n\n  state = {\n    editorState: EditorState.createEmpty(),\n    plugins: [createMarkdownPlugin()]\n  };\n\n  onChange = (editorState) => {\n    this.setState({\n      editorState,\n    });\n  };\n\n  render() {\n    return (\n      <Editor\n        editorState={this.state.editorState}\n        onChange={this.onChange}\n        plugins={this.state.plugins}\n      />\n    );\n  }\n}\n```\n\n### Add code block syntax highlighting\n\nUsing the [`draft-js-prism-plugin`](https://github.com/withspectrum/draft-js-prism-plugin) you can easily add syntax highlighting support to your code blocks!\n\n```JS\n// Install prismjs and draft-js-prism-plugin\nimport Prism from 'prismjs';\nimport createPrismPlugin from 'draft-js-prism-plugin';\n\nclass Editor extends Component {\n  state = {\n    plugins: [\n      // Add the Prism plugin to the plugins array \n      createPrismPlugin({\n        prism: Prism\n      }),\n      createMarkdownPlugin()\n    ]\n  }\n}\n```\n\n## Options\n\nThe `draft-js-markdown-plugin` is configurable. Just pass a config object. Here are the available options:\n\n### `renderLanguageSelect`\n\n```js\nrenderLanguageSelect = ({\n  // Array of language options\n  options: Array<{ label, value }>,\n  // Callback to select an option\n  onChange: (selectedValue: string) => void,\n  // Value of selected option\n  selectedValue: string,\n  // Label of selected option\n  selectedLabel: string\n}) => React.Node\n```\n\nCode blocks render a select to switch syntax highlighting - `renderLanguageSelect` is a render function that lets you override how this is rendered. \n\n#### Example:\n\n```\nimport createMarkdownPlugin from 'draft-js-markdown-plugin';\n\nconst renderLanguageSelect = ({ options, onChange, selectedValue }) => (\n  <select value={selectedValue} onChange={onChange}>\n    {options.map(({ label, value }) => (\n      <option key={value} value={value}>\n        {label}\n      </option>\n    ))}\n  </select>\n);\n\nconst markdownPlugin = createMarkdownPlugin({ renderLanguageSelect })\n```\n\n### `languages`\n\nDictionary for languages available to code block switcher\n\n#### Example:\n\n```js\nconst languages = {\n  js: 'JavaScript'\n}\n\nconst markdownPlugin = createMarkdownPlugin({ languages })\n```\n\n### `features`\n\nA list of enabled features, by default all features are turned on.\n\n```js\nfeatures = {\n  block: Array<string>,\n  inline: Array<string>,\n}\n```\n\n#### Example:\n\n```js\n// this will only enable BOLD for inline and CODE\n// as well as header-one for blocks\nconst features = {\n  inline: ['BOLD'],\n  block: ['CODE', 'header-one'],\n}\nconst plugin = createMarkdownPlugin({ features })\n```\n\n*Available Inline features*:\n\n```js\n[\n  'BOLD',\n  'ITALIC',\n  'CODE',\n  'STRIKETHROUGH',\n  'LINK',\n  'IMAGE'\n]\n```\n\n*Available Block features*:\n\n```js\nimport { CHECKABLE_LIST_ITEM } from \"draft-js-checkable-list-item\"\n[\n  'CODE',\n  'header-one',\n  'header-two',\n  'header-three',\n  'header-four',\n  'header-five',\n  'header-six',\n  'ordered-list-item',\n  'unordered-list-item',\n  // CHECKABLE_LIST_ITEM is a constant from 'draft-js-checkable-list-item'\n  // see import statementabove\n  CHECKABLE_LIST_ITEM,\n  'blockquote',\n]\n```\n\n### `entityType`\n\nTo interoperate this plugin with other DraftJS plugins, i.e. [`draft-js-plugins`](https://github.com/draft-js-plugins/draft-js-plugins), you might need to customize the `LINK` and `IMAGE` entity type created by `draft-js-markdown-plugin`.\n\n#### Example:\n\n```js\nimport createMarkdownPlugin from \"draft-js-markdown-plugin\";\nimport createFocusPlugin from \"draft-js-focus-plugin\";\nimport createImagePlugin from \"draft-js-image-plugin\";\n\nconst entityType = {\n  IMAGE: \"IMAGE\",\n};\n\nconst focusPlugin = createFocusPlugin();\nconst imagePlugin = createImagePlugin({\n  decorator: focusPlugin.decorator,\n});\n// For `draft-js-image-plugin` to work, the entity type of an image must be `IMAGE`.\nconst markdownPlugin = createMarkdownPlugin({ entityType });\n\nconst editorPlugins = [focusPlugin, imagePlugin, markdownPlugin];\n```\n\n## Why fork the `markdown-shortcuts-plugin`?\n\nWriting is a core part of our app, and while the `markdown-shortcuts-plugin` is awesome and battle-tested there are a few opinionated things we wanted to do differently. Rather than bother [@ngs](https://github.com/ngs) with tons of PRs, we figured it'd be better to own that core part of our experience fully. \n\n## License\n\nLicensed under the MIT license, Copyright Ⓒ 2017 Space Program Inc. This plugin is forked from the excellent [`draft-js-markdown-shortcuts-plugin`](https://github.com/ngs/draft-js-markdown-shortcuts-plugin) by [Atsushi Nagase](https://github.com/ngs).\n\nSee [LICENSE] for the full license text.\n\n[Demo]: https://markdown-plugin.spectrum.chat/\n[DraftJS]: https://facebook.github.io/draft-js/\n[DraftJS Plugins]: https://github.com/draft-js-plugins/draft-js-plugins\n[LICENSE]: ./LICENSE\n[npm]: https://www.npmjs.com/package/draft-js-markdown-plugin\n","readmeFilename":"README.md"}