// import simple markdown
import React from 'react';
import { Link } from '../';
import { Emoji } from 'emoji-mart';
import markdown from 'simple-markdown';
// rules
const rules = {
// default rules
u : markdown.defaultRules.u,
em : markdown.defaultRules.em,
text : markdown.defaultRules.text,
strong : markdown.defaultRules.strong,
escape : markdown.defaultRules.escape,
inlineCode : markdown.defaultRules.inlineCode,
blockQuote : markdown.defaultRules.blockQuote,
// fix link
autolink : {
...markdown.defaultRules.autolink,
parse : capture => {
return {
content : [{
type : 'text',
content : capture[1]
}],
target : capture[1]
};
},
react : (node, output, state) => {
return (
{ output(node.content, state) }
);
}
},
emoji : {
...markdown.defaultRules.em,
parse : capture => {
return {
emoji : capture[0],
};
},
match : markdown.anyScopeRegex(/^:(?:[^:\s]|::)*:/),
react : (node, output, state) => {
// set size
let size = 16;
// check theme
if (typeof theme !== 'undefined') {
size = theme.typography.htmlFontSize;
}
// return jsx
return (
);
},
},
// fix url
url : {
...markdown.defaultRules.url,
parse : capture => {
return {
content : [{
type : 'text',
content : capture[1]
}],
target : capture[1]
};
},
react : (node, output, state) => {
return (
{ output(node.content, state) }
);
}
},
// fix strike
strike : {
...markdown.defaultRules.del,
match : markdown.inlineRegex(/^~~([\s\S]+?)~~(?!_)/)
},
};
// default rules
export default rules;