UNPKG

dumi-theme-antd

Version:

Ant Design 5.0 官网风格类似的 dumi2 主题插件

90 lines (89 loc) 8.17 kB
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } import { css } from '@emotion/react'; import { Helmet, Outlet, useLocale, useLocation, useOutlet, useRouteMeta, useSiteData } from 'dumi'; import React, { useEffect, useContext, useMemo } from 'react'; import classNames from 'classnames'; import GlobalStyles from "../../common/GlobalStyles"; import useLocaleValue from "../../hooks/useLocaleValue"; import Footer from "dumi/theme/slots/Footer"; import Header from "dumi/theme/slots/Header"; import Homepage from "../HomePageLayout"; import SidebarLayout from "../SidebarLayout"; import SiteContext from "dumi/theme/slots/SiteContext"; import "../../static/style"; import { jsx as ___EmotionJSX } from "@emotion/react"; var _ref = process.env.NODE_ENV === "production" ? { name: "11pfcjj", styles: "display:flex;flex-direction:column;min-height:100vh" } : { name: "rorlea-layoutWrap", styles: "display:flex;flex-direction:column;min-height:100vh;label:layoutWrap;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlbUIiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgSGVsbWV0LCBPdXRsZXQsIHVzZUxvY2FsZSwgdXNlTG9jYXRpb24sIHVzZU91dGxldCwgdXNlUm91dGVNZXRhLCB1c2VTaXRlRGF0YSB9IGZyb20gJ2R1bWknO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlQ29udGV4dCwgdXNlTWVtbywgdHlwZSBGQyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IEdsb2JhbFN0eWxlcyBmcm9tICcuLi8uLi9jb21tb24vR2xvYmFsU3R5bGVzJztcbmltcG9ydCB1c2VMb2NhbGVWYWx1ZSBmcm9tICcuLi8uLi9ob29rcy91c2VMb2NhbGVWYWx1ZSc7XG5pbXBvcnQgRm9vdGVyIGZyb20gJy4uLy4uL3Nsb3RzL0Zvb3Rlcic7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4uLy4uL3Nsb3RzL0hlYWRlcic7XG5pbXBvcnQgSG9tZXBhZ2UgZnJvbSAnLi4vSG9tZVBhZ2VMYXlvdXQnO1xuaW1wb3J0IFNpZGViYXJMYXlvdXQgZnJvbSAnLi4vU2lkZWJhckxheW91dCc7XG5pbXBvcnQgU2l0ZUNvbnRleHQgZnJvbSAnLi4vLi4vc2xvdHMvU2l0ZUNvbnRleHQnO1xuaW1wb3J0ICcuLi8uLi9zdGF0aWMvc3R5bGUnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgbGF5b3V0V3JhcDogY3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBgXG4gIH07XG59O1xuXG5jb25zdCBEb2NMYXlvdXQ6IEZDID0gKCkgPT4ge1xuICBjb25zdCBvdXRsZXQgPSB1c2VPdXRsZXQoKTtcbiAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCk7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHJvdXRlTWV0YSA9IHVzZVJvdXRlTWV0YSgpO1xuICBjb25zdCB0aXRsZSA9IHVzZUxvY2FsZVZhbHVlKCd0aXRsZScpO1xuICBjb25zdCBkZXNjcmlwdGlvbiA9IHVzZUxvY2FsZVZhbHVlKCdkZXNjcmlwdGlvbicpO1xuICBjb25zdCB7IHBhdGhuYW1lLCBoYXNoIH0gPSBsb2NhdGlvbjtcbiAgY29uc3QgeyBsb2FkaW5nIH0gPSB1c2VTaXRlRGF0YSgpO1xuICBjb25zdCB7IGRpcmVjdGlvbiB9ID0gdXNlQ29udGV4dChTaXRlQ29udGV4dCk7XG5cbiAgY29uc3QgY29udGVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIFsnJywgJy8nXS5zb21lKChwYXRoKSA9PiBwYXRoID09PSBwYXRobmFtZSkgfHxcbiAgICAgIFsnL2luZGV4J10uc29tZSgocGF0aCkgPT4gcGF0aG5hbWUuc3RhcnRzV2l0aChwYXRoKSlcbiAgICApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICB7b3V0bGV0IHx8IDxIb21lcGFnZSAvPn1cbiAgICAgICAgICA8Rm9vdGVyIC8+XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGVNZXRhLmZyb250bWF0dGVyPy5zaWRlYmFyID09PSBmYWxzZSA/IChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxPdXRsZXQgLz5cbiAgICAgIDwvZGl2PlxuICAgICkgOiAoXG4gICAgICA8U2lkZWJhckxheW91dD5cbiAgICAgICAgPE91dGxldCAvPlxuICAgICAgPC9TaWRlYmFyTGF5b3V0PlxuICAgICk7XG4gIH0sIFtvdXRsZXQsIHBhdGhuYW1lLCByb3V0ZU1ldGFdKTtcblxuICAvLyBoYW5kbGUgaGFzaCBjaGFuZ2Ugb3IgdmlzaXQgcGFnZSBoYXNoIGZyb20gTGluayBjb21wb25lbnQsIGFuZCBqdW1wIGFmdGVyIGFzeW5jIGNodW5rIGxvYWRlZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlkID0gaGFzaC5yZXBsYWNlKCcjJywgJycpO1xuICAgIGlmIChpZCkge1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVjb2RlVVJJQ29tcG9uZW50KGlkKSk/LnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuICB9LCBbbG9hZGluZywgaGFzaF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjc3M9e3N0eWxlcy5sYXlvdXRXcmFwfT5cbiAgICAgIDxIZWxtZXQgZW5jb2RlU3BlY2lhbENoYXJhY3RlcnM9e2ZhbHNlfT5cbiAgICAgICAgPGh0bWxcbiAgICAgICAgICBsYW5nPXtsb2NhbGUuaWR9XG4gICAgICAgICAgZGF0YS1kaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoWydkdW1pLXRoZW1lLWFudGQtcm9vdCcsIHsgcnRsOiBkaXJlY3Rpb24gPT09ICdydGwnIH1dKX1cbiAgICAgICAgLz5cbiAgICAgICAgPHRpdGxlPntgJHt0aXRsZSB8fCAnZHVtaS10aGVtZS1hbnRkJ30ke2Rlc2NyaXB0aW9uID8gYC0ke2Rlc2NyaXB0aW9ufWAgOiAnJ31gfTwvdGl0bGU+XG4gICAgICAgIDxsaW5rXG4gICAgICAgICAgc2l6ZXM9XCIxNDR4MTQ0XCJcbiAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3MvYW50ZmluY2RuL1VtVm50M3Q0VDAvYW50ZC5wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8bWV0YSBuYW1lPVwiZGVzY3JpcHRpb25cIiBjb250ZW50PXtkZXNjcmlwdGlvbn0gLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzp0aXRsZVwiIGNvbnRlbnQ9e3RpdGxlfSAvPlxuICAgICAgICA8bWV0YSBwcm9wZXJ0eT1cIm9nOnR5cGVcIiBjb250ZW50PVwid2Vic2l0ZVwiIC8+XG4gICAgICAgIDxtZXRhXG4gICAgICAgICAgcHJvcGVydHk9XCJvZzppbWFnZVwiXG4gICAgICAgICAgY29udGVudD1cImh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9ybHBUTGxiTXpUTll1WkdHQ1ZZTS5wbmdcIlxuICAgICAgICAvPlxuICAgICAgPC9IZWxtZXQ+XG4gICAgICA8R2xvYmFsU3R5bGVzIC8+XG4gICAgICA8SGVhZGVyIC8+XG4gICAgICB7Y29udGVudH1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERvY0xheW91dDtcbiJdfQ== */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }; var useStyles = function useStyles() { return { layoutWrap: _ref }; }; var DocLayout = function DocLayout() { var outlet = useOutlet(); var locale = useLocale(); var location = useLocation(); var styles = useStyles(); var routeMeta = useRouteMeta(); var title = useLocaleValue('title'); var description = useLocaleValue('description'); var pathname = location.pathname, hash = location.hash; var _useSiteData = useSiteData(), loading = _useSiteData.loading; var _useContext = useContext(SiteContext), direction = _useContext.direction; var content = useMemo(function () { var _routeMeta$frontmatte; if (['', '/'].some(function (path) { return path === pathname; }) || ['/index'].some(function (path) { return pathname.startsWith(path); })) { return ___EmotionJSX(React.Fragment, null, outlet || ___EmotionJSX(Homepage, null), ___EmotionJSX(Footer, null)); } return ((_routeMeta$frontmatte = routeMeta.frontmatter) === null || _routeMeta$frontmatte === void 0 ? void 0 : _routeMeta$frontmatte.sidebar) === false ? ___EmotionJSX("div", null, ___EmotionJSX(Outlet, null)) : ___EmotionJSX(SidebarLayout, null, ___EmotionJSX(Outlet, null)); }, [outlet, pathname, routeMeta]); // handle hash change or visit page hash from Link component, and jump after async chunk loaded useEffect(function () { var id = hash.replace('#', ''); if (id) { var _document$getElementB; (_document$getElementB = document.getElementById(decodeURIComponent(id))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView(); } }, [loading, hash]); return ___EmotionJSX("div", { css: styles.layoutWrap }, ___EmotionJSX(Helmet, { encodeSpecialCharacters: false }, ___EmotionJSX("html", { lang: locale.id, "data-direction": direction, className: classNames(['dumi-theme-antd-root', { rtl: direction === 'rtl' }]) }), ___EmotionJSX("title", null, "".concat(title || 'dumi-theme-antd').concat(description ? "-".concat(description) : '')), ___EmotionJSX("link", { sizes: "144x144", href: "https://gw.alipayobjects.com/zos/antfincdn/UmVnt3t4T0/antd.png" }), ___EmotionJSX("meta", { name: "description", content: description }), ___EmotionJSX("meta", { property: "og:title", content: title }), ___EmotionJSX("meta", { property: "og:type", content: "website" }), ___EmotionJSX("meta", { property: "og:image", content: "https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png" })), ___EmotionJSX(GlobalStyles, null), ___EmotionJSX(Header, null), content); }; export default DocLayout;