dumi-theme-antd-style
Version:
dumi-theme-antd-style 是为 dumi2 打造的一款文档站主题包,提供了更加美观、易用的研发与阅读体验
38 lines • 1.96 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
import { useTheme } from 'antd-style';
import { memo } from 'react';
import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter';
import { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';
import { languageMap } from "./language";
import { jsx as _jsx } from "react/jsx-runtime";
Object.entries(languageMap).forEach(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
SyntaxHighlighter.registerLanguage(key, value);
});
var defaultTheme = {
dark: oneDark,
light: oneLight
};
export var Prism = /*#__PURE__*/memo(function (_ref3) {
var children = _ref3.children,
language = _ref3.language,
theme = _ref3.theme;
var _useTheme = useTheme(),
isDarkMode = _useTheme.isDarkMode,
lineHeight = _useTheme.lineHeight;
var Theme = _objectSpread(_objectSpread({}, defaultTheme), theme);
return /*#__PURE__*/_jsx(SyntaxHighlighter, {
language: language,
style: isDarkMode ? Theme.dark : Theme.light,
customStyle: {
borderRadius: 8,
lineHeight: lineHeight
},
children: children
});
});