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

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 (258) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -33
  3. package/dist/builtins/Playground/index.d.ts +24 -0
  4. package/{es/builtins/Example.js → dist/builtins/Playground/index.js} +40 -33
  5. package/dist/builtins/Playground/index.module.less +15 -0
  6. package/dist/context.d.ts +5 -0
  7. package/dist/context.js +2 -0
  8. package/dist/layouts/DocLayout.d.ts +7 -0
  9. package/dist/layouts/DocLayout.js +38 -0
  10. package/dist/layouts/entry/API.d.ts +10 -0
  11. package/dist/layouts/entry/API.js +12 -0
  12. package/dist/layouts/entry/Index.d.ts +7 -0
  13. package/dist/layouts/entry/Index.js +71 -0
  14. package/dist/layouts/entry/Manual.d.ts +8 -0
  15. package/dist/layouts/entry/Manual.js +14 -0
  16. package/dist/locales/en.json +98 -0
  17. package/dist/locales/zh.json +98 -0
  18. package/dist/pages/404.d.ts +6 -0
  19. package/dist/pages/404.js +14 -0
  20. package/dist/pages/Example/index.d.ts +6 -0
  21. package/dist/pages/Example/index.js +139 -0
  22. package/dist/pages/Example/index.module.less +40 -0
  23. package/dist/pages/Examples/components/Accouncement/index.d.ts +6 -0
  24. package/dist/pages/Examples/components/Accouncement/index.js +60 -0
  25. package/dist/pages/Examples/components/Accouncement/index.module.less +9 -0
  26. package/dist/pages/Examples/components/Article/index.d.ts +2 -0
  27. package/dist/pages/Examples/components/Article/index.js +8 -0
  28. package/dist/pages/Examples/components/Article/index.module.less +2 -0
  29. package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.d.ts +10 -0
  30. package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.js +74 -0
  31. package/dist/pages/Examples/components/ExampleTopicMenu/index.d.ts +9 -0
  32. package/{es/builtins/Table.js → dist/pages/Examples/components/ExampleTopicMenu/index.js} +47 -41
  33. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.d.ts +10 -0
  34. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.js +33 -0
  35. package/dist/pages/Examples/components/GalleryPageContent/index.d.ts +10 -0
  36. package/dist/pages/Examples/components/GalleryPageContent/index.js +81 -0
  37. package/dist/pages/Examples/index.d.ts +8 -0
  38. package/dist/pages/Examples/index.js +75 -0
  39. package/dist/pages/Examples/index.module.less +605 -0
  40. package/dist/pages/Examples/types.d.ts +33 -0
  41. package/dist/pages/Examples/types.js +1 -0
  42. package/dist/plugin/examples.d.ts +7 -0
  43. package/dist/plugin/examples.js +83 -0
  44. package/dist/plugin/index.d.ts +3 -0
  45. package/dist/plugin/index.js +103 -0
  46. package/dist/slots/404.d.ts +2 -0
  47. package/{es/antv/404/index.js → dist/slots/404.js} +4 -9
  48. package/{es/antv/Cases/Cases.d.ts → dist/slots/Cases/index.d.ts} +4 -4
  49. package/{es/antv/Cases/Cases.js → dist/slots/Cases/index.js} +25 -25
  50. package/{src/antv/Cases/Cases.module.less → dist/slots/Cases/index.module.less} +36 -5
  51. package/dist/slots/CodeEditor/Toolbar.d.ts +67 -0
  52. package/dist/slots/CodeEditor/Toolbar.js +152 -0
  53. package/dist/slots/CodeEditor/Toolbar.module.less +81 -0
  54. package/dist/slots/CodeEditor/index.d.ts +58 -0
  55. package/dist/slots/CodeEditor/index.js +200 -0
  56. package/dist/slots/CodeEditor/index.module.less +11 -0
  57. package/dist/slots/CodeEditor/utils.d.ts +42 -0
  58. package/dist/slots/CodeEditor/utils.js +157 -0
  59. package/dist/slots/CodePreview/CodeHeader.d.ts +19 -0
  60. package/dist/slots/CodePreview/CodeHeader.js +32 -0
  61. package/dist/slots/CodePreview/CodeHeader.module.less +0 -0
  62. package/dist/slots/CodePreview/index.d.ts +17 -0
  63. package/dist/slots/CodePreview/index.js +29 -0
  64. package/dist/slots/CodePreview/index.module.less +42 -0
  65. package/dist/slots/CodeRunner/index.d.ts +14 -0
  66. package/dist/slots/CodeRunner/index.js +76 -0
  67. package/dist/slots/CodeRunner/index.module.less +0 -0
  68. package/dist/slots/CodeRunner/utils.d.ts +10 -0
  69. package/dist/slots/CodeRunner/utils.js +36 -0
  70. package/dist/slots/Companies/index.d.ts +13 -0
  71. package/dist/slots/Companies/index.js +49 -0
  72. package/dist/slots/Companies/index.module.less +82 -0
  73. package/dist/slots/Detail/News.d.ts +9 -0
  74. package/{es/antv/Banner/Notification.js → dist/slots/Detail/News.js} +8 -11
  75. package/{src/antv/Banner/Notification.module.less → dist/slots/Detail/News.module.less} +15 -3
  76. package/dist/slots/Detail/index.d.ts +26 -0
  77. package/dist/slots/Detail/index.js +124 -0
  78. package/{src/antv/Banner/Banner.module.less → dist/slots/Detail/index.module.less} +42 -74
  79. package/dist/slots/ExampleSider/index.d.ts +55 -0
  80. package/dist/slots/ExampleSider/index.js +218 -0
  81. package/dist/slots/ExampleSider/index.module.less +141 -0
  82. package/{es/antv → dist/slots}/Features/FeatureCard.d.ts +1 -1
  83. package/{es/antv → dist/slots}/Features/FeatureCard.js +6 -6
  84. package/{src/antv → dist/slots}/Features/FeatureCard.module.less +8 -1
  85. package/{es/antv → dist/slots}/Features/index.d.ts +2 -2
  86. package/{es/antv → dist/slots}/Features/index.js +17 -25
  87. package/{src/antv/Features/Features.module.less → dist/slots/Features/index.module.less} +34 -3
  88. package/dist/slots/Footer/index.d.ts +18 -0
  89. package/dist/slots/Footer/index.js +187 -0
  90. package/dist/slots/Footer/index.module.less +85 -0
  91. package/dist/slots/Header/Logo.d.ts +7 -0
  92. package/{es/antv → dist/slots}/Header/Logo.js +6 -2
  93. package/dist/slots/Header/LogoWhite.d.ts +7 -0
  94. package/dist/slots/Header/LogoWhite.js +19 -0
  95. package/dist/slots/Header/Navs.d.ts +17 -0
  96. package/dist/slots/Header/Navs.js +46 -0
  97. package/dist/slots/Header/Products/NavigatorBanner.d.ts +10 -0
  98. package/dist/slots/Header/Products/NavigatorBanner.js +34 -0
  99. package/dist/slots/Header/Products/NavigatorBanner.module.less +39 -0
  100. package/{es/antv → dist/slots/Header}/Products/Product.d.ts +3 -3
  101. package/{es/antv → dist/slots/Header}/Products/Product.js +11 -16
  102. package/{src/antv → dist/slots/Header}/Products/Product.module.less +10 -8
  103. package/{es/antv → dist/slots/Header}/Products/getProducts.d.ts +2 -7
  104. package/dist/slots/Header/Products/getProducts.js +67 -0
  105. package/dist/slots/Header/Products/index.d.ts +9 -0
  106. package/{es/antv → dist/slots/Header}/Products/index.js +15 -22
  107. package/dist/slots/Header/Search.d.ts +12 -0
  108. package/dist/slots/Header/Search.js +90 -0
  109. package/dist/slots/Header/Search.module.less +39 -0
  110. package/dist/slots/Header/index.d.ts +66 -0
  111. package/dist/slots/Header/index.js +379 -0
  112. package/dist/slots/Header/index.module.less +382 -0
  113. package/dist/slots/Header/utils.d.ts +1 -0
  114. package/dist/slots/Header/utils.js +26 -0
  115. package/dist/slots/Loading/index.d.ts +2 -0
  116. package/dist/slots/Loading/index.js +65 -0
  117. package/dist/slots/Loading/index.module.less +12 -0
  118. package/dist/slots/Loading.d.ts +5 -0
  119. package/dist/slots/Loading.js +8 -0
  120. package/dist/slots/ManualContent/NavigatorBanner.d.ts +9 -0
  121. package/dist/slots/ManualContent/NavigatorBanner.js +36 -0
  122. package/dist/slots/ManualContent/NavigatorBanner.module.less +39 -0
  123. package/dist/slots/ManualContent/ReadingTime.d.ts +3 -0
  124. package/dist/slots/ManualContent/ReadingTime.js +10 -0
  125. package/dist/slots/ManualContent/index.d.ts +9 -0
  126. package/dist/slots/ManualContent/index.js +321 -0
  127. package/dist/slots/ManualContent/index.module.less +656 -0
  128. package/dist/slots/TOC.d.ts +5 -0
  129. package/dist/slots/TOC.js +6 -0
  130. package/dist/slots/_.less +83 -0
  131. package/dist/slots/global.d.ts +1 -0
  132. package/dist/slots/global.js +7 -0
  133. package/dist/slots/hooks.d.ts +16 -0
  134. package/{es/antv → dist/slots}/hooks.js +60 -37
  135. package/dist/slots/utils.d.ts +20 -0
  136. package/dist/slots/utils.js +154 -0
  137. package/dist/types.d.ts +3 -0
  138. package/dist/types.js +1 -0
  139. package/dist/typings.d.ts +137 -0
  140. package/package.json +108 -47
  141. package/es/antv/404/index.d.ts +0 -2
  142. package/es/antv/Banner/Banner.module.less +0 -412
  143. package/es/antv/Banner/Notification.d.ts +0 -10
  144. package/es/antv/Banner/Notification.module.less +0 -108
  145. package/es/antv/Banner/index.d.ts +0 -25
  146. package/es/antv/Banner/index.js +0 -104
  147. package/es/antv/Cases/Cases.module.less +0 -203
  148. package/es/antv/Features/FeatureCard.module.less +0 -51
  149. package/es/antv/Features/Features.module.less +0 -169
  150. package/es/antv/Footer/Footer.module.less +0 -36
  151. package/es/antv/Footer/index.d.ts +0 -12
  152. package/es/antv/Footer/index.js +0 -237
  153. package/es/antv/Header/Logo.d.ts +0 -4
  154. package/es/antv/Products/Product.module.less +0 -146
  155. package/es/antv/Products/getNewProducts.d.ts +0 -24
  156. package/es/antv/Products/getNewProducts.js +0 -35
  157. package/es/antv/Products/getProducts.js +0 -460
  158. package/es/antv/Products/index.d.ts +0 -9
  159. package/es/antv/hooks.d.ts +0 -14
  160. package/es/antv/mixins.less +0 -21
  161. package/es/antv/utils.d.ts +0 -5
  162. package/es/antv/utils.js +0 -49
  163. package/es/builtins/API.d.ts +0 -3
  164. package/es/builtins/API.js +0 -37
  165. package/es/builtins/Alert.d.ts +0 -3
  166. package/es/builtins/Alert.js +0 -7
  167. package/es/builtins/Alert.less +0 -62
  168. package/es/builtins/Badge.d.ts +0 -3
  169. package/es/builtins/Badge.js +0 -7
  170. package/es/builtins/Badge.less +0 -31
  171. package/es/builtins/Example.d.ts +0 -5
  172. package/es/builtins/Example.less +0 -47
  173. package/es/builtins/Previewer.d.ts +0 -39
  174. package/es/builtins/Previewer.js +0 -225
  175. package/es/builtins/Previewer.less +0 -406
  176. package/es/builtins/SourceCode.d.ts +0 -10
  177. package/es/builtins/SourceCode.js +0 -70
  178. package/es/builtins/SourceCode.less +0 -103
  179. package/es/builtins/Table.d.ts +0 -4
  180. package/es/builtins/Table.less +0 -43
  181. package/es/builtins/Tree.d.ts +0 -4
  182. package/es/builtins/Tree.js +0 -213
  183. package/es/builtins/Tree.less +0 -159
  184. package/es/components/Dark.d.ts +0 -9
  185. package/es/components/Dark.js +0 -125
  186. package/es/components/Dark.less +0 -121
  187. package/es/components/LocaleSelect.d.ts +0 -6
  188. package/es/components/LocaleSelect.js +0 -53
  189. package/es/components/LocaleSelect.less +0 -59
  190. package/es/components/Navbar.d.ts +0 -10
  191. package/es/components/Navbar.js +0 -155
  192. package/es/components/Navbar.less +0 -180
  193. package/es/components/SearchBar.d.ts +0 -4
  194. package/es/components/SearchBar.js +0 -81
  195. package/es/components/SearchBar.less +0 -165
  196. package/es/components/SideMenu.d.ts +0 -10
  197. package/es/components/SideMenu.js +0 -99
  198. package/es/components/SideMenu.less +0 -379
  199. package/es/components/SlugList.d.ts +0 -7
  200. package/es/components/SlugList.js +0 -38
  201. package/es/components/SlugList.less +0 -18
  202. package/es/declaration.d.ts +0 -1
  203. package/es/layout.d.ts +0 -5
  204. package/es/layout.js +0 -276
  205. package/es/style/layout.less +0 -402
  206. package/es/style/markdown.less +0 -240
  207. package/es/style/variables.less +0 -37
  208. package/src/antv/404/index.tsx +0 -25
  209. package/src/antv/Banner/Notification.tsx +0 -45
  210. package/src/antv/Banner/index.tsx +0 -139
  211. package/src/antv/Cases/Cases.tsx +0 -116
  212. package/src/antv/Features/FeatureCard.tsx +0 -24
  213. package/src/antv/Features/index.tsx +0 -86
  214. package/src/antv/Footer/Footer.module.less +0 -36
  215. package/src/antv/Footer/index.tsx +0 -272
  216. package/src/antv/Header/Logo.tsx +0 -85
  217. package/src/antv/Products/Product.tsx +0 -80
  218. package/src/antv/Products/getNewProducts.tsx +0 -53
  219. package/src/antv/Products/getProducts.tsx +0 -626
  220. package/src/antv/Products/index.tsx +0 -70
  221. package/src/antv/hooks.ts +0 -87
  222. package/src/antv/mixins.less +0 -21
  223. package/src/antv/utils.ts +0 -44
  224. package/src/builtins/API.tsx +0 -57
  225. package/src/builtins/Alert.less +0 -62
  226. package/src/builtins/Alert.tsx +0 -4
  227. package/src/builtins/Badge.less +0 -31
  228. package/src/builtins/Badge.tsx +0 -4
  229. package/src/builtins/Example.less +0 -47
  230. package/src/builtins/Example.tsx +0 -34
  231. package/src/builtins/Previewer.less +0 -406
  232. package/src/builtins/Previewer.tsx +0 -264
  233. package/src/builtins/SourceCode.less +0 -103
  234. package/src/builtins/SourceCode.tsx +0 -55
  235. package/src/builtins/Table.less +0 -43
  236. package/src/builtins/Table.tsx +0 -42
  237. package/src/builtins/Tree.less +0 -159
  238. package/src/builtins/Tree.tsx +0 -130
  239. package/src/components/Dark.less +0 -121
  240. package/src/components/Dark.tsx +0 -78
  241. package/src/components/LocaleSelect.less +0 -59
  242. package/src/components/LocaleSelect.tsx +0 -53
  243. package/src/components/Navbar.less +0 -180
  244. package/src/components/Navbar.tsx +0 -152
  245. package/src/components/SearchBar.less +0 -165
  246. package/src/components/SearchBar.tsx +0 -68
  247. package/src/components/SideMenu.less +0 -379
  248. package/src/components/SideMenu.tsx +0 -148
  249. package/src/components/SlugList.less +0 -18
  250. package/src/components/SlugList.tsx +0 -20
  251. package/src/declaration.d.ts +0 -1
  252. package/src/layout.tsx +0 -225
  253. package/src/style/layout.less +0 -402
  254. package/src/style/markdown.less +0 -240
  255. package/src/style/variables.less +0 -37
  256. package/src/test/SearchBar.test.ts +0 -32
  257. package/src/test/Table.test.tsx +0 -41
  258. package/src/test/index.test.tsx +0 -377
