@antv/dumi-theme-antv 0.3.0-beta.1 → 0.3.0-beta.11

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.
Files changed (67) hide show
  1. package/dist/builtins/Playground/index.d.ts +2 -5
  2. package/dist/builtins/Playground/index.js +25 -6
  3. package/dist/context.d.ts +2 -1
  4. package/dist/layouts/DocLayout.js +25 -16
  5. package/dist/layouts/entry/Index.js +10 -2
  6. package/dist/layouts/entry/Manual.js +3 -1
  7. package/dist/pages/404.js +5 -1
  8. package/dist/pages/Example/index.js +28 -52
  9. package/dist/pages/Example/index.module.less +50 -8
  10. package/dist/pages/Example/utils.d.ts +1 -0
  11. package/dist/pages/Example/utils.js +9 -0
  12. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.js +8 -5
  13. package/dist/pages/Examples/index.js +22 -2
  14. package/dist/pages/Examples/index.module.less +2 -0
  15. package/dist/pages/Examples/types.d.ts +7 -6
  16. package/dist/plugin/examples.d.ts +16 -2
  17. package/dist/plugin/examples.js +32 -10
  18. package/dist/plugin/index.js +31 -20
  19. package/dist/plugin/utils.d.ts +5 -0
  20. package/dist/plugin/utils.js +46 -0
  21. package/dist/slots/Cases/index.d.ts +1 -0
  22. package/dist/slots/Cases/index.js +1 -1
  23. package/dist/slots/Cases/index.module.less +2 -1
  24. package/dist/slots/CodeEditor/Toolbar.js +4 -16
  25. package/dist/slots/CodeEditor/index.d.ts +4 -0
  26. package/dist/slots/CodeEditor/index.js +48 -16
  27. package/dist/slots/CodeEditor/utils.js +2 -2
  28. package/dist/slots/CodePreview/CodeHeader.js +15 -14
  29. package/dist/slots/CodePreview/index.d.ts +8 -0
  30. package/dist/slots/CodePreview/index.js +6 -4
  31. package/dist/slots/CodePreview/index.module.less +17 -7
  32. package/dist/slots/CodeRunner/index.d.ts +5 -2
  33. package/dist/slots/CodeRunner/index.js +18 -4
  34. package/dist/slots/CodeRunner/utils.d.ts +3 -2
  35. package/dist/slots/CodeRunner/utils.js +1 -1
  36. package/dist/slots/Detail/News.d.ts +1 -0
  37. package/dist/slots/Detail/index.d.ts +1 -0
  38. package/dist/slots/Detail/index.js +1 -1
  39. package/dist/slots/ExampleSider/index.d.ts +4 -38
  40. package/dist/slots/ExampleSider/index.js +22 -44
  41. package/dist/slots/ExampleSider/index.module.less +1 -1
  42. package/dist/slots/Features/FeatureCard.d.ts +1 -0
  43. package/dist/slots/Features/index.js +2 -1
  44. package/dist/slots/Footer/index.js +3 -2
  45. package/dist/slots/Header/Navs.d.ts +10 -1
  46. package/dist/slots/Header/Navs.js +36 -19
  47. package/dist/slots/Header/index.js +8 -7
  48. package/dist/slots/Loading/index.d.ts +6 -1
  49. package/dist/slots/Loading/index.js +24 -10
  50. package/dist/slots/Loading/index.module.less +276 -9
  51. package/dist/slots/ManualContent/index.js +138 -113
  52. package/dist/slots/ManualContent/index.module.less +40 -33
  53. package/dist/slots/ManualContent/utils.d.ts +18 -0
  54. package/dist/slots/ManualContent/utils.js +64 -0
  55. package/dist/slots/SEO.d.ts +10 -0
  56. package/dist/slots/SEO.js +59 -0
  57. package/dist/slots/{TOC.d.ts → TOC/index.d.ts} +1 -0
  58. package/dist/slots/{TOC.js → TOC/index.js} +1 -0
  59. package/dist/slots/TOC/index.module.less +11 -0
  60. package/dist/slots/hooks.d.ts +3 -3
  61. package/dist/slots/utils.d.ts +4 -19
  62. package/dist/slots/utils.js +77 -119
  63. package/dist/types.d.ts +83 -0
  64. package/dist/typings.d.ts +0 -113
  65. package/package.json +7 -4
  66. package/dist/slots/Loading.d.ts +0 -5
  67. package/dist/slots/Loading.js +0 -8
