summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/extensions/blocks/markdown/renderer.js')
-rw-r--r--plugins/jetpack/extensions/blocks/markdown/renderer.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/jetpack/extensions/blocks/markdown/renderer.js b/plugins/jetpack/extensions/blocks/markdown/renderer.js
new file mode 100644
index 00000000..ae87568a
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/markdown/renderer.js
@@ -0,0 +1,28 @@
+/**
+ * External dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import MarkdownIt from 'markdown-it';
+import { RawHTML } from '@wordpress/element';
+
+/**
+ * Module variables
+ */
+const markdownConverter = new MarkdownIt();
+const handleLinkClick = event => {
+ if ( event.target.nodeName === 'A' ) {
+ const hasConfirmed = window.confirm(
+ __( 'Are you sure you wish to leave this page?', 'jetpack' )
+ );
+
+ if ( ! hasConfirmed ) {
+ event.preventDefault();
+ }
+ }
+};
+
+export default ( { className, source = '' } ) => (
+ <RawHTML className={ className } onClick={ handleLinkClick }>
+ { source.length ? markdownConverter.render( source ) : '' }
+ </RawHTML>
+);