@uiw/react-markdown-preview
Version:
React component preview markdown text in web browser. The minimal amount of CSS to replicate the GitHub Markdown style.
108 lines (87 loc) • 12.3 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireWildcard(require("react"));
var _reactMarkdown = _interopRequireDefault(require("react-markdown"));
var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
var _remarkSlug = _interopRequireDefault(require("remark-slug"));
var _remarkAutolinkHeadings = _interopRequireDefault(require("remark-autolink-headings"));
var _rehypeRaw = _interopRequireDefault(require("rehype-raw"));
var _rehypePrism = _interopRequireDefault(require("@mapbox/rehype-prism"));
var _rehypeRewrite = _interopRequireDefault(require("rehype-rewrite"));
// @ts-ignore
// @ts-ignore
var rehypeRewriteHandle = function rehypeRewriteHandle(node, index, parent) {
if (node.type === 'element' && parent.type === 'root' && /h(1|2|3|4|5|6)/.test(node.tagName) && index !== 0) {
var child = node.children && node.children[0] ? node.children[0] : null;
if (child && child.properties && child.properties.ariaHidden === 'true') {
child.properties = (0, _objectSpread2.default)({
class: 'anchor'
}, child.properties);
child.children = [{
type: 'element',
tagName: 'svg',
properties: {
class: 'octicon octicon-link',
viewBox: '0 0 16 16',
version: '1.1',
width: '16',
height: '16',
ariaHidden: 'true'
},
children: [{
type: 'element',
tagName: 'path',
properties: {
fillRule: 'evenodd',
d: 'M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'
}
}]
}];
}
}
};
var _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
var _ref = props || {},
className = _ref.className,
source = _ref.source,
style = _ref.style,
onScroll = _ref.onScroll,
onMouseOver = _ref.onMouseOver,
_ref$warpperElement = _ref.warpperElement,
warpperElement = _ref$warpperElement === void 0 ? {} : _ref$warpperElement,
other = (0, _objectWithoutProperties2.default)(_ref, ["className", "source", "style", "onScroll", "onMouseOver", "warpperElement"]);
var mdp = /*#__PURE__*/_react.default.createRef();
(0, _react.useImperativeHandle)(ref, function () {
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
mdp: mdp
});
}, [mdp, props]);
var cls = "wmde-markdown wmde-markdown-color ".concat(className || '');
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
ref: mdp,
onScroll: onScroll,
onMouseOver: onMouseOver
}, warpperElement, {
className: cls,
style: style
}), /*#__PURE__*/_react.default.createElement(_reactMarkdown.default, (0, _extends2.default)({}, other, {
plugins: [_remarkGfm.default].concat((0, _toConsumableArray2.default)(other.plugins || [])),
rehypePlugins: [[_rehypePrism.default, {
ignoreMissing: true
}], [_rehypeRewrite.default, rehypeRewriteHandle], _rehypeRaw.default].concat((0, _toConsumableArray2.default)(other.rehypePlugins || [])),
remarkPlugins: [_remarkSlug.default, _remarkAutolinkHeadings.default].concat((0, _toConsumableArray2.default)(other.remarkPlugins || [])),
children: source || ''
})));
});
exports.default = _default;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50c3giXSwibmFtZXMiOlsicmVoeXBlUmV3cml0ZUhhbmRsZSIsIm5vZGUiLCJpbmRleCIsInBhcmVudCIsInR5cGUiLCJ0ZXN0IiwidGFnTmFtZSIsImNoaWxkIiwiY2hpbGRyZW4iLCJwcm9wZXJ0aWVzIiwiYXJpYUhpZGRlbiIsImNsYXNzIiwidmlld0JveCIsInZlcnNpb24iLCJ3aWR0aCIsImhlaWdodCIsImZpbGxSdWxlIiwiZCIsIlJlYWN0IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwiY2xhc3NOYW1lIiwic291cmNlIiwic3R5bGUiLCJvblNjcm9sbCIsIm9uTW91c2VPdmVyIiwid2FycHBlckVsZW1lbnQiLCJvdGhlciIsIm1kcCIsImNyZWF0ZVJlZiIsImNscyIsImdmbSIsInBsdWdpbnMiLCJyZWh5cGVQcmlzbSIsImlnbm9yZU1pc3NpbmciLCJyZWh5cGVSZXdyaXRlIiwicmVoeXBlUmF3IiwicmVoeXBlUGx1Z2lucyIsInNsdWciLCJoZWFkaW5ncyIsInJlbWFya1BsdWdpbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFOQTtBQUVBO0FBUUEsSUFBTUEsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQixDQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkJDLE1BQTNCLEVBQTJDO0FBQ3JFLE1BQUlGLElBQUksQ0FBQ0csSUFBTCxLQUFjLFNBQWQsSUFBMkJELE1BQU0sQ0FBQ0MsSUFBUCxLQUFnQixNQUEzQyxJQUFxRCxpQkFBaUJDLElBQWpCLENBQXNCSixJQUFJLENBQUNLLE9BQTNCLENBQXJELElBQTRGSixLQUFLLEtBQUssQ0FBMUcsRUFBNkc7QUFDM0csUUFBTUssS0FBSyxHQUFHTixJQUFJLENBQUNPLFFBQUwsSUFBaUJQLElBQUksQ0FBQ08sUUFBTCxDQUFjLENBQWQsQ0FBakIsR0FBb0NQLElB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bXBvcnQgUmVhY3QsIHsgdXNlSW1wZXJhdGl2ZUhhbmRsZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gJ3JlYWN0LW1hcmtkb3duJztcbmltcG9ydCBnZm0gZnJvbSAncmVtYXJrLWdmbSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgc2x1ZyBmcm9tICdyZW1hcmstc2x1Zyc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgaGVhZGluZ3MgZnJvbSAncmVtYXJrLWF1dG9saW5rLWhlYWRpbmdzJ1xuaW1wb3J0IHJlaHlwZVJhdyBmcm9tICdyZWh5cGUtcmF3JztcbmltcG9ydCByZWh5cGVQcmlzbSBmcm9tICdAbWFwYm94L3JlaHlwZS1wcmlzbSc7XG5pbXBvcnQgcmVoeXBlUmV3cml0ZSBmcm9tICdyZWh5cGUtcmV3cml0ZSc7XG5pbXBvcnQgJy4vc3R5bGVzL21hcmtkb3duLmxlc3MnO1xuaW1wb3J0ICcuL3N0eWxlcy9tYXJrZG93bmNvbG9yLmxlc3MnO1xuXG5jb25zdCByZWh5cGVSZXdyaXRlSGFuZGxlID0gKG5vZGU6IGFueSwgaW5kZXg6IG51bWJlciwgcGFyZW50OiBhbnkpID0+IHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnICYmIHBhcmVudC50eXBlID09PSAncm9vdCcgJiYgL2goMXwyfDN8NHw1fDYpLy50ZXN0KG5vZGUudGFnTmFtZSkgJiYgaW5kZXggIT09IDApIHtcbiAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlblswXSA/IG5vZGUuY2hpbGRyZW5bMF0gOiBudWxsO1xuICAgIGlmIChjaGlsZCAmJiBjaGlsZC5wcm9wZXJ0aWVzICYmIGNoaWxkLnByb3BlcnRpZXMuYXJpYUhpZGRlbiA9PT0gJ3RydWUnKSB7XG4gICAgICBjaGlsZC5wcm9wZXJ0aWVzID0geyBjbGFzczogJ2FuY2hvcicsIC4uLmNoaWxkLnByb3BlcnRpZXMgfTtcbiAgICAgIGNoaWxkLmNoaWxkcmVuID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICAgIHRhZ05hbWU6ICdzdmcnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGNsYXNzOiAnb2N0aWNvbiBvY3RpY29uLWxpbmsnLFxuICAgICAgICAgICAgdmlld0JveDogJzAgMCAxNiAxNicsXG4gICAgICAgICAgICB2ZXJzaW9uOiAnMS4xJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTYnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMTYnLFxuICAgICAgICAgICAgYXJpYUhpZGRlbjogJ3RydWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICB0YWdOYW1lOiAncGF0aCcsXG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBmaWxsUnVsZTogJ2V2ZW5vZGQnLFxuICAgICAgICAgICAgICAgIGQ6ICdNNy43NzUgMy4yNzVhLjc1Ljc1IDAgMDAxLjA2IDEuMDZsMS4yNS0xLjI1YTIgMiAwIDExMi44MyAyLjgzbC0yLjUgMi41YTIgMiAwIDAxLTIuODMgMCAuNzUuNzUgMCAwMC0xLjA2IDEuMDYgMy41IDMuNSAwIDAwNC45NSAwbDIuNS0yLjVhMy41IDMuNSAwIDAwLTQuOTUtNC45NWwtMS4yNSAxLjI1em0tNC42OSA5LjY0YTIgMiAwIDAxMC0yLjgzbDIuNS0yLjVhMiAyIDAgMDEyLjgzIDAgLjc1Ljc1IDAgMDAxLjA2LTEuMDYgMy41IDMuNSAwIDAwLTQuOTUgMGwtMi41IDIuNWEzLjUgMy41IDAgMDA0Ljk1IDQuOTVsMS4yNS0xLjI1YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMS4yNSAxLjI1YTIgMiAwIDAxLTIuODMgMHonLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNYXJrZG93blByZXZpZXdQcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgd2FycHBlckVsZW1lbnQ/OiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIEhUTUxEaXZFbGVtZW50PjtcbiAgb25TY3JvbGw/OiAoZTogUmVhY3QuVUlFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWQ7XG4gIG9uTW91c2VPdmVyPzogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkO1xufSAmIE9taXQ8UmVhY3RNYXJrZG93bi5SZWFjdE1hcmtkb3duT3B0aW9ucywgJ2NoaWxkcmVuJz47XG5cbmV4cG9ydCB0eXBlIE1hcmtkb3duUHJldmlld1JlZiA9IHtcbiAgbWRwOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIE1hcmtkb3duUHJldmlld1Byb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBSZWFjdC5mb3J3YXJkUmVmPE1hcmtkb3duUHJldmlld1JlZiwgTWFya2Rvd25QcmV2aWV3UHJvcHM+KChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBzb3VyY2UsIHN0eWxlLCBvblNjcm9sbCwgb25Nb3VzZU92ZXIsIHdhcnBwZXJFbGVtZW50ID0ge30sIC4uLm90aGVyICB9ID0gcHJvcHMgfHwge307XG4gIGNvbnN0IG1kcCA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7IC4uLnByb3BzLCBtZHAgfSksIFttZHAsIHByb3BzXSk7XG5cbiAgY29uc3QgY2xzID0gYHdtZGUtbWFya2Rvd24gd21kZS1tYXJrZG93bi1jb2xvciAke2NsYXNzTmFtZSB8fCAnJ31gO1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXttZHB9IG9uU2Nyb2xsPXtvblNjcm9sbH0gb25Nb3VzZU92ZXI9e29uTW91c2VPdmVyfSB7Li4ud2FycHBlckVsZW1lbnR9IGNsYXNzTmFtZT17Y2xzfSBzdHlsZT17c3R5bGV9PlxuICAgICAgPFJlYWN0TWFya2Rvd25cbiAgICAgICAgey4uLm90aGVyfVxuICAgICAgICBwbHVnaW5zPXtbZ2ZtLCAuLi4ob3RoZXIucGx1Z2lucyB8fCBbXSldfVxuICAgICAgICByZWh5cGVQbHVnaW5zPXtbW3JlaHlwZVByaXNtLCB7IGlnbm9yZU1pc3Npbmc6IHRydWUgfV0sIFtyZWh5cGVSZXdyaXRlLCByZWh5cGVSZXdyaXRlSGFuZGxlXSwgcmVoeXBlUmF3LCAuLi4ob3RoZXIucmVoeXBlUGx1Z2lucyB8fCBbXSldfVxuICAgICAgICByZW1hcmtQbHVnaW5zPXtbIHNsdWcsIGhlYWRpbmdzLCAuLi4ob3RoZXIucmVtYXJrUGx1Z2lucyB8fCBbXSkgXX1cbiAgICAgICAgY2hpbGRyZW49e3NvdXJjZSB8fCAnJ31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59KTtcbiJdfQ==