All notable changes will be documented in this file.
- (Typings) Fix incorrect typescript definitions (Peng Guanwen)
- (Typings) Add typings for
react-markdown/html-parser(Peng Guanwen)
- (Typings) Inline
RemarkParseOptionsfor now (Espen Hovlandsdal)
- (Typings) Fix incorrect import -
RemarkParseOptions(Jakub Chrzanowski)
- Add support for plugins that use AST transformations (Frankie Ali)
- (Typings) Add
parserOptionsto type defintions (Ted Piotrowski) - Allow renderer to be any React element type (Nathan Bierema)
- Add prop
parserOptionsto specify options for remark-parse (Kelvin Chan)
- (Typings) Make transformLinkUri & transformImageUri actually nullable (Florentin Luca Rieger)
- Fix HTML parsing of elements with a single child vs. multiple children (Nicolas Venegas)
- Fix matching of replaced non-void elements in HTML parser plugin (Nicolas Venegas)
- Fix HTML parsing of multiple void elements (Nicolas Venegas)
- Fix void element children invariant violation (Nicolas Venegas)
- Mitigate regex ddos by upgrading html-to-react (Christoph Werner)
- Update typings to allow arbitrary node types (Jesse Pinho)
- Readme: Add note about only parsing plugins working (Vincent Tunru)
- Upgrade dependencies (Espen Hovlandsdal)
- Output paragraph element for last item in loose list (Jeremy Moseley)
- Fix text rendering in React versions lower than or equal to 15 (Espen Hovlandsdal)
- [TypeScript] Fix TypeScript index signature for renderers (Linus Unnebäck)
textis now a first-class node + renderer - if you are usingallowedNodes, it needs to be included in this list. Since it is now a React component, it will be passed an object of props instead of the old approach where a string was passed.childrenwill contain the actual text string.- On React >= 16.2, if no
classNameprop is provided, a fragment will be used instead of a div. To always render a div, pass'div'as therootrenderer. - On React >= 16.2, escaped HTML will no longer be rendered with div/span containers
- The UMD bundle now exports the component as
window.ReactMarkdowninstead ofwindow.reactMarkdown
- HTML parser plugin for full HTML compatibility (Espen Hovlandsdal)
- URI transformer allows uppercase http/https URLs (Liam Kennedy)
- [TypeScript] Strongly type the keys of
renderers(Linus Unnebäck)
- Add support for passing index info to renderers (Beau Roberts)
- Allow specifying
targetattribute for links (Marshall Smith)
- Bump dependency for mdast-add-list-metadata as it was using ES6 features (Espen Hovlandsdal)
- Add more metadata props to list and listItem (André Staltz)
- list:
depth - listItem:
ordered,index
- list:
- Make
sourceproperty optional in typescript definition (gRoberts84)
- Fix bug where rendering empty link references (
[][]) would fail (Dennis S)
- Fix bug where unwrapping certain disallowed nodes would fail (Petr Gazarov)
- Add
rawSourcePosproperty for passing structured source position info to renderers (Espen Hovlandsdal)
- Pass properties of unknown nodes directly to renderer (Jesse Pinho)
- Update TypeScript definition and prop types (ClassicDarkChocolate)
- Add support for fragment renderers (Benjamim Sonntag)
- Fix language escaping in code blocks (Espen Hovlandsdal)
- Pass the React key into an overridden text renderer (vanchagreen)
- Allow overriding text renderer (Thibaud Courtoison)
- Only use first language from code block (Espen Hovlandsdal)
- Enable transformImageUri for image references (evoye)
- Exclude babel config from npm package (Espen Hovlandsdal)
- Fixed partial table exception (Alexander Wong)
- Add readOnly property to checkboxes (Phil Rajchgot)
- Support for checkbox lists (Espen Hovlandsdal)
- Better typings (Igor Kamyshev)
- Experimental support for plugins (Espen Hovlandsdal)
- Provide more arguments to
transformLinkUri/transformImageUri(children, title, alt) (mudrz)
- FULL REWRITE. Changed parser from CommonMark to Markdown. Big, breaking changes. See BREAKING below.
- Table support!
- New types:
table,tableHead,tableBody,tableRow,tableCell
- New types:
- New type:
delete(~~foo~~) - New type:
imageReference - New type:
linkReference - New type:
definition - Hacky, but basic support for React-native rendering of attributeless HTML nodes (
<kbd>,<sub>etc)
- Container props removed (
containerTagName,containerProps), overriderootrenderer instead softBreakoption removed. New solution will be added at some point in the future.escapeHtmlis now TRUE by defaultHtmlInline/HtmlBlockare now namedhtml(useisBlockprop to check if inline or block)- Renderer names are camelcased and in certain cases, renamed. For instance:
Emph=>emphasisItem=>listItemCode=>inlineCodeCodeBlock=>codelinebreak/hardbreak=>break
- All renderers:
literalprop is now calledvalue* List renderer:typeprop is now a boolean namedordered(Bullet=>false,Ordered=>true) walkerprop removed. Code depending on this will have to be rewritten to use theastPluginsprop, which functions differently.allowNodehas new arguments (node, index, parent) - node has different props, see renderer propschildBeforeandchildAfterprops removed. Userootrenderer instead.parserOptionsremoved (new parser, so the old options doesn't make sense anymore)
- Fix
<br/>not having a node key (Alex Zaworski)
- Fix deprecations for React v15.5 (Renée Kooi)
- Fix too strict TypeScript definition (Rasmus Eneman)
- Update JSON-loader info in readme to match webpack 2 (Robin Wieruch)
- Add ability to pass options to the CommonMark parser (Evan Hensleigh)
- Fixed TypeScript definitions (Kohei Asai)
- Added TypeScript definitions (Ibragimov Ruslan)
- Added UMD-build (
umd/react-markdown.js) (Espen Hovlandsdal)
- Update
commonmark-react-renderer, fixing a bug with missing nodes (Espen Hovlandsdal)
- Plain DOM-node renderers are now given only their respective props. Fixes warnings when using React >= 15.2 (Espen Hovlandsdal)
- New
transformImageUrioption allows you to transform URIs for images. (Petri Lehtinen)
- The
walkerinstance is now passed to thewalkercallback function (Riku Rouvila)
- Add
childBefore/childAfteroptions (Thomas Lindstrøm)
- Add
containerPropsoption (Thomas Lindstrøm)
- Join sibling text nodes into one text node (Espen Hovlandsdal)
- Update
commonmark-react-rendererdependency to latest version to add keys to all elements and simplify custom renderers.
- Breaking change: The renderer now requires Node 0.14 or higher. This is because the renderer uses stateless components internally.
- Breaking change:
allowNodenow receives different properties in the options argument. SeeREADME.mdfor more details. - Breaking change: CommonMark has changed some type names.
Htmlis nowHtmlInline,Headeris nowHeadingandHorizontalRuleis nowThematicBreak. This affects theallowedTypesanddisallowedTypesoptions. - Breaking change: A bug in the
allowedTypes/disallowedTypesandallowNodeoptions made them only applicable to certain types. In this version, all types are filtered, as expected. - Breaking change: Link URIs are now filtered through an XSS-filter by default, prefixing
"dangerous" protocols such as
javascript:withx-(eg:javascript:alert('foo')turns intox-javascript:alert('foo')). This can be overridden with thetransformLinkUri-option. Passnullto disable the feature or a custom function to replace the built-in behaviour.
- New
renderersoption allows you to customize which React component should be used for rendering given types. SeeREADME.mdfor more details. (Espen Hovlandsdal / Guillaume Plique) - New
unwrapDisallowedoption allows you to select if the contents of a disallowed node should be "unwrapped" (placed into the disallowed node position). For instance, setting this option to true and disallowing a link would still render the text of the link, instead of the whole link node and all it's children disappearing. (Espen Hovlandsdal) - New
transformLinkUrioption allows you to transform URIs in links. By default, an XSS-filter is used, but you could also use this for use cases like transforming absolute to relative URLs, or similar. (Espen Hovlandsdal)
- Rolled back dependencies because of breaking changes
- Updated dependencies for both
commonmarkandcommonmark-react-parserto work around an embarrasing oversight on my part.
- Reverted change from 1.2.1 that uses the dist version. Instead, documentation is added that
specified the need for
json-loaderto be enabled when using webpack.
- Use pre-built (dist version) of commonmark renderer in order to work around JSON-loader dependency.
- Added new
allowNode-property. See README for details.
- Set correct
libraryTargetto make UMD builds work as expected
- Update babel dependencies and run prepublish only as actual prepublish, not install
- Fixed issue with React external name in global environment (
reactvsReact)
- Add ability to allow/disallow specific node types (
allowedTypes/disallowedTypes)
- Moved React from dependency to peer dependency.