markdown-to-jsx
Advanced tools
Changelog
7.6.1
class
attribute from arbitrary HTML properly to avoid React warnings.Changelog
7.5.0
62a16f3: Allow modifying HTML attribute sanitization when options.sanitizer
is passed by the composer.
By default a lightweight URL sanitizer function is provided to avoid common attack vectors that might be placed into the href
of an anchor tag, for example. The sanitizer receives the input, the HTML tag being targeted, and the attribute name. The original function is available as a library export called sanitizer
.
This can be overridden and replaced with a custom sanitizer if desired via options.sanitizer
:
// sanitizer in this situation would receive:
// ('javascript:alert("foo")', 'a', 'href')
;<Markdown options={{ sanitizer: (value, tag, attribute) => value }}>
{`[foo](javascript:alert("foo"))`}
</Markdown>
// or
compiler('[foo](javascript:alert("foo"))', {
sanitizer: (value, tag, attribute) => value,
})
Changelog
7.4.7
Changelog
7.4.6
a9e5276: Browsers assign element with id
to the global scope using the value as the variable name. E.g.: <h1 id="analytics">
can be referenced via window.analytics
.
This can be a problem when a name conflict happens. For instance, pages that expect analytics.push()
to be a function will stop working if the an element with an id
of analytics
exists in the page.
In this change, we export the slugify
function so that users can easily augment it.
This can be used to avoid variable name conflicts by giving the element a different id
.
import { slugify } from 'markdown-to-jsx';
options={{
slugify: str => {
let result = slugify(str)
return result ? '-' + str : result;
}
}}
Changelog
7.4.5
f5a0079: fix: double newline between consecutive blockquote syntax creates separate blockquotes
Previously, for consecutive blockquotes they were rendered as one:
Input
> Block A.1
> Block A.2
> Block B.1
Output
<blockquote>
<p>Block A.1</p>
<p>Block A.2</p>
<p>Block.B.1</p>
</blockquote>
This is not compliant with the GFM spec which states that consecutive blocks should be created if there is a blank line between them.
Changelog
7.4.4
children
to an empty string if no content is passed.