package/src/layout.tsx DELETED
@@ -1,225 +0,0 @@
1
- /* eslint-disable jsx-a11y/no-static-element-interactions */
2
- /* eslint-disable react/no-danger */
3
- import type { IRouteComponentProps } from '@umijs/types';
4
- import { context, Link } from 'dumi/theme';
5
- import i18n from 'i18next';
6
- import React, { useContext, useState } from 'react';
7
- import { initReactI18next } from 'react-i18next';
8
- import NotFoundPage from './antv/404';
9
- import Banner from './antv/Banner/index';
10
- import Cases from './antv/Cases/Cases';
11
- import Ideas from './antv/Features';
12
- import Footer from './antv/Footer';
13
- import Navbar from './components/Navbar';
14
- import SearchBar from './components/SearchBar';
15
- import SideMenu from './components/SideMenu';
16
- import SlugList from './components/SlugList';
17
- import './style/layout.less';
18
-
19
- i18n
20
- .use(initReactI18next) // passes i18n down to react-i18next
21
- .init({
22
- initImmediate: false,
23
- fallbackLng: 'zh',
24
- keySeparator: false,
25
- react: {
26
- useSuspense: false,
27
- },
28
- });
29
-
30
-
31
- const isEmpty = obj => {
32
- return Object.keys(obj).length === 0;
33
- };
34
-
35
- const processRedirect = (context, location) => {
36
- const { pathname } = location;
37
- const { meta, routes } = context;
38
-
39
- const isEmptyMeta = isEmpty(meta);
40
- let matchRoute = { meta: {} };
41
- const needRedirectPath = ['/zh', '/zh/', '/zh-CN', '/zh-CN/', '/en', '/en/', '/en-US', '/en-US/'];
42
- const isInclude = needRedirectPath.some(item => item === pathname);
43
- if (isEmptyMeta) {
44
- if (isInclude) {
45
- // 存在重定向需求
46
- const isZh = pathname.slice(1, 3) === 'zh';
47
- const isEn = pathname.slice(1, 3) === 'en';
48
- if (isZh) {
49
- matchRoute = routes.find(item => {
50
- return item.path === '/';
51
- });
52
- }
53
- if (isEn) {
54
- matchRoute = routes.find(item => {
55
- return item.path === '/en-US';
56
- });
57
- }
58
- }
59
- }
60
-
61
- return {
62
- meta: isEmptyMeta ? matchRoute.meta : meta,
63
- isDirect: isInclude,
64
- };
65
- };
66
-
67
- const Hero = hero => (
68
- <div className="__dumi-default-layout-hero">
69
- {hero.image && <img src={hero.image} alt="banner" />}
70
- <h1>{hero.title}</h1>
71
- <div dangerouslySetInnerHTML={{ __html: hero.desc }} />
72
- {hero.actions &&
73
- hero.actions.map(action => (
74
- <Link to={action.link} key={action.text}>
75
- <button type="button">{action.text}</button>
76
- </Link>
77
- ))}
78
- </div>
79
- );
80
-
81
- const BannerPanel = banner => {
82
- const { image, title, desc, actions, notifications } = banner;
83
- const description = <div dangerouslySetInnerHTML={{ __html: desc }} />;
84
- const coverImage = <img alt="graphin" style={{ width: '100%', marginTop: '20%' }} src={image} />;
85
-
86
- return (
87
- <Banner
88
- coverImage={coverImage}
89
- title={title}
90
- // @ts-ignore
91
- description={description}
92
- notifications={notifications}
93
- buttons={actions}
94
- className="banner"
95
- />
96
- );
97
- };
98
-
99
- const Features = features => (
100
- <div className="__dumi-default-layout-features">
101
- {features.map(feat => (
102
- <dl key={feat.title} style={{ backgroundImage: feat.icon ? `url(${feat.icon})` : undefined }}>
103
- {feat.link ? (
104
- <Link to={feat.link}>
105
- <dt>{feat.title}</dt>
106
- </Link>
107
- ) : (
108
- <dt>{feat.title}</dt>
109
- )}
110
- <dd dangerouslySetInnerHTML={{ __html: feat.desc }} />
111
- </dl>
112
- ))}
113
- </div>
114
- );
115
-
116
- const Layout: React.FC<IRouteComponentProps> = ({ children, location }) => {
117
- const Context = useContext(context);
118
- const {
119
- config: { mode, repository },
120
- locale,
121
- } = Context;
122
-
123
- const { meta, isDirect } = processRedirect(Context, location);
124
- const { url: repoUrl, branch, platform } = repository;
125
- const [menuCollapsed, setMenuCollapsed] = useState<boolean>(true);
126
- const isSiteMode = mode === 'site';
127
- const showHero = isSiteMode && meta.hero;
128
- const showBanner = isSiteMode && meta.banner;
129
- const showCases = isSiteMode && meta.cases;
130
- const showFeatures = isSiteMode && meta.features;
131
- const showIdeas = isSiteMode && meta.ideas;
132
- const showSideMenu = meta.sidemenu !== false && !showHero && !showBanner && !showFeatures && !meta.gapless;
133
- const showSlugs =
134
- !showHero &&
135
- !showBanner &&
136
- !showFeatures &&
137
- Boolean(meta.slugs?.length) &&
138
- (meta.toc === 'content' || meta.toc === undefined) &&
139
- !meta.gapless;
140
- const isCN = /^zh|cn$/i.test(locale);
141
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
142
- const updatedTime: any = new Date(meta.updatedTime).toLocaleString([], { hour12: false });
143
- const repoPlatform =
144
- { github: 'GitHub', gitlab: 'GitLab' }[(repoUrl || '').match(/(github|gitlab)/)?.[1] || 'nothing'] || platform;
145
- // 等dumi最新版发布后解决路由匹配问题
146
- if (isEmpty(meta) && !isDirect) {
147
- return (
148
- <div>
149
- <div
150
- style={{ marginBottom: '60px' }}
151
- className="__dumi-default-layout home"
152
- data-route={location.pathname}
153
- data-show-sidemenu={false}
154
- data-show-slugs={false}
155
- data-site-mode="site"
156
- data-gapless={String(!!meta.gapless)}
157
- onClick={() => {
158
- if (menuCollapsed) return;
159
- setMenuCollapsed(true);
160
- }}
161
- >
162
- <div style={{ height: '60px' }} />
163
- <Navbar
164
- location={location}
165
- navPrefix={<SearchBar />}
166
- onMobileMenuClick={ev => {
167
- setMenuCollapsed(val => !val);
168
- ev.stopPropagation();
169
- }}
170
- />
171
- <NotFoundPage />
172
-
173
- <Footer location={window.location} githubUrl={repoUrl} rootDomain="https://antv.vision" />
174
- </div>
175
- </div>
176
- );
177
- }
178
-
179
- return (
180
- <div
181
- className={`__dumi-default-layout ${showBanner ? 'home' : ''}`}
182
- data-route={location.pathname}
183
- data-show-sidemenu={String(showSideMenu)}
184
- data-show-slugs={String(showSlugs)}
185
- data-site-mode={isSiteMode}
186
- data-gapless={String(!!meta.gapless)}
187
- onClick={() => {
188
- if (menuCollapsed) return;
189
- setMenuCollapsed(true);
190
- }}
191
- >
192
- <Navbar
193
- location={location}
194
- navPrefix={<SearchBar />}
195
- onMobileMenuClick={ev => {
196
- setMenuCollapsed(val => !val);
197
- ev.stopPropagation();
198
- }}
199
- />
200
- {showSideMenu && <SideMenu mobileMenuCollapsed={menuCollapsed} location={location} />}
201
- {showSlugs && <SlugList slugs={meta.slugs} className="__dumi-default-layout-toc" />}
202
- {showBanner && BannerPanel(meta.banner)}
203
- {showHero && Hero(meta.hero)}
204
- {showFeatures && Features(meta.features)}
205
- {showIdeas && <Ideas features={meta.ideas} style={{ width: '100%' }} />}
206
- {showCases && <Cases cases={meta.cases} className="graph-cases" />}
207
- <div className="__dumi-default-layout-content">
208
- {children}
209
- {showSideMenu && (
210
- <div className="__dumi-default-layout-footer-meta">
211
- {repoPlatform && (
212
- <Link to={`${repoUrl}/edit/${branch}/${meta.filePath}`}>
213
- {isCN ? `在 ${repoPlatform} 上编辑此页` : `Edit this doc on ${repoPlatform}`}
214
- </Link>
215
- )}
216
- <span data-updated-text={isCN ? '最后更新时间:' : 'Last update: '}>{updatedTime}</span>
217
- </div>
218
- )}
219
- {!showSideMenu && <Footer location={window.location} githubUrl={repoUrl} rootDomain="https://antv.vision" />}
220
- </div>
221
- </div>
222
- );
223
- };
224
-
225
- export default Layout;
@@ -1,402 +0,0 @@
1
- @import "./markdown.less";
2
- @import "./variables.less";
3
-
4
- @s-toc-width: 136px;
5
-
6
- body {
7
- margin: 0;
8
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC,
9
- Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial,
10
- sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
11
- font-variant: tabular-nums;
12
- font-feature-settings: "tnum";
13
- transition: background 0.2s cubic-bezier(0.075, 0.82, 0.165, 1),
14
- color 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
15
-
16
- [data-prefers-color="dark"] & {
17
- color: @c-text-dark;
18
- background-color: @c-bg-dark;
19
- }
20
- }
21
-
22
- .@{prefix}-layout {
23
- box-sizing: border-box;
24
- min-height: 100vh;
25
- padding: 16px (@s-content-margin + @s-toc-width) 50px @s-menu-width +
26
- @s-content-margin;
27
- &.home {
28
- padding: 0px !important;
29
- }
30
- @media @mobile {
31
- padding-top: 66px !important;
32
- padding-left: 16px !important;
33
- padding-right: 16px !important;
34
- }
35
-
36
- &[data-gapless="true"] {
37
- padding-top: @s-nav-height !important;
38
- padding-right: 0 !important;
39
- padding-left: 0 !important;
40
- padding-bottom: 0;
41
-
42
- @media @mobile {
43
- padding-top: @s-mobile-nav-height !important;
44
- }
45
- }
46
-
47
- &[data-show-sidemenu="false"] {
48
- padding-left: @s-content-margin;
49
- }
50
-
51
- &[data-show-slugs="false"] {
52
- padding-right: @s-content-margin;
53
- }
54
-
55
- &[data-site-mode="true"] {
56
- padding-top: @s-nav-height + 50px;
57
-
58
- &[data-show-sidemenu="true"] {
59
- padding-left: @s-site-menu-width + 50px;
60
- }
61
-
62
- &[data-show-slugs="true"] {
63
- padding-right: @s-content-margin + @s-toc-width + 14;
64
- }
65
-
66
- .@{prefix}-layout-content > .markdown:first-child > *:first-child {
67
- margin-top: 0;
68
- }
69
-
70
- .@{prefix}-layout-toc {
71
- top: 114px;
72
- max-height: calc(90vh - 144px);
73
- }
74
- }
75
-
76
- &-hero {
77
- margin: -50px -58px 0;
78
- padding: 100px 0;
79
- text-align: center;
80
- background-color: #f5f6f8;
81
-
82
- [data-prefers-color="dark"] & {
83
- background-color: @c-light-bg-dark;
84
- }
85
-
86
- @media @mobile {
87
- margin: -16px -16px 0;
88
- padding: 48px 0;
89
- }
90
-
91
- img {
92
- max-width: 100%;
93
- max-height: 200px;
94
- margin-bottom: 1rem;
95
- }
96
-
97
- h1 {
98
- margin: 0 0 16px;
99
- font-size: 48px;
100
- font-weight: 600;
101
- line-height: 56px;
102
- color: #080e29;
103
-
104
- [data-prefers-color="dark"] & {
105
- color: @c-heading-dark;
106
- }
107
-
108
- + div {
109
- margin: 16px 0 32px;
110
- opacity: 0.78;
111
-
112
- .markdown {
113
- font-size: 16px;
114
- }
115
- }
116
- }
117
-
118
- button {
119
- margin-right: 16px;
120
- padding: 0 32px;
121
- height: 44px;
122
- color: @c-primary;
123
- font-size: 16px;
124
- background: transparent;
125
- border: 1px solid @c-primary;
126
- border-radius: 22px;
127
- box-sizing: border-box;
128
- cursor: pointer;
129
- outline: none;
130
- transition: all 0.3s;
131
-
132
- &:hover {
133
- opacity: 0.8;
134
- }
135
-
136
- &:active {
137
- opacity: 0.9;
138
- }
139
- }
140
-
141
- a:last-child button {
142
- margin-right: 0;
143
- color: #fff;
144
- background: @c-primary;
145
- }
146
- }
147
-
148
- &-features {
149
- display: grid;
150
- grid-template-columns: repeat(3, 1fr);
151
- grid-column-gap: 96px;
152
- grid-row-gap: 56px;
153
- padding: 72px 0;
154
-
155
- > dl {
156
- flex: 1;
157
- margin: 0;
158
- text-align: center;
159
- background: no-repeat center top / auto 48px;
160
-
161
- &[style*="background-image"] {
162
- padding-top: 64px;
163
- }
164
-
165
- dt {
166
- margin-bottom: 12px;
167
- font-size: 20px;
168
- line-height: 1;
169
- color: @c-heading;
170
- [data-prefers-color="dark"] & {
171
- color: @c-text-dark;
172
- }
173
- }
174
-
175
- a {
176
- transition-duration: none;
177
- }
178
-
179
- a dt {
180
- color: @c-link;
181
- transition: opacity 0.2s;
182
- &:hover {
183
- opacity: 0.7;
184
- text-decoration: underline;
185
- }
186
-
187
- &:active {
188
- opacity: 0.9;
189
- }
190
- }
191
-
192
- dd {
193
- margin: 0;
194
-
195
- .markdown {
196
- color: @c-secondary;
197
- font-size: 14px;
198
- line-height: 22px;
199
-
200
- [data-prefers-color="dark"] & {
201
- color: @c-secondary-dark;
202
- }
203
-
204
- > p:first-child {
205
- margin-top: 0;
206
- }
207
-
208
- > p:last-child {
209
- margin-bottom: 0;
210
- }
211
- }
212
- }
213
- }
214
-
215
- @media @mobile {
216
- display: block;
217
- padding: 40px 0;
218
-
219
- > dl {
220
- text-align: left;
221
- background-position: left top;
222
-
223
- &[style*="background-image"] {
224
- padding: 0 0 0 60px;
225
- }
226
-
227
- + dl {
228
- margin-top: 32px;
229
- }
230
- }
231
- }
232
- }
233
-
234
- &-features,
235
- &-features + &-content,
236
- &-hero + &-content {
237
- margin-left: auto;
238
- margin-right: auto;
239
- max-width: 960px;
240
- }
241
-
242
- &-hero + &-content {
243
- margin-top: 60px;
244
- }
245
-
246
- &-toc {
247
- list-style: none;
248
- position: fixed;
249
- z-index: 10;
250
- top: 50px;
251
- right: 0;
252
- width: @s-toc-width;
253
- max-height: calc(90vh - 80px);
254
- margin: 0;
255
- padding: 0 24px 0 0;
256
- background-color: #fff;
257
- box-sizing: content-box;
258
- overflow: auto;
259
-
260
- [data-prefers-color="dark"] & {
261
- background-color: @c-bg-dark;
262
- }
263
-
264
- @media @mobile {
265
- display: none;
266
- }
267
-
268
- li {
269
- position: relative;
270
- margin: 0;
271
- padding: 4px 0 4px 6px;
272
- text-indent: 12px;
273
- font-size: 13px;
274
- line-height: 1.40625;
275
- white-space: nowrap;
276
- text-overflow: ellipsis;
277
- overflow: hidden;
278
-
279
- a {
280
- color: @c-text;
281
- text-decoration: none;
282
-
283
- [data-prefers-color="dark"] & {
284
- color: @c-text-dark;
285
- }
286
-
287
- &::before {
288
- content: "";
289
- position: absolute;
290
- top: 0;
291
- left: 0;
292
- bottom: 0;
293
- display: inline-block;
294
- width: 2px;
295
- background: @c-border;
296
- }
297
-
298
- &:hover {
299
- color: lighten(@c-primary, 5%);
300
-
301
- [data-prefers-color="dark"] & {
302
- color: lighten(@c-primary-dark, 5%);
303
- }
304
- }
305
-
306
- &:active {
307
- color: lighten(@c-primary, 3%);
308
-
309
- [data-prefers-color="dark"] & {
310
- color: lighten(@c-primary-dark, 3%);
311
- }
312
- }
313
-
314
- &.active {
315
- color: @c-primary;
316
-
317
- [data-prefers-color="dark"] & {
318
- color: @c-primary-dark;
319
- }
320
-
321
- &::before {
322
- background: @c-primary;
323
-
324
- [data-prefers-color="dark"] & {
325
- background: @c-primary-dark;
326
- }
327
- }
328
- }
329
- }
330
- }
331
- }
332
-
333
- &-footer-meta {
334
- margin-top: 40px;
335
- padding-top: 24px;
336
- display: flex;
337
- color: @c-secondary;
338
- font-size: 14px;
339
- justify-content: space-between;
340
- border-top: 1px solid @c-border;
341
-
342
- [data-prefers-color="dark"] & {
343
- color: @c-secondary-dark;
344
- border-color: @c-border-dark;
345
- }
346
-
347
- @media only screen and (max-width: 960px) {
348
- display: block;
349
- }
350
-
351
- > a {
352
- margin-bottom: 4px;
353
- display: block;
354
- color: @c-primary;
355
- transition: opacity 0.2s;
356
- text-decoration: none;
357
-
358
- [data-prefers-color="dark"] & {
359
- color: @c-primary-dark;
360
- }
361
-
362
- &:hover {
363
- opacity: 0.7;
364
- text-decoration: underline;
365
- }
366
-
367
- &:active {
368
- opacity: 0.9;
369
- }
370
- }
371
-
372
- > span:last-child {
373
- &::before {
374
- content: attr(data-updated-text);
375
- color: @c-primary;
376
-
377
- [data-prefers-color="dark"] & {
378
- color: @c-primary-dark;
379
- }
380
- }
381
- }
382
- }
383
- }
384
-
385
- .__dumi-default-layout-footer {
386
- margin: 72px 0 -32px;
387
- padding-top: 24px;
388
- border-top: 1px solid @c-border;
389
- text-align: center;
390
-
391
- [data-prefers-color="dark"] & {
392
- border-color: @c-border-dark;
393
- }
394
-
395
- .markdown {
396
- color: #b0b1ba;
397
-
398
- [data-prefers-color="dark"] & {
399
- color: rgba(255, 255, 255, 0.45);
400
- }
401
- }
402
- }