UNPKG

y-markdown

Version:

render markdown in browser

71 lines (51 loc) 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _marked = require("marked"); var _marked2 = _interopRequireDefault(_marked); var _highlight = require("highlight.js"); var _highlight2 = _interopRequireDefault(_highlight); var _clsx = require("clsx"); var _clsx2 = _interopRequireDefault(_clsx); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _marked2.default.setOptions({ renderer: new _marked2.default.Renderer(), highlight: function highlight(code) { return _highlight2.default.highlight('javascript', code).value; }, // highlight: (code)=>hljs.highlightAuto(code).value, //高亮语言不明确时的方案 gfm: true, //是否允许 Git Hub标准的markdown. tables: true, //是否允许支持表格语法。该选项要求 gfm 为true breaks: false, //是否允许回车换行。该选项要求 gfm 为true pedantic: false, //是否尽可能地兼容 markdown.pl的晦涩部分。不纠正原始模型任何的不良行为和错误。 sanitize: false, //是否对输出进行过滤(清理),将忽略任何已经输入的html代码(标签) smartLists: true, //是否使用比原生markdown更时髦的列表。 旧的列表将可能被作为pedantic的处理内容过滤掉. smartypants: false //是否使用更为时髦的标点,比如在引用语法中加入破折号。 }); function Markdown(_ref) { var children = _ref.children, className = _ref.className, style = _ref.style, onMarked = _ref.onMarked; var innerHTML = (0, _react.useMemo)(function () { return (0, _marked2.default)(children); }, [children]); (0, _react.useEffect)(function () { if (onMarked && innerHTML) onMarked(innerHTML); }, [onMarked, innerHTML]); return _react2.default.createElement("div", { dangerouslySetInnerHTML: { __html: innerHTML }, className: (0, _clsx2.default)('y-markdown', className), style: style }); } var _default = Markdown; exports.default = _default; ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(Markdown, "Markdown", "entry/component/Markdown.js"); __REACT_HOT_LOADER__.register(_default, "default", "entry/component/Markdown.js"); }(); ;