@@ -1,12 +1,279 @@
1
- @import '~antd/es/style/themes/default.less';
1
+ .loading {
2
+ position: absolute;
3
+ left: 0;
4
+ top: 0;
5
+ z-index: 9999;
6
+ width: 100%;
7
+ height: 100%;
8
+ background-color: #fff;
9
+ border: 1px solid #f0f0f0;
2
10
 
3
- .container {
4
- padding: 30vh 0 0;
5
- text-align: center;
11
+ :global {
12
+ .container {
13
+ display: inline-block;
14
+ position: absolute;
15
+ left: 50%;
16
+ top: 50%;
17
+ margin: -50px 0 0 -120px;
18
+ }
19
+ .loader {
20
+ --duration: 3s;
21
+ width: 44px;
22
+ height: 44px;
23
+ position: relative;
24
+ display: inline-block;
25
+ margin: 0 16px;
26
+ }
27
+
28
+ .loader:before {
29
+ content: ' ';
30
+ width: 6px;
31
+ height: 6px;
32
+ border-radius: 50%;
33
+ position: absolute;
34
+ display: block;
35
+ background: #ff700a;
36
+ top: 37px;
37
+ left: 19px;
38
+ -webkit-transform: translate(-18px, -18px);
39
+ transform: translate(-18px, -18px);
40
+ -webkit-animation: dotRect var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
41
+ animation: dotRect var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
42
+ }
43
+
44
+ .loader svg {
45
+ display: block;
46
+ width: 100%;
47
+ height: 100%;
48
+ }
49
+
50
+ .loader svg rect,
51
+ .loader svg polygon,
52
+ .loader svg circle {
53
+ fill: none;
54
+ stroke-width: 10px;
55
+ stroke-linejoin: round;
56
+ stroke-linecap: round;
57
+ }
58
+
59
+ .loader svg polygon {
60
+ stroke-dasharray: 145 76 145 76;
61
+ stroke-dashoffset: 0;
62
+ -webkit-animation: pathTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
63
+ animation: pathTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
64
+ }
65
+
66
+ .loader svg rect {
67
+ stroke-dasharray: 192 64 192 64;
68
+ stroke-dashoffset: 0;
69
+ -webkit-animation: pathRect 3s cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
70
+ animation: pathRect 3s cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
71
+ }
72
+
73
+ .loader svg circle {
74
+ stroke-dasharray: 150 50 150 50;
75
+ stroke-dashoffset: 75;
76
+ -webkit-animation: pathCircle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
77
+ animation: pathCircle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
78
+ }
79
+
80
+ .loader.triangle {
81
+ width: 48px;
82
+ }
83
+
84
+ .loader.triangle:before {
85
+ left: 21px;
86
+ -webkit-transform: translate(-10px, -18px);
87
+ transform: translate(-10px, -18px);
88
+ -webkit-animation: dotTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
89
+ animation: dotTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
90
+ }
91
+
92
+ .loading-text {
93
+ text-align: center;
94
+ height: 40px;
95
+ line-height: 40px;
96
+ font-size: 12px;
97
+ letter-spacing: 0.1em;
98
+ color: #666;
99
+ }
100
+ }
101
+ }
102
+
103
+ @-webkit-keyframes ~":global(pathTriangle)" {
104
+ 33% {
105
+ stroke-dashoffset: 74;
106
+ }
107
+
108
+ 66% {
109
+ stroke-dashoffset: 147;
110
+ }
111
+
112
+ 100% {
113
+ stroke-dashoffset: 221;
114
+ }
115
+ }
116
+
117
+ @keyframes ~":global(pathTriangle)" {
118
+ 33% {
119
+ stroke-dashoffset: 74;
120
+ }
121
+
122
+ 66% {
123
+ stroke-dashoffset: 147;
124
+ }
125
+
126
+ 100% {
127
+ stroke-dashoffset: 221;
128
+ }
129
+ }
130
+
131
+ @-webkit-keyframes ~":global(dotTriangle)" {
132
+ 33% {
133
+ -webkit-transform: translate(0, 0);
134
+ transform: translate(0, 0);
135
+ }
136
+
137
+ 66% {
138
+ -webkit-transform: translate(10px, -18px);
139
+ transform: translate(10px, -18px);
140
+ }
141
+
142
+ 100% {
143
+ -webkit-transform: translate(-10px, -18px);
144
+ transform: translate(-10px, -18px);
145
+ }
146
+ }
147
+
148
+ @keyframes ~":global(dotTriangle)" {
149
+ 33% {
150
+ -webkit-transform: translate(0, 0);
151
+ transform: translate(0, 0);
152
+ }
153
+
154
+ 66% {
155
+ -webkit-transform: translate(10px, -18px);
156
+ transform: translate(10px, -18px);
157
+ }
158
+
159
+ 100% {
160
+ -webkit-transform: translate(-10px, -18px);
161
+ transform: translate(-10px, -18px);
162
+ }
163
+ }
164
+
165
+ @-webkit-keyframes ~":global(pathRect)" {
166
+ 25% {
167
+ stroke-dashoffset: 64;
168
+ }
169
+
170
+ 50% {
171
+ stroke-dashoffset: 128;
172
+ }
173
+
174
+ 75% {
175
+ stroke-dashoffset: 192;
176
+ }
177
+
178
+ 100% {
179
+ stroke-dashoffset: 256;
180
+ }
181
+ }
182
+
183
+ @keyframes ~":global(pathRect)" {
184
+ 25% {
185
+ stroke-dashoffset: 64;
186
+ }
187
+
188
+ 50% {
189
+ stroke-dashoffset: 128;
190
+ }
191
+
192
+ 75% {
193
+ stroke-dashoffset: 192;
194
+ }
195
+
196
+ 100% {
197
+ stroke-dashoffset: 256;
198
+ }
199
+ }
200
+
201
+ @-webkit-keyframes ~":global(dotRect)" {
202
+ 25% {
203
+ -webkit-transform: translate(0, 0);
204
+ transform: translate(0, 0);
205
+ }
206
+
207
+ 50% {
208
+ -webkit-transform: translate(18px, -18px);
209
+ transform: translate(18px, -18px);
210
+ }
211
+
212
+ 75% {
213
+ -webkit-transform: translate(0, -36px);
214
+ transform: translate(0, -36px);
215
+ }
216
+
217
+ 100% {
218
+ -webkit-transform: translate(-18px, -18px);
219
+ transform: translate(-18px, -18px);
220
+ }
221
+ }
222
+
223
+ @keyframes ~":global(dotRect)" {
224
+ 25% {
225
+ -webkit-transform: translate(0, 0);
226
+ transform: translate(0, 0);
227
+ }
228
+
229
+ 50% {
230
+ -webkit-transform: translate(18px, -18px);
231
+ transform: translate(18px, -18px);
232
+ }
233
+
234
+ 75% {
235
+ -webkit-transform: translate(0, -36px);
236
+ transform: translate(0, -36px);
237
+ }
238
+
239
+ 100% {
240
+ -webkit-transform: translate(-18px, -18px);
241
+ transform: translate(-18px, -18px);
242
+ }
243
+ }
244
+
245
+ @-webkit-keyframes ~":global(pathCircle)" {
246
+ 25% {
247
+ stroke-dashoffset: 125;
248
+ }
249
+
250
+ 50% {
251
+ stroke-dashoffset: 175;
252
+ }
253
+
254
+ 75% {
255
+ stroke-dashoffset: 225;
256
+ }
257
+
258
+ 100% {
259
+ stroke-dashoffset: 275;
260
+ }
261
+ }
262
+
263
+ @keyframes ~":global(pathCircle)" {
264
+ 25% {
265
+ stroke-dashoffset: 125;
266
+ }
267
+
268
+ 50% {
269
+ stroke-dashoffset: 175;
270
+ }
271
+
272
+ 75% {
273
+ stroke-dashoffset: 225;
274
+ }
6
275
 
7
- .loading {
8
- font-size: 36px;
9
- color: @primary-color;
10
- text-align: center;
276
+ 100% {
277
+ stroke-dashoffset: 275;
11
278
  }
12
- }
279
+ }
@@ -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; }
@@ -34,6 +26,8 @@ import { useLocale, useSiteData, useFullSidebarData, useRouteMeta } from 'dumi';
34
26
  import { useNavigate } from "react-router-dom";
