UNPKG

@uiw/react-markdown-preview-example

Version:

Preview the markdown files and run the React examples in the documentation.

99 lines (98 loc) 5.65 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = Markdown; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _reactCodePreviewLayout = _interopRequireDefault(require("react-code-preview-layout")); var _markdownReactCodePreviewLoader = require("markdown-react-code-preview-loader"); var _reactMarkdownPreview = _interopRequireDefault(require("@uiw/react-markdown-preview")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _rehypeIgnore = _interopRequireDefault(require("rehype-ignore")); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["components", "data", "node"], _excluded2 = ["source", "components", "data", "rehypeRewrite"]; var _templateObject; var Preview = _reactCodePreviewLayout["default"].Preview; var Code = _reactCodePreviewLayout["default"].Code; var Toolbar = _reactCodePreviewLayout["default"].Toolbar; var MarkdownStyle = (0, _styledComponents["default"])(_reactMarkdownPreview["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0 auto;\n box-shadow:\n rgb(8 15 41 / 8%) 0.5rem 0.5rem 2rem 0px,\n rgb(8 15 41 / 8%) 0px 0px 1px 0px;\n border: 1px solid var(--color-border-default, #30363d);\n text-align: left;\n max-width: 56rem;\n overflow: auto;\n padding: 2rem;\n border-radius: 0.55rem;\n"]))); var CodePreview = function CodePreview(_ref) { var components = _ref.components, data = _ref.data, node = _ref.node, props = (0, _objectWithoutProperties2["default"])(_ref, _excluded); if (node && node.type === 'element' && node.tagName === 'pre') { var _child$data, _child$properties, _node$position; var child = node.children[0]; if (!child) return /*#__PURE__*/(0, _jsxRuntime.jsx)("pre", (0, _objectSpread2["default"])({}, props)); var meta = ((_child$data = child.data) === null || _child$data === void 0 ? void 0 : _child$data.meta) || ((_child$properties = child.properties) === null || _child$properties === void 0 ? void 0 : _child$properties.dataMeta); if (!(0, _markdownReactCodePreviewLoader.isMeta)(meta)) { return /*#__PURE__*/(0, _jsxRuntime.jsx)("pre", (0, _objectSpread2["default"])({}, props)); } var line = node === null || node === void 0 || (_node$position = node.position) === null || _node$position === void 0 ? void 0 : _node$position.start.line; var metaId = (0, _markdownReactCodePreviewLoader.getMetaId)(meta) || String(line); var Child = components["".concat(metaId)]; if (metaId && typeof Child === 'function') { var code = data[metaId].value || ''; var _getURLParameters = (0, _markdownReactCodePreviewLoader.getURLParameters)(meta || ''), title = _getURLParameters.title, _getURLParameters$bor = _getURLParameters.boreder, boreder = _getURLParameters$bor === void 0 ? 1 : _getURLParameters$bor, _getURLParameters$che = _getURLParameters.checkered, checkered = _getURLParameters$che === void 0 ? 1 : _getURLParameters$che, _getURLParameters$cod = _getURLParameters.code, codeNum = _getURLParameters$cod === void 0 ? 1 : _getURLParameters$cod, _getURLParameters$too = _getURLParameters.toolbar, toolbar = _getURLParameters$too === void 0 ? 1 : _getURLParameters$too; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactCodePreviewLayout["default"], { bordered: !!Number(boreder), disableCheckered: !Number(checkered), style: { marginBottom: 16 }, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Preview, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Child, {}) }), !!Number(toolbar) && /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, { text: code, visibleButton: !!Number(codeNum), children: title || 'Code Example' }), !!Number(codeNum) && /*#__PURE__*/(0, _jsxRuntime.jsx)(Code, { tagName: "pre", style: { marginBottom: 0 }, className: props.className, children: props.children })] }); } } return /*#__PURE__*/(0, _jsxRuntime.jsx)("code", (0, _objectSpread2["default"])({}, props)); }; function Markdown(props) { var source = props.source, components = props.components, data = props.data, rehypeRewrite = props.rehypeRewrite, reset = (0, _objectWithoutProperties2["default"])(props, _excluded2); return /*#__PURE__*/(0, _jsxRuntime.jsx)(MarkdownStyle, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({ disableCopy: true, rehypePlugins: [_rehypeIgnore["default"]].concat((0, _toConsumableArray2["default"])(reset.rehypePlugins || [])) }, reset), {}, { source: data.source, components: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, components), {}, { pre: function pre(rest) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(CodePreview, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, rest), {}, { components: data.components, data: data.data })); } }) })); } module.exports = exports.default;