@antv/dumi-theme-antv 0.3.0-beta.2 → 0.3.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins/Playground/index.d.ts +3 -6
- package/dist/builtins/Playground/index.js +27 -7
- package/dist/context.d.ts +2 -1
- package/dist/layouts/DocLayout.js +25 -16
- package/dist/layouts/entry/Index.js +21 -12
- package/dist/layouts/entry/Manual.js +6 -4
- package/dist/pages/404.js +7 -4
- package/dist/pages/Example/index.js +31 -55
- package/dist/pages/Example/index.module.less +50 -8
- package/dist/pages/Example/utils.d.ts +1 -0
- package/dist/pages/Example/utils.js +9 -0
- package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.js +6 -1
- package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.js +11 -6
- package/dist/pages/Examples/index.js +24 -4
- package/dist/pages/Examples/index.module.less +15 -0
- package/dist/pages/Examples/types.d.ts +7 -6
- package/dist/plugin/examples.d.ts +14 -5
- package/dist/plugin/examples.js +17 -3
- package/dist/plugin/index.js +31 -8
- package/dist/plugin/utils.js +3 -2
- package/dist/slots/Article/index.d.ts +3 -0
- package/dist/slots/Article/index.js +11 -0
- package/dist/slots/Article/index.module.less +8 -0
- package/dist/slots/Banner/Notification.d.ts +10 -0
- package/dist/slots/Banner/Notification.js +43 -0
- package/dist/slots/Banner/Notification.module.less +120 -0
- package/dist/slots/Banner/index.d.ts +26 -0
- package/dist/slots/Banner/index.js +184 -0
- package/dist/slots/Banner/index.module.less +449 -0
- package/dist/slots/Cases/index.d.ts +1 -0
- package/dist/slots/Cases/index.js +13 -7
- package/dist/slots/Cases/index.module.less +2 -1
- package/dist/slots/CodeEditor/Toolbar.js +17 -22
- package/dist/slots/CodeEditor/index.d.ts +4 -0
- package/dist/slots/CodeEditor/index.js +71 -23
- package/dist/slots/CodeEditor/utils.js +2 -2
- package/dist/slots/CodePreview/CodeHeader.js +15 -14
- package/dist/slots/CodePreview/index.d.ts +8 -0
- package/dist/slots/CodePreview/index.js +15 -6
- package/dist/slots/CodePreview/index.module.less +17 -7
- package/dist/slots/CodeRunner/index.d.ts +5 -2
- package/dist/slots/CodeRunner/index.js +19 -8
- package/dist/slots/CodeRunner/utils.d.ts +3 -2
- package/dist/slots/CodeRunner/utils.js +1 -1
- package/dist/slots/Companies/index.d.ts +1 -1
- package/dist/slots/{TOC.d.ts → ContentTable/index.d.ts} +2 -1
- package/dist/slots/{TOC.js → ContentTable/index.js} +2 -1
- package/dist/slots/ContentTable/index.module.less +11 -0
- package/dist/slots/Detail/News.d.ts +1 -0
- package/dist/slots/Detail/News.js +3 -2
- package/dist/slots/Detail/index.d.ts +1 -0
- package/dist/slots/Detail/index.js +4 -2
- package/dist/slots/ExampleSider/index.d.ts +4 -38
- package/dist/slots/ExampleSider/index.js +28 -49
- package/dist/slots/ExampleSider/index.module.less +1 -1
- package/dist/slots/Features/FeatureCard.d.ts +1 -0
- package/dist/slots/Features/index.js +7 -3
- package/dist/slots/Features/index.module.less +1 -1
- package/dist/slots/Footer/index.js +34 -14
- package/dist/slots/Header/LogoWhite.js +1 -2
- package/dist/slots/Header/Navs.d.ts +10 -1
- package/dist/slots/Header/Navs.js +36 -19
- package/dist/slots/Header/Products/NavigatorBanner.js +4 -3
- package/dist/slots/Header/Products/Product.js +7 -3
- package/dist/slots/Header/Products/index.js +5 -3
- package/dist/slots/Header/Search.js +5 -3
- package/dist/slots/Header/index.d.ts +7 -2
- package/dist/slots/Header/index.js +135 -30
- package/dist/slots/Loading/index.d.ts +6 -1
- package/dist/slots/Loading/index.js +24 -10
- package/dist/slots/Loading/index.module.less +276 -9
- package/dist/slots/ManualContent/NavigatorBanner.js +5 -3
- package/dist/slots/ManualContent/ReadingTime.js +6 -2
- package/dist/slots/ManualContent/index.js +143 -126
- package/dist/slots/ManualContent/index.module.less +52 -33
- package/dist/slots/ManualContent/utils.d.ts +18 -0
- package/dist/slots/ManualContent/utils.js +64 -0
- package/dist/slots/SEO.d.ts +10 -0
- package/dist/slots/SEO.js +59 -0
- package/dist/slots/_.less +1 -1
- package/dist/slots/hooks.d.ts +4 -4
- package/dist/slots/hooks.js +5 -8
- package/dist/slots/utils.d.ts +4 -19
- package/dist/slots/utils.js +82 -119
- package/dist/types.d.ts +83 -0
- package/dist/typings.d.ts +0 -116
- package/package.json +9 -5
- package/dist/slots/Loading.d.ts +0 -5
- package/dist/slots/Loading.js +0 -8
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
|
|
7
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
8
|
-
|
|
9
1
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
10
2
|
|
|
11
3
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -27,16 +19,19 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
27
19
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
28
20
|
|
|
29
21
|
import React, { useEffect, useState } from 'react';
|
|
30
|
-
import { Layout, Affix, BackTop, Menu
|
|
22
|
+
import { Layout, Affix, BackTop, Menu } from 'antd';
|
|
31
23
|
import { useMedia } from 'react-use';
|
|
32
24
|
import Drawer from 'rc-drawer';
|
|
33
25
|
import { useLocale, useSiteData, useFullSidebarData, useRouteMeta } from 'dumi';
|
|
34
26
|
import { useNavigate } from "react-router-dom";
|
|
35
|
-
import {
|
|
27
|
+
import { MenuFoldOutlined, MenuUnfoldOutlined, VerticalAlignTopOutlined } from '@ant-design/icons';
|
|
36
28
|
import readingTime from 'reading-time';
|
|
29
|
+
import URI from 'uri-parse';
|
|
30
|
+
import { SEO } from "dumi/theme/slots/SEO";
|
|
31
|
+
import { getBaseRoute, getIndexRoute, getOpenKeys, getNavigateUrl } from "./utils";
|
|
37
32
|
import { NavigatorBanner } from "./NavigatorBanner";
|
|
38
33
|
import ReadingTime from "./ReadingTime";
|
|
39
|
-
import {
|
|
34
|
+
import { ContentTable } from "dumi/theme/slots/ContentTable";
|
|
40
35
|
import { useScrollToTop } from "../hooks";
|
|
41
36
|
import 'rc-drawer/assets/index.css';
|
|
42
37
|
import styles from "./index.module.less";
|
|
@@ -56,14 +51,15 @@ export var ManualContent = function ManualContent(_ref) {
|
|
|
56
51
|
docs = _useSiteData$themeCon.docs;
|
|
57
52
|
|
|
58
53
|
var sidebar = useFullSidebarData();
|
|
59
|
-
var
|
|
54
|
+
var is767Wide = useMedia('(min-width: 767.99px)', true);
|
|
55
|
+
var is991Wide = useMedia('(min-width: 991.99px)', true);
|
|
60
56
|
|
|
61
57
|
var _useState = useState(false),
|
|
62
58
|
_useState2 = _slicedToArray(_useState, 2),
|
|
63
59
|
drawOpen = _useState2[0],
|
|
64
60
|
setDrawOpen = _useState2[1];
|
|
65
61
|
|
|
66
|
-
var navigate = useNavigate(); //
|
|
62
|
+
var navigate = useNavigate(); // 获取阅读时间
|
|
67
63
|
|
|
68
64
|
var mdInfo = useRouteMeta();
|
|
69
65
|
var text = mdInfo.texts.reduce(function (prev, next) {
|
|
@@ -71,132 +67,154 @@ export var ManualContent = function ManualContent(_ref) {
|
|
|
71
67
|
}, '');
|
|
72
68
|
|
|
73
69
|
var _readingTime = readingTime(text),
|
|
74
|
-
time = _readingTime.time; //
|
|
75
|
-
// linkoTitle用来映射路由和Title
|
|
70
|
+
time = _readingTime.time; // linkoTitle用来映射路由和Title
|
|
76
71
|
|
|
77
72
|
|
|
78
73
|
var linkoTitle = {};
|
|
79
74
|
|
|
80
|
-
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
for (var _i2 = 0, _Object$values = Object.values(sidebar); _i2 < _Object$values.length; _i2++) {
|
|
76
|
+
var route = _Object$values[_i2];
|
|
77
|
+
route[0].children.forEach(function (item) {
|
|
78
|
+
linkoTitle[item.link] = item.title;
|
|
79
|
+
});
|
|
85
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* /api/xxx --> /api
|
|
83
|
+
* /en/api --> /en/api
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
var baseRoute = getBaseRoute(); // 获取最终的 MenuData
|
|
88
|
+
|
|
89
|
+
var renderSidebar = getMenuData(sidebar, docs, baseRoute, []);
|
|
90
|
+
|
|
91
|
+
function getMenuData(funllSidebarData, rootList, hrefId, list) {
|
|
92
|
+
function fullSidebarDataToMenuData(rootList, hrefId, list) {
|
|
93
|
+
// 递归
|
|
94
|
+
rootList.forEach(function (item) {
|
|
95
|
+
var href = (!baseRoute.startsWith('/en') ? "/".concat(item.slug) : "/en/".concat(item.slug)).toLocaleLowerCase();
|
|
96
|
+
var id = href.split("/").slice(0, href.split("/").length - 1).join("/");
|
|
97
|
+
|
|
98
|
+
if (href.includes(baseRoute)) {
|
|
99
|
+
if (id === hrefId) {
|
|
100
|
+
list.push(_objectSpread(_objectSpread({}, item), {}, {
|
|
101
|
+
key: href,
|
|
102
|
+
label: item.title[currentLocale]
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
86
107
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
108
|
+
var _iterator = _createForOfIteratorHelper(list),
|
|
109
|
+
_step;
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
var _loop = function _loop() {
|
|
113
|
+
var _funllSidebarData$ite;
|
|
114
|
+
|
|
115
|
+
var item = _step.value;
|
|
116
|
+
item.children = [];
|
|
117
|
+
fullSidebarDataToMenuData(rootList, item.key, item.children);
|
|
118
|
+
funllSidebarData[item.key] && ((_funllSidebarData$ite = funllSidebarData[item.key][0].children) === null || _funllSidebarData$ite === void 0 ? void 0 : _funllSidebarData$ite.forEach(function (itemChild) {
|
|
119
|
+
var label = itemChild.title;
|
|
120
|
+
var key = itemChild.link;
|
|
121
|
+
item.children.push(_objectSpread(_objectSpread({}, itemChild), {}, {
|
|
122
|
+
label: label,
|
|
123
|
+
key: key
|
|
124
|
+
}));
|
|
125
|
+
})); // children 的 order 排序
|
|
126
|
+
|
|
127
|
+
item.children.sort(function (a, b) {
|
|
128
|
+
return a.order - b.order;
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
if (item.children.length == 0) {
|
|
132
|
+
delete item.children;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
137
|
+
_loop();
|
|
101
138
|
}
|
|
139
|
+
} catch (err) {
|
|
140
|
+
_iterator.e(err);
|
|
141
|
+
} finally {
|
|
142
|
+
_iterator.f();
|
|
102
143
|
}
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
var _iterator = _createForOfIteratorHelper(list),
|
|
106
|
-
_step;
|
|
107
144
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
var _sidebar$item$key$0$c;
|
|
145
|
+
if (hrefId == baseRoute) {
|
|
146
|
+
var _funllSidebarData$bas;
|
|
111
147
|
|
|
112
|
-
|
|
113
|
-
item.children = [];
|
|
114
|
-
fullSidebarDataToMenuData(rootList, item.key, item.children);
|
|
115
|
-
(_sidebar$item$key$0$c = sidebar[item.key][0].children) === null || _sidebar$item$key$0$c === void 0 ? void 0 : _sidebar$item$key$0$c.forEach(function (itemChild) {
|
|
116
|
-
var label = itemChild.title;
|
|
148
|
+
funllSidebarData[baseRoute] && ((_funllSidebarData$bas = funllSidebarData[baseRoute][0].children) === null || _funllSidebarData$bas === void 0 ? void 0 : _funllSidebarData$bas.forEach(function (itemChild) {
|
|
117
149
|
var key = itemChild.link;
|
|
118
|
-
|
|
150
|
+
var label = itemChild.title;
|
|
151
|
+
list.push(_objectSpread(_objectSpread({}, itemChild), {}, {
|
|
119
152
|
label: label,
|
|
120
153
|
key: key
|
|
121
154
|
}));
|
|
122
|
-
|
|
155
|
+
}));
|
|
156
|
+
list.sort(function (a, b) {
|
|
157
|
+
return a.order - b.order;
|
|
123
158
|
});
|
|
124
|
-
|
|
125
|
-
if (item.children.length == 0) {
|
|
126
|
-
delete item.children;
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
131
|
-
_loop();
|
|
159
|
+
return list;
|
|
132
160
|
}
|
|
133
|
-
} catch (err) {
|
|
134
|
-
_iterator.e(err);
|
|
135
|
-
} finally {
|
|
136
|
-
_iterator.f();
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
if (hrefId == baseRoute) {
|
|
140
|
-
var _sidebar$baseRoute$0$;
|
|
141
|
-
|
|
142
|
-
sidebar[baseRoute] && ((_sidebar$baseRoute$0$ = sidebar[baseRoute][0].children) === null || _sidebar$baseRoute$0$ === void 0 ? void 0 : _sidebar$baseRoute$0$.forEach(function (itemChild) {
|
|
143
|
-
var label = itemChild.title;
|
|
144
|
-
list.push(_objectSpread(_objectSpread({}, itemChild), {}, {
|
|
145
|
-
label: label,
|
|
146
|
-
key: itemChild.link
|
|
147
|
-
}));
|
|
148
|
-
}));
|
|
149
|
-
list.sort(function (a, b) {
|
|
150
|
-
return a.order - b.order;
|
|
151
|
-
});
|
|
152
|
-
return list;
|
|
153
161
|
}
|
|
154
|
-
} // 获取最终的MenuData
|
|
155
162
|
|
|
163
|
+
return fullSidebarDataToMenuData(rootList, hrefId, list);
|
|
164
|
+
} // 获取打开的菜单栏
|
|
156
165
|
|
|
157
|
-
var renderSidebar = fullSidebarDataToMenuData(docs, baseRoute, []); // 获取默认打开的菜单栏
|
|
158
166
|
|
|
159
|
-
function
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
topRoute = topRoute.children[0];
|
|
166
|
-
defaultOpenKeys.push(topRoute.key);
|
|
167
|
-
}
|
|
167
|
+
var _useState3 = useState(function () {
|
|
168
|
+
return getOpenKeys();
|
|
169
|
+
}),
|
|
170
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
171
|
+
defaultOpenKeys = _useState4[0],
|
|
172
|
+
setDefaultOpenKeys = _useState4[1]; // 获取第一个md文件的路由
|
|
168
173
|
|
|
169
|
-
return defaultOpenKeys;
|
|
170
|
-
}
|
|
171
174
|
|
|
172
|
-
var
|
|
175
|
+
var indexRoute = getIndexRoute(renderSidebar); // 点击菜单栏
|
|
173
176
|
|
|
174
177
|
var onClick = function onClick(e) {
|
|
175
178
|
navigate(e.key);
|
|
176
179
|
useScrollToTop();
|
|
177
180
|
};
|
|
178
181
|
|
|
179
|
-
var
|
|
180
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
181
|
-
defaultSelectedKey = _useState4[0],
|
|
182
|
-
setDefaultSelectedKey = _useState4[1]; //上一夜下一页
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
var _useState5 = useState(undefined),
|
|
182
|
+
var _useState5 = useState(),
|
|
186
183
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
187
|
-
|
|
188
|
-
|
|
184
|
+
defaultSelectedKey = _useState6[0],
|
|
185
|
+
setDefaultSelectedKey = _useState6[1]; //上一夜下一页
|
|
186
|
+
|
|
189
187
|
|
|
190
188
|
var _useState7 = useState(undefined),
|
|
191
189
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
prev = _useState8[0],
|
|
191
|
+
setPrev = _useState8[1];
|
|
192
|
+
|
|
193
|
+
var _useState9 = useState(undefined),
|
|
194
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
195
|
+
next = _useState10[0],
|
|
196
|
+
setNext = _useState10[1]; // 所有的 sidebar 路由
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
var sidebarRoutes = [];
|
|
200
|
+
|
|
201
|
+
for (var _i3 = 0, _Object$keys = Object.keys(linkoTitle); _i3 < _Object$keys.length; _i3++) {
|
|
202
|
+
var route = _Object$keys[_i3];
|
|
203
|
+
sidebarRoutes.push(route);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
var uri = new URI(location.href);
|
|
207
|
+
uri.path = getNavigateUrl("/".concat(uri.path), indexRoute, sidebarRoutes);
|
|
208
|
+
|
|
209
|
+
if ("".concat(uri.path) !== window.location.pathname) {
|
|
210
|
+
uri.path = uri.path.slice(1);
|
|
211
|
+
navigate(uri.toURI().replace(location.origin, ''));
|
|
212
|
+
} // 改变菜单栏选中和 openKeys 状态
|
|
194
213
|
|
|
195
214
|
|
|
196
215
|
useEffect(function () {
|
|
197
|
-
if (window.location.pathname ==
|
|
198
|
-
|
|
199
|
-
return;
|
|
216
|
+
if (window.location.pathname == indexRoute) {
|
|
217
|
+
setDefaultOpenKeys(getOpenKeys());
|
|
200
218
|
}
|
|
201
219
|
|
|
202
220
|
setDefaultSelectedKey([window.location.pathname]);
|
|
@@ -240,18 +258,24 @@ export var ManualContent = function ManualContent(_ref) {
|
|
|
240
258
|
|
|
241
259
|
var menu = /*#__PURE__*/React.createElement(Menu, {
|
|
242
260
|
onClick: onClick,
|
|
243
|
-
|
|
261
|
+
onOpenChange: function onOpenChange(openKeys) {
|
|
262
|
+
setDefaultOpenKeys(openKeys);
|
|
263
|
+
},
|
|
244
264
|
selectedKeys: defaultSelectedKey,
|
|
245
|
-
|
|
265
|
+
openKeys: defaultOpenKeys,
|
|
246
266
|
mode: "inline",
|
|
247
267
|
items: renderSidebar,
|
|
248
268
|
inlineIndent: 16,
|
|
249
269
|
style: {
|
|
250
270
|
height: '100%'
|
|
251
271
|
},
|
|
252
|
-
forceSubMenuRender: true
|
|
272
|
+
forceSubMenuRender: true,
|
|
273
|
+
triggerSubMenuAction: "click"
|
|
253
274
|
});
|
|
254
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(
|
|
275
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SEO, {
|
|
276
|
+
title: linkoTitle[window.location.pathname],
|
|
277
|
+
lang: locale.id
|
|
278
|
+
}), /*#__PURE__*/React.createElement(Layout, {
|
|
255
279
|
style: {
|
|
256
280
|
background: '#fff'
|
|
257
281
|
},
|
|
@@ -261,9 +285,9 @@ export var ManualContent = function ManualContent(_ref) {
|
|
|
261
285
|
offsetTop: 0,
|
|
262
286
|
className: styles.affix,
|
|
263
287
|
style: {
|
|
264
|
-
height:
|
|
288
|
+
height: is767Wide ? '100vh' : 'inherit'
|
|
265
289
|
}
|
|
266
|
-
},
|
|
290
|
+
}, is767Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
267
291
|
width: "auto",
|
|
268
292
|
theme: "light",
|
|
269
293
|
className: styles.sider
|
|
@@ -281,22 +305,15 @@ export var ManualContent = function ManualContent(_ref) {
|
|
|
281
305
|
}, menu)), /*#__PURE__*/React.createElement(Layout.Content, {
|
|
282
306
|
className: styles.content
|
|
283
307
|
}, /*#__PURE__*/React.createElement("div", {
|
|
284
|
-
className: styles.
|
|
285
|
-
}, /*#__PURE__*/React.createElement("h1",
|
|
286
|
-
|
|
287
|
-
}, /*#__PURE__*/React.createElement("
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
relativePath: relativePath,
|
|
291
|
-
prefix: 'docs'
|
|
292
|
-
}),
|
|
293
|
-
target: "_blank",
|
|
294
|
-
rel: "noopener noreferrer",
|
|
295
|
-
className: styles.editOnGtiHubButton
|
|
296
|
-
}, /*#__PURE__*/React.createElement(EditOutlined, null)))), /*#__PURE__*/React.createElement(ReadingTime, {
|
|
308
|
+
className: styles.main
|
|
309
|
+
}, /*#__PURE__*/React.createElement("h1", {
|
|
310
|
+
className: styles.contentTitle
|
|
311
|
+
}, linkoTitle[window.location.pathname]), /*#__PURE__*/React.createElement("div", {
|
|
312
|
+
className: styles.readtimeContainer
|
|
313
|
+
}, /*#__PURE__*/React.createElement(ReadingTime, {
|
|
297
314
|
readingTime: time,
|
|
298
315
|
className: styles.readtime
|
|
299
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
316
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
300
317
|
className: styles.markdown
|
|
301
318
|
}, children), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
302
319
|
className: styles.preandnext
|
|
@@ -312,10 +329,10 @@ export var ManualContent = function ManualContent(_ref) {
|
|
|
312
329
|
}
|
|
313
330
|
}, /*#__PURE__*/React.createElement("div", {
|
|
314
331
|
className: styles.backTop
|
|
315
|
-
}, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null))))))), /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
332
|
+
}, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null))))))), is991Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
316
333
|
theme: "light",
|
|
317
334
|
width: 260
|
|
318
335
|
}, /*#__PURE__*/React.createElement(Affix, {
|
|
319
336
|
className: styles.toc
|
|
320
|
-
}, /*#__PURE__*/React.createElement(
|
|
337
|
+
}, /*#__PURE__*/React.createElement(ContentTable, null))) : /*#__PURE__*/React.createElement("div", null)));
|
|
321
338
|
};
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
.markdown {
|
|
8
8
|
font-size: 14px;
|
|
9
9
|
line-height: 2;
|
|
10
|
+
min-height: 600px; // 大概一屏幕占位,防止切换文档的时候,有黑影!
|
|
10
11
|
|
|
11
12
|
h1 {
|
|
12
13
|
margin-bottom: 20px;
|
|
@@ -83,6 +84,14 @@
|
|
|
83
84
|
background-color: rgba(0, 0, 0, 0.03);
|
|
84
85
|
}
|
|
85
86
|
|
|
87
|
+
code {
|
|
88
|
+
padding: 0.2em 0.4em;
|
|
89
|
+
margin: 0;
|
|
90
|
+
font-size: 85%;
|
|
91
|
+
background-color: rgba(175, 184, 193, 0.2);
|
|
92
|
+
border-radius: 6px;
|
|
93
|
+
}
|
|
94
|
+
|
|
86
95
|
code[class*='language-'] {
|
|
87
96
|
background: none;
|
|
88
97
|
}
|
|
@@ -196,6 +205,10 @@
|
|
|
196
205
|
> p > br {
|
|
197
206
|
clear: both;
|
|
198
207
|
}
|
|
208
|
+
|
|
209
|
+
img {
|
|
210
|
+
max-width: 100%;
|
|
211
|
+
}
|
|
199
212
|
}
|
|
200
213
|
|
|
201
214
|
.layout {
|
|
@@ -203,7 +216,7 @@
|
|
|
203
216
|
}
|
|
204
217
|
|
|
205
218
|
.main {
|
|
206
|
-
width:
|
|
219
|
+
width: 100%;
|
|
207
220
|
padding-left: 48px;
|
|
208
221
|
padding-right: 24px;
|
|
209
222
|
overflow: hidden;
|
|
@@ -236,21 +249,39 @@
|
|
|
236
249
|
|
|
237
250
|
// reference yuque UI
|
|
238
251
|
.toc {
|
|
239
|
-
:
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
252
|
+
width: @toc-width;
|
|
253
|
+
float: right;
|
|
254
|
+
font-size: 12px;
|
|
255
|
+
background: #fff;
|
|
256
|
+
max-height: 100vh;
|
|
257
|
+
overflow: scroll;
|
|
258
|
+
|
|
259
|
+
position: sticky;
|
|
260
|
+
top: 0;
|
|
261
|
+
|
|
262
|
+
ul>li {
|
|
263
|
+
list-style: none !important;
|
|
264
|
+
padding: 0 !important;
|
|
265
|
+
margin-left: -1px !important;
|
|
266
|
+
|
|
267
|
+
// 超出部分省略号显示
|
|
268
|
+
text-overflow: ellipsis;
|
|
269
|
+
overflow: hidden;
|
|
270
|
+
white-space: nowrap;
|
|
271
|
+
|
|
272
|
+
a {
|
|
273
|
+
color: @text-color;
|
|
250
274
|
}
|
|
251
275
|
}
|
|
252
276
|
}
|
|
253
|
-
|
|
277
|
+
.contentTitle {
|
|
278
|
+
margin-top: 8px;
|
|
279
|
+
margin-bottom: 20px;
|
|
280
|
+
font-weight: 500;
|
|
281
|
+
font-size: 30px;
|
|
282
|
+
font-family: Avenir, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
|
|
283
|
+
line-height: 38px;
|
|
284
|
+
}
|
|
254
285
|
.sider {
|
|
255
286
|
width: 280px !important;
|
|
256
287
|
height: inherit;
|
|
@@ -460,16 +491,11 @@
|
|
|
460
491
|
padding-left: 32px;
|
|
461
492
|
padding-right: 32px;
|
|
462
493
|
}
|
|
463
|
-
|
|
464
|
-
.toc {
|
|
465
|
-
display: none;
|
|
466
|
-
}
|
|
467
494
|
}
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
width: 240px !important;
|
|
495
|
+
.tocSiderbar {
|
|
496
|
+
display: none;
|
|
471
497
|
}
|
|
472
|
-
|
|
498
|
+
|
|
473
499
|
.gallery {
|
|
474
500
|
.galleryCard {
|
|
475
501
|
width: 50%;
|
|
@@ -487,11 +513,9 @@
|
|
|
487
513
|
}
|
|
488
514
|
|
|
489
515
|
.sider {
|
|
490
|
-
width: 100% !important;
|
|
491
516
|
margin-bottom: 32px;
|
|
492
517
|
padding-bottom: 32px;
|
|
493
518
|
border-bottom: 1px solid #e8e8e8;
|
|
494
|
-
display: none;
|
|
495
519
|
}
|
|
496
520
|
|
|
497
521
|
.markdown {
|
|
@@ -596,19 +620,13 @@
|
|
|
596
620
|
margin-bottom: 20px;
|
|
597
621
|
font-weight: 500;
|
|
598
622
|
font-size: 30px;
|
|
599
|
-
font-family: Avenir, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
|
|
600
623
|
line-height: 38px;
|
|
601
624
|
}
|
|
602
625
|
|
|
603
626
|
.content {
|
|
604
|
-
|
|
605
|
-
justify-content: center;
|
|
627
|
+
width: 100% !important;
|
|
606
628
|
min-width: 400px;
|
|
607
|
-
|
|
608
|
-
.contentMain {
|
|
609
|
-
width: 100%;
|
|
610
|
-
padding: 0 24px 0 48px;
|
|
611
|
-
}
|
|
629
|
+
justify-content: center;
|
|
612
630
|
}
|
|
613
631
|
|
|
614
632
|
.menuSwitch {
|
|
@@ -630,10 +648,11 @@
|
|
|
630
648
|
border-radius: 0 4px 4px 0;
|
|
631
649
|
}
|
|
632
650
|
|
|
633
|
-
|
|
651
|
+
.readtimeContainer {
|
|
652
|
+
margin-bottom: 1.2em;
|
|
653
|
+
}
|
|
634
654
|
|
|
635
655
|
.readtime {
|
|
636
|
-
margin-bottom: 1.2em;
|
|
637
656
|
color: #0d1a26;
|
|
638
657
|
line-height: 1.5715;
|
|
639
658
|
list-style: none;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function getOpenKeys(): any[];
|
|
2
|
+
export declare function getBaseRoute(): string;
|
|
3
|
+
export declare function getIndexRoute(MenuData: any): any;
|
|
4
|
+
/**
|
|
5
|
+
* 返回需要跳转的 pathname
|
|
6
|
+
* /en/api/ ----> /en/api/[first-doc]
|
|
7
|
+
* /zh/api/ ----> /api/[first-doc]
|
|
8
|
+
* /en/docs/api/ ----> /en/api/[first-doc]
|
|
9
|
+
* /zh/docs/api/ ----> /api/[first-doc]
|
|
10
|
+
*
|
|
11
|
+
* /en/docs/api/xxx ----> /en/api/xxx
|
|
12
|
+
* /zh/docs/api/xxx ----> /api/xxx
|
|
13
|
+
*
|
|
14
|
+
* /docs/api/xxx -----> /api/xxx
|
|
15
|
+
*
|
|
16
|
+
* @param p
|
|
17
|
+
*/
|
|
18
|
+
export declare function getNavigateUrl(pathname: string, first: string, siderbarMenu: any[]): string;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export function getOpenKeys() {
|
|
2
|
+
var pathname = window.location.pathname.replace('/docs/', '/').replace('/zh/', '/');
|
|
3
|
+
var pathArr = pathname.split('/');
|
|
4
|
+
var openKeys = [];
|
|
5
|
+
|
|
6
|
+
for (var i = pathArr.length; i > 0; i--) {
|
|
7
|
+
var tem = pathArr.slice(0, i);
|
|
8
|
+
openKeys.push(tem.join('/'));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return openKeys;
|
|
12
|
+
}
|
|
13
|
+
export function getBaseRoute() {
|
|
14
|
+
var matchRoute = window.location.pathname; // 兼容 zh
|
|
15
|
+
|
|
16
|
+
matchRoute = matchRoute.replace('/zh/', '/'); // 兼容带有docs的route
|
|
17
|
+
|
|
18
|
+
matchRoute = matchRoute.replace('/docs', ''); // 查找 baseRoute
|
|
19
|
+
|
|
20
|
+
var reg = window.location.pathname.startsWith('/en') ? /(\/[A-z]*\/?\/[A-z]*)\/?/ : /(\/[A-z]*)\/?/;
|
|
21
|
+
var mainRoute = matchRoute.match(reg);
|
|
22
|
+
return mainRoute[1];
|
|
23
|
+
}
|
|
24
|
+
export function getIndexRoute(MenuData) {
|
|
25
|
+
var defaultOpenKeys = [];
|
|
26
|
+
var topRoute = MenuData[0];
|
|
27
|
+
defaultOpenKeys.push(topRoute.key);
|
|
28
|
+
|
|
29
|
+
while (topRoute.children) {
|
|
30
|
+
topRoute = topRoute.children[0];
|
|
31
|
+
defaultOpenKeys.push(topRoute.key);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return defaultOpenKeys[defaultOpenKeys.length - 1];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 返回需要跳转的 pathname
|
|
38
|
+
* /en/api/ ----> /en/api/[first-doc]
|
|
39
|
+
* /zh/api/ ----> /api/[first-doc]
|
|
40
|
+
* /en/docs/api/ ----> /en/api/[first-doc]
|
|
41
|
+
* /zh/docs/api/ ----> /api/[first-doc]
|
|
42
|
+
*
|
|
43
|
+
* /en/docs/api/xxx ----> /en/api/xxx
|
|
44
|
+
* /zh/docs/api/xxx ----> /api/xxx
|
|
45
|
+
*
|
|
46
|
+
* /docs/api/xxx -----> /api/xxx
|
|
47
|
+
*
|
|
48
|
+
* @param p
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export function getNavigateUrl(pathname, first, siderbarMenu) {
|
|
52
|
+
// 兜底 如果 nav 指定有误则自动重定向到 indexDocRoute
|
|
53
|
+
if (pathname.includes('/docs/') || pathname.includes('/zh/')) {
|
|
54
|
+
return pathname.replace('/docs/', '/').replace('/zh/', '/');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (siderbarMenu.every(function (item) {
|
|
58
|
+
return ![item, "".concat(item, "/")].includes(pathname);
|
|
59
|
+
})) {
|
|
60
|
+
return first;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return pathname;
|
|
64
|
+
}
|