35
27
  import { EditOutlined, MenuFoldOutlined, MenuUnfoldOutlined, VerticalAlignTopOutlined } from '@ant-design/icons';
36
28
  import readingTime from 'reading-time';
29
+ import { SEO } from "../SEO";
30
+ import { getBaseRoute, getIndexRoute, getOpenKeys, getNavigateUrl } from "./utils";
37
31
  import { NavigatorBanner } from "./NavigatorBanner";
38
32
  import ReadingTime from "./ReadingTime";
39
33
  import { TOC } from "../TOC";
@@ -56,14 +50,15 @@ export var ManualContent = function ManualContent(_ref) {
56
50
  docs = _useSiteData$themeCon.docs;
57
51
 
58
52
  var sidebar = useFullSidebarData();
59
- var isWide = useMedia('(min-width: 767.99px)', true);
53
+ var is767Wide = useMedia('(min-width: 767.99px)', true);
54
+ var is991Wide = useMedia('(min-width: 991.99px)', true);
60
55
 
61
56
  var _useState = useState(false),
62
57
  _useState2 = _slicedToArray(_useState, 2),
63
58
  drawOpen = _useState2[0],
64
59
  setDrawOpen = _useState2[1];
65
60
 
66
- var navigate = useNavigate(); // 获取阅读时间
61
+ var navigate = useNavigate(); // 获取阅读时间
67
62
 
68
63
  var mdInfo = useRouteMeta();
69
64
  var text = mdInfo.texts.reduce(function (prev, next) {
@@ -71,132 +66,152 @@ export var ManualContent = function ManualContent(_ref) {
71
66
  }, '');
72
67
 
73
68
  var _readingTime = readingTime(text),
74
- time = _readingTime.time; // menu渲染
75
- // linkoTitle用来映射路由和Title
69
+ time = _readingTime.time; // linkoTitle用来映射路由和Title
76
70
 
77
71
 
78
72
  var linkoTitle = {};
79
73
 
80
- function getBaseRoute() {
81
- var matchRoute = window.location.pathname;
82
- var reg = window.location.pathname.startsWith('/en') ? /(\/[A-z]*\/?\/[A-z]*)\/?/ : /(\/[A-z]*)\/?/;
83
- var mainRoute = matchRoute.match(reg);
84
- return mainRoute[1];
74
+ for (var _i2 = 0, _Object$values = Object.values(sidebar); _i2 < _Object$values.length; _i2++) {
75
+ var route = _Object$values[_i2];
76
+ route[0].children.forEach(function (item) {
77
+ linkoTitle[item.link] = item.title;
78
+ });
85
79
  }
80
+ /**
81
+ * /api/xxx --> /api
82
+ * /en/api --> /en/api
83
+ */
84
+
85
+
86
+ var baseRoute = getBaseRoute(); // 获取最终的 MenuData
87
+
88
+ var renderSidebar = getMenuData(sidebar, docs, baseRoute, []);
89
+
90
+ function getMenuData(funllSidebarData, rootList, hrefId, list) {
91
+ function fullSidebarDataToMenuData(rootList, hrefId, list) {
92
+ // 递归
93
+ rootList.forEach(function (item) {
94
+ var href = !baseRoute.startsWith('/en') ? "/".concat(item.slug) : "/en/".concat(item.slug);
95
+ var id = href.split("/").slice(0, href.split("/").length - 1).join("/");
96
+
97
+ if (href.includes(baseRoute)) {
98
+ if (id === hrefId) {
99
+ list.push(_objectSpread(_objectSpread({}, item), {}, {
100
+ key: href,
101
+ label: item.title[currentLocale]
102
+ }));
103
+ }
104
+ }
105
+ });
86
106
 
87
- var baseRoute = getBaseRoute();
88
-
89
- function fullSidebarDataToMenuData(rootList, hrefId, list) {
90
- // 递归
91
- rootList.forEach(function (item) {
92
- var href = !baseRoute.startsWith('/en') ? "/".concat(item.slug) : "/en/".concat(item.slug);
93
- var id = href.split("/").slice(0, href.split("/").length - 1).join("/");
94
-
95
- if (href.includes(baseRoute)) {
96
- if (id === hrefId) {
97
- list.push(_objectSpread(_objectSpread({}, item), {}, {
98
- key: href,
99
- label: item.title[currentLocale]
100
- }));
107
+ var _iterator = _createForOfIteratorHelper(list),
108
+ _step;
109
+
110
+ try {
111
+ var _loop = function _loop() {
112
+ var _funllSidebarData$ite;
113
+
114
+ var item = _step.value;
115
+ item.children = [];
116
+ fullSidebarDataToMenuData(rootList, item.key, item.children);
117
+ funllSidebarData[item.key] && ((_funllSidebarData$ite = funllSidebarData[item.key][0].children) === null || _funllSidebarData$ite === void 0 ? void 0 : _funllSidebarData$ite.forEach(function (itemChild) {
118
+ var label = itemChild.title;
119
+ var key = itemChild.link;
120
+ item.children.push(_objectSpread(_objectSpread({}, itemChild), {}, {
121
+ label: label,
122
+ key: key
123
+ }));
124
+ })); // children 的 order 排序
125
+
126
+ item.children.sort(function (a, b) {
127
+ return a.order - b.order;
128
+ });
129
+
130
+ if (item.children.length == 0) {
131
+ delete item.children;
132
+ }
133
+ };
134
+
135
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
136
+ _loop();
101
137
  }
138
+ } catch (err) {
139
+ _iterator.e(err);
140
+ } finally {
141
+ _iterator.f();
102
142
  }
103
- });
104
-
105
- var _iterator = _createForOfIteratorHelper(list),
106
- _step;
107
143
 
108
- try {
109
- var _loop = function _loop() {
110
- var _sidebar$item$key$0$c;
144
+ if (hrefId == baseRoute) {
145
+ var _funllSidebarData$bas;
111
146
 
112
- var item = _step.value;
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;
147
+ funllSidebarData[baseRoute] && ((_funllSidebarData$bas = funllSidebarData[baseRoute][0].children) === null || _funllSidebarData$bas === void 0 ? void 0 : _funllSidebarData$bas.forEach(function (itemChild) {
117
148
  var key = itemChild.link;
118
- item.children.push(_objectSpread(_objectSpread({}, itemChild), {}, {
149
+ var label = itemChild.title;
150
+ list.push(_objectSpread(_objectSpread({}, itemChild), {}, {
119
151
  label: label,
120
152
  key: key
121
153
  }));
122
- linkoTitle[key] = label;
154
+ }));
155
+ list.sort(function (a, b) {
156
+ return a.order - b.order;
123
157
  });
124
-
125
- if (item.children.length == 0) {
126
- delete item.children;
127
- }
128
- };
129
-
130
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
131
- _loop();
158
+ return list;
132
159
  }
133
- } catch (err) {
134
- _iterator.e(err);
135
- } finally {
136
- _iterator.f();
137
160
  }
138
161
 
139
- if (hrefId == baseRoute) {
140
- var _sidebar$baseRoute$0$;
162
+ return fullSidebarDataToMenuData(rootList, hrefId, list);
163
+ } // 获取打开的菜单栏
141
164
 
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
- }
154
- } // 获取最终的MenuData
155
-
156
-
157
- var renderSidebar = fullSidebarDataToMenuData(docs, baseRoute, []); // 获取默认打开的菜单栏
158
165
 
159
- function getDefaultOpenKeys(MenuData) {
160
- var defaultOpenKeys = [];
161
- var topRoute = MenuData[0];
162
- defaultOpenKeys.push(topRoute.key);
163
-
164
- while (topRoute.children) {
165
- topRoute = topRoute.children[0];
166
- defaultOpenKeys.push(topRoute.key);
167
- }
166
+ var _useState3 = useState(function () {
167
+ return getOpenKeys();
168
+ }),
169
+ _useState4 = _slicedToArray(_useState3, 2),
170
+ defaultOpenKeys = _useState4[0],
171
+ setDefaultOpenKeys = _useState4[1]; // 获取第一个md文件的路由
168
172
 
169
- return defaultOpenKeys;
170
- }
171
173
 
172
- var defaultOpenKeys = getDefaultOpenKeys(renderSidebar); // 点击菜单栏
174
+ var indexRoute = getIndexRoute(renderSidebar); // 点击菜单栏
173
175
 
174
176
  var onClick = function onClick(e) {
175
177
  navigate(e.key);
176
178
  useScrollToTop();
177
179
  };
178
180
 
179
- var _useState3 = useState([renderSidebar[0].key]),
180
- _useState4 = _slicedToArray(_useState3, 2),
181
- defaultSelectedKey = _useState4[0],
182
- setDefaultSelectedKey = _useState4[1]; //上一夜下一页
183
-
184
-
185
- var _useState5 = useState(undefined),
181
+ var _useState5 = useState(),
186
182
  _useState6 = _slicedToArray(_useState5, 2),
187
- prev = _useState6[0],
188
- setPrev = _useState6[1];
183
+ defaultSelectedKey = _useState6[0],
184
+ setDefaultSelectedKey = _useState6[1]; //上一夜下一页
185
+
189
186
 
190
187
  var _useState7 = useState(undefined),
191
188
  _useState8 = _slicedToArray(_useState7, 2),
192
- next = _useState8[0],
193
- setNext = _useState8[1]; // 监听路由去改变selected menu-item
189
+ prev = _useState8[0],
190
+ setPrev = _useState8[1];
191
+
192
+ var _useState9 = useState(undefined),
193
+ _useState10 = _slicedToArray(_useState9, 2),
194
+ next = _useState10[0],
195
+ setNext = _useState10[1]; // 所有的 sidebar 路由
196
+
197
+
198
+ var sidebarRoutes = [];
199
+
200
+ for (var _i3 = 0, _Object$keys = Object.keys(linkoTitle); _i3 < _Object$keys.length; _i3++) {
201
+ var route = _Object$keys[_i3];
202
+ sidebarRoutes.push(route);
203
+ }
204
+
205
+ var url = getNavigateUrl(window.location.pathname, indexRoute, sidebarRoutes);
206
+
207
+ if (url !== window.location.pathname) {
208
+ navigate(url);
209
+ } // 改变菜单栏选中和 openKeys 状态
194
210
 
195
211
 
196
212
  useEffect(function () {
197
- if (window.location.pathname == baseRoute) {
198
- navigate(renderSidebar[0].key);
199
- return;
213
+ if (window.location.pathname == indexRoute) {
214
+ setDefaultOpenKeys(getOpenKeys());
200
215
  }
201
216
 
202
217
  setDefaultSelectedKey([window.location.pathname]);
@@ -240,18 +255,24 @@ export var ManualContent = function ManualContent(_ref) {
240
255
 
241
256
  var menu = /*#__PURE__*/React.createElement(Menu, {
242
257
  onClick: onClick,
243
- defaultSelectedKeys: defaultSelectedKey,
258
+ onOpenChange: function onOpenChange(openKeys) {
259
+ setDefaultOpenKeys(openKeys);
260
+ },
244
261
  selectedKeys: defaultSelectedKey,
245
- defaultOpenKeys: _toConsumableArray(defaultOpenKeys),
262
+ openKeys: defaultOpenKeys,
246
263
  mode: "inline",
247
264
  items: renderSidebar,
248
265
  inlineIndent: 16,
249
266
  style: {
250
267
  height: '100%'
251
268
  },
252
- forceSubMenuRender: true
269
+ forceSubMenuRender: true,
270
+ triggerSubMenuAction: "click"
253
271
  });
254
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Layout, {
272
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SEO, {
273
+ title: linkoTitle[window.location.pathname],
274
+ lang: locale.id
275
+ }), /*#__PURE__*/React.createElement(Layout, {
255
276
  style: {
256
277
  background: '#fff'
257
278
  },
@@ -261,9 +282,9 @@ export var ManualContent = function ManualContent(_ref) {
261
282
  offsetTop: 0,
262
283
  className: styles.affix,
263
284
  style: {
264
- height: isWide ? '100vh' : 'inherit'
285
+ height: is767Wide ? '100vh' : 'inherit'
265
286
  }
266
- }, isWide ? /*#__PURE__*/React.createElement(Layout.Sider, {
287
+ }, is767Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
267
288
  width: "auto",
268
289
  theme: "light",
269
290
  className: styles.sider
@@ -281,8 +302,10 @@ export var ManualContent = function ManualContent(_ref) {
281
302
  }, menu)), /*#__PURE__*/React.createElement(Layout.Content, {
282
303
  className: styles.content
283
304
  }, /*#__PURE__*/React.createElement("div", {
284
- className: styles.contentMain
285
- }, /*#__PURE__*/React.createElement("h1", null, linkoTitle[window.location.pathname], /*#__PURE__*/React.createElement(Tooltip, {
305
+ className: styles.main
306
+ }, /*#__PURE__*/React.createElement("h1", {
307
+ className: styles.contentTitle
308
+ }, linkoTitle[window.location.pathname], /*#__PURE__*/React.createElement(Tooltip, {
286
309
  title: '在 GitHub 上编辑'
287
310
  }, /*#__PURE__*/React.createElement("a", {
288
311
  href: getGithubSourceUrl({
@@ -293,10 +316,12 @@ export var ManualContent = function ManualContent(_ref) {
293
316
  target: "_blank",
294
317
  rel: "noopener noreferrer",
295
318
  className: styles.editOnGtiHubButton
296
- }, /*#__PURE__*/React.createElement(EditOutlined, null)))), /*#__PURE__*/React.createElement(ReadingTime, {
319
+ }, /*#__PURE__*/React.createElement(EditOutlined, null)))), /*#__PURE__*/React.createElement("div", {
320
+ className: styles.readtimeContainer
321
+ }, /*#__PURE__*/React.createElement(ReadingTime, {
297
322
  readingTime: time,
298
323
  className: styles.readtime
299
- }), /*#__PURE__*/React.createElement("div", {
324
+ })), /*#__PURE__*/React.createElement("div", {
300
325
  className: styles.markdown
301
326
  }, children), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
302
327
  className: styles.preandnext
@@ -312,10 +337,10 @@ export var ManualContent = function ManualContent(_ref) {
312
337
  }
313
338
  }, /*#__PURE__*/React.createElement("div", {
314
339
  className: styles.backTop
315
- }, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null))))))), /*#__PURE__*/React.createElement(Layout.Sider, {
340
+ }, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null))))))), is991Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
316
341
  theme: "light",
317
342
  width: 260
318
343
  }, /*#__PURE__*/React.createElement(Affix, {
319
344
  className: styles.toc
320
- }, /*#__PURE__*/React.createElement(TOC, null)))));
345
+ }, /*#__PURE__*/React.createElement(TOC, null))) : /*#__PURE__*/React.createElement("div", null)));
321
346
  };