diff --git a/lib/ast-to-react.js b/lib/ast-to-react.js index afa847e6..975cbc40 100644 --- a/lib/ast-to-react.js +++ b/lib/ast-to-react.js @@ -107,6 +107,7 @@ import {svg, find, hastToReact} from 'property-information' import {stringify as spaces} from 'space-separated-tokens' import {stringify as commas} from 'comma-separated-tokens' import style from 'style-to-object' +import {uriTransformer} from './uri-transformer.js' const own = {}.hasOwnProperty @@ -162,6 +163,10 @@ export function childrenToReact(context, node) { */ function toReact(context, node, index, parent) { const options = context.options + const transform = + options.transformLinkUri === undefined + ? uriTransformer + : options.transformLinkUri const parentSchema = context.schema /** @type {ReactMarkdownNames} */ // @ts-expect-error assume a known HTML/SVG element. @@ -234,8 +239,8 @@ function toReact(context, node, index, parent) { : options.linkTarget } - if (name === 'a' && options.transformLinkUri) { - properties.href = options.transformLinkUri( + if (name === 'a' && transform) { + properties.href = transform( String(properties.href || ''), node.children, typeof properties.title === 'string' ? properties.title : null diff --git a/lib/react-markdown.js b/lib/react-markdown.js index d0760619..92a032c7 100644 --- a/lib/react-markdown.js +++ b/lib/react-markdown.js @@ -32,7 +32,6 @@ import remarkRehype from 'remark-rehype' import PropTypes from 'prop-types' import {html} from 'property-information' import rehypeFilter from './rehype-filter.js' -import {uriTransformer} from './uri-transformer.js' import {childrenToReact} from './ast-to-react.js' const own = {}.hasOwnProperty @@ -124,8 +123,6 @@ export function ReactMarkdown(options) { return result } -ReactMarkdown.defaultProps = {transformLinkUri: uriTransformer} - ReactMarkdown.propTypes = { // Core options: children: PropTypes.string,