visualifyjs 2.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. package/.github/workflows/static.yml.bak +51 -0
  2. package/LICENSE +674 -0
  3. package/README.md +59 -0
  4. package/config-overrides.js +31 -0
  5. package/dist/visualify.js +188 -0
  6. package/docs/.nojekyll +0 -0
  7. package/docs/docs/CLI.md +34 -0
  8. package/docs/docs/README.md +65 -0
  9. package/docs/docs/Rechart/bar.md +190 -0
  10. package/docs/docs/Rechart/funnel.md +193 -0
  11. package/docs/docs/Rechart/geo.md +0 -0
  12. package/docs/docs/Rechart/line.md +355 -0
  13. package/docs/docs/Rechart/liquidfill.md +0 -0
  14. package/docs/docs/Rechart/pie.md +225 -0
  15. package/docs/docs/Rechart/polar.md +0 -0
  16. package/docs/docs/Rechart/radar.md +253 -0
  17. package/docs/docs/Rechart/sankey.md +0 -0
  18. package/docs/docs/Rechart/scatter.md +0 -0
  19. package/docs/docs/Rechart/sunburst.md +0 -0
  20. package/docs/docs/Rechart/tree.md +0 -0
  21. package/docs/docs/Rechart/wordcloud.md +0 -0
  22. package/docs/docs/_404.md +52 -0
  23. package/docs/docs/_coverpage.md +11 -0
  24. package/docs/docs/_sidebar.md +43 -0
  25. package/docs/docs/components/dotBio.md +34 -0
  26. package/docs/docs/components/echart.md +82 -0
  27. package/docs/docs/components/html.md +34 -0
  28. package/docs/docs/components/macaron.md +145 -0
  29. package/docs/docs/components/markdown.md +0 -0
  30. package/docs/docs/components/more.md +142 -0
  31. package/docs/docs/components/plotly.md +62 -0
  32. package/docs/docs/components/scatterL.md +70 -0
  33. package/docs/docs/components/visium.md +57 -0
  34. package/docs/docs/configuration.md +123 -0
  35. package/docs/docs/deploy.md +31 -0
  36. package/docs/docs/log.md +1 -0
  37. package/docs/docs/more-pages.md +23 -0
  38. package/docs/docs/quickstart.md +119 -0
  39. package/docs/docs/rechart-attributes.md +74 -0
  40. package/docs/docs/rechart-basic-usage.md +162 -0
  41. package/docs/docs/static/_images/deploy-github-pages.png +0 -0
  42. package/docs/docs/static/logo/favicon.ico +0 -0
  43. package/docs/docs/static/logo/logo_128x128.png +0 -0
  44. package/docs/docs/static/logo/logo_192x192.png +0 -0
  45. package/docs/docs/static/logo/logo_256x256.png +0 -0
  46. package/docs/docs/static/logo/logo_512x512.png +0 -0
  47. package/docs/docs/static/logo/logo_64x64.png +0 -0
  48. package/docs/docs/theme.md +5 -0
  49. package/docs/index.html +71 -0
  50. package/docs/manifest.json +24 -0
  51. package/docs/static/css/fluff-stuff.css +170 -0
  52. package/docs/static/css/font-awesome.min.css +4 -0
  53. package/docs/static/css/visualify.css +25 -0
  54. package/docs/static/fonts/fontawesome-webfont.woff2 +0 -0
  55. package/docs/static/images/star.png +0 -0
  56. package/docs/static/js/configuration.js +448 -0
  57. package/docs/static/js/fluff.js +1 -0
  58. package/docs/static/js/visualify.js +188 -0
  59. package/docs/static/logo/favicon.ico +0 -0
  60. package/docs/static/logo/logo_128x128.png +0 -0
  61. package/docs/static/logo/logo_192x192.png +0 -0
  62. package/docs/static/logo/logo_256x256.png +0 -0
  63. package/docs/static/logo/logo_512x512.png +0 -0
  64. package/docs/static/logo/logo_64x64.png +0 -0
  65. package/package.json +84 -0
  66. package/rollup.config.mjs +76 -0
  67. package/src/_css/404.css +116 -0
  68. package/src/_css/App.css +38 -0
  69. package/src/_css/autoSuggestion.css +27 -0
  70. package/src/_css/circular-progress.css +33 -0
  71. package/src/_css/index.css +37 -0
  72. package/src/_css/modern.css +25 -0
  73. package/src/_media/404.png +0 -0
  74. package/src/_media/corner.svg +8 -0
  75. package/src/_media/download.svg +3 -0
  76. package/src/_media/icon.svg +1 -0
  77. package/src/_media/logo.svg +14 -0
  78. package/src/_test/App.test.js +15 -0
  79. package/src/_utils/reportWebVitals.js +13 -0
  80. package/src/core/appContext.js +27 -0
  81. package/src/core/components/Scatter.js +188 -0
  82. package/src/core/components/ScatterBio.js +572 -0
  83. package/src/core/components/VisiumPlot.js +165 -0
  84. package/src/core/components/browser.js +42 -0
  85. package/src/core/components/dotplot.js +413 -0
  86. package/src/core/components/html.js +29 -0
  87. package/src/core/components/list.js +178 -0
  88. package/src/core/components/macaron.js +201 -0
  89. package/src/core/components/markdown.js +56 -0
  90. package/src/core/components/parser.scatterBio.js +579 -0
  91. package/src/core/components/ratio.js +80 -0
  92. package/src/core/components/scatterL.js +173 -0
  93. package/src/core/components/searchbar.js +131 -0
  94. package/src/core/components/selection.js +193 -0
  95. package/src/core/components/timeline.js +281 -0
  96. package/src/core/components/visium.js +97 -0
  97. package/src/core/fetch/condfetch.js +82 -0
  98. package/src/core/fetch/fetch.js +92 -0
  99. package/src/core/fetch/json.js +29 -0
  100. package/src/core/fetch/vfetch.js +42 -0
  101. package/src/core/liveEditor.js +44 -0
  102. package/src/core/modules/codeEditorWithPreview.js +104 -0
  103. package/src/core/modules/echarts/common.js +20 -0
  104. package/src/core/modules/echarts/presetHandler.js +41 -0
  105. package/src/core/modules/echarts/presets/esodev.chromium.js +172 -0
  106. package/src/core/modules/echarts/presets/esodev.codex.js +130 -0
  107. package/src/core/modules/echarts/presets/esodev.visium.js +123 -0
  108. package/src/core/modules/echarts/presets/mmtrbc.js +186 -0
  109. package/src/core/modules/echarts.js +71 -0
  110. package/src/core/modules/echartsUtils.js +43 -0
  111. package/src/core/modules/echartswitcher.js +152 -0
  112. package/src/core/modules/replotly/presetHandler.js +24 -0
  113. package/src/core/modules/replotly/presets/minimum.js +18 -0
  114. package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -0
  115. package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -0
  116. package/src/core/modules/replotly.js +71 -0
  117. package/src/core/pages/404.js +50 -0
  118. package/src/core/pages/error.js +27 -0
  119. package/src/core/pages/jsonPage.js +62 -0
  120. package/src/core/pages/loading.js +44 -0
  121. package/src/core/parser/echart.data.js +183 -0
  122. package/src/core/parser/echart.features.js +125 -0
  123. package/src/core/parser/echart.general.js +143 -0
  124. package/src/core/parser/echart.hilbert.js +57 -0
  125. package/src/core/parser/echart.parser.js +210 -0
  126. package/src/core/parser/echart.series.js +67 -0
  127. package/src/core/parser/echart.types.js +76 -0
  128. package/src/core/parser/plotly.config.js +10 -0
  129. package/src/core/parser/plotly.data.js +132 -0
  130. package/src/core/parser/plotly.layout.js +10 -0
  131. package/src/core/parser/plotly.violin.js +18 -0
  132. package/src/core/recharts.js +62 -0
  133. package/src/core/router/alias.js +49 -0
  134. package/src/core/router/jsonRouter.js +31 -0
  135. package/src/core/themes/modern.js +32 -0
  136. package/src/core/themes/themeSelector.js +33 -0
  137. package/src/core/visualify.js +47 -0
  138. package/src/core/widgets/circularProgress.js +24 -0
  139. package/src/core/widgets/controller.js +83 -0
  140. package/src/core/widgets/errorBoundary.js +36 -0
  141. package/src/core/widgets/footer.js +177 -0
  142. package/src/core/widgets/header.js +234 -0
  143. package/src/core/widgets/layout/Grid.js +31 -0
  144. package/src/core/widgets/layout.js +36 -0
  145. package/src/core/widgets/mapping.js +42 -0
  146. package/src/index.js +62 -0
  147. package/src/setupTests.js +5 -0
@@ -0,0 +1,448 @@
1
+ // variableName (Type) | Default: defaultValue | Brief description
2
+ /* variableName (Type)
3
+ Default: defaultValue
4
+ Brief description
5
+ */
6
+
7
+ config = {};
8
+
9
+ // ====================================== Basic ======================================
10
+
11
+ // name (String) | Website name in the sidebar, can include custom HTML for customization
12
+ config.name = 'visualify.js';
13
+
14
+ // repo (String) | Configure repository URL or username/repo for GitHub Corner widget in the top right corner
15
+ config.repo = 'https://github.com/visualify/';
16
+
17
+ /*
18
+ config.corner = {
19
+ // the icon link url to another site
20
+ url: "https://github.com/usleolihao",
21
+ // the default preset icon in docsify-corner
22
+ //icon: "static/avatar/corner-unscreen.gif",
23
+ //background: "#091a28",
24
+ //width: 50,
25
+ //height: 50,
26
+ };
27
+ */
28
+
29
+ /* auto2top (Boolean)
30
+ Default: false
31
+ Scrolls to the top when the route is changed
32
+ */
33
+ config.auto2top = true;
34
+
35
+ // basePath (String) | Base path of the website. You can set it to another directory or another domain name.
36
+ config.basePath = 'https://visualify.github.io/visualify.js/docs/';
37
+
38
+ // autoHeader (Boolean) | Default: false | prepend a header to the page before converting it to HTML.
39
+ config.autoHeader = false;
40
+
41
+ // catchPluginErrors (Boolean) | Default: true | prevent plugin errors from affecting docsify
42
+ config.catchPluginErrors = true;
43
+
44
+ /* coverpage (Boolean|String|String[]|Object)
45
+ Default: false
46
+ Activate the cover feature. If true, it will load from _coverpage.md.
47
+ */
48
+ config.coverpage = true;
49
+
50
+ // el (String) | Default: '#app' | The DOM element to be mounted on initialization.
51
+ config.el = '#docsify';
52
+
53
+ /* executeScript (Boolean)
54
+ Default: null
55
+ Execute the script on the page. Only parses the first script tag (demo).
56
+ If Vue is detected, this is true by default.
57
+ <script>
58
+ console.log(2333)
59
+ </script>
60
+ */
61
+ config.executeScript = true;
62
+
63
+ /* formatUpdated (String|Function)
64
+ Default: null
65
+ display the file update date through {docsify-updated} variable.
66
+ window.$docsify = {
67
+ formatUpdated: '{MM}/{DD} {HH}:{mm}',
68
+
69
+ formatUpdated: function (time) {
70
+ // ...
71
+
72
+ return time;
73
+ },
74
+ };
75
+ */
76
+ config.formatUpdated =
77
+ '<hr>\
78
+ <footer><strong>Last modified</strong>: {MM}/{DD}/{YYYY} {HH}:{mm} <br>\
79
+ <div style="text-align: center;margin-top: 50px;">\
80
+ <span>Fluff & Stuff</a> © 2023. Power by <a href="https://docsify.js.org/#/" target="_blank">docsify</a></span>\
81
+ </div>\
82
+ </footer>';
83
+
84
+ // homepage (String) | Default: 'README.md' | serve another file as homepage
85
+ // config.homepage = "home.md"
86
+
87
+ // loadNavbar (Boolean|String) | Default: false | Loads navbar from _navbar.md if true, else from specified path
88
+ config.loadNavbar = false;
89
+
90
+ // logo (String) | Website logo in the sidebar, can be resized using CSS
91
+ config.logo = './static/logo/logo_128x128.png';
92
+
93
+ // maxLevel (Number) | Default: 6 | Maximum Table of Contents level
94
+ config.maxLevel = 3;
95
+
96
+ // mergeNavbar (Boolean) | Default: false | Navbar merges with the sidebar on smaller screens
97
+ config.mergeNavbar = true;
98
+
99
+ // noCompileLinks (Array<string>) | Skips compiling of specified links using regex patterns
100
+ config.noCompileLinks = ['/_media/', '/_social/'];
101
+
102
+ // noEmoji (Boolean) | Default: false | Disables emoji parsing and renders all emoji shorthand as text
103
+ config.noEmoji = false;
104
+
105
+ // notFoundPage (Boolean | String | Object) | Default: false | Configures 404 page display or custom 404 page path
106
+ config.notFoundPage = true;
107
+
108
+ // onlyCover (Boolean) | Default: false | Only cover page is loaded when visiting the home page
109
+ config.onlyCover = false;
110
+
111
+ // relativePath (Boolean) | Default: false | If true, links are relative to the current context
112
+ config.relativePath = true;
113
+
114
+ // routerMode (String) | Default: 'hash' | Set router mode for navigation, can be 'hash' or 'history'
115
+ config.routerMode = 'hash';
116
+
117
+ // loadSidebar (Boolean|String) | Default: false | Loads sidebar from _sidebar.md if true, else from specified path
118
+ config.loadSidebar = true;
119
+
120
+ // subMaxLevel (Number) | Default: 0 | Add table of contents
121
+ // 自定义侧边栏后默认不会再生成目录,你也可以通过设置生成目录的最大层级开启这个功能。
122
+ config.subMaxLevel = 2;
123
+ // set sidebar display level
124
+ config.sidebarDisplayLevel = 3;
125
+
126
+ // ====================================== Theme ======================================
127
+
128
+ // themeColor (String) | Customize theme color using CSS3 variables feature and polyfill in older browsers
129
+ config.themeColor = '#3F51B5';
130
+
131
+ // topMargin (Number) | Default: 0 | Add space on top when scrolling content page to align anchors with sticky-header
132
+ config.topMargin = 90;
133
+
134
+ // ====================================== Router ======================================
135
+
136
+ config.alias = {
137
+ '/.*/_navbar.md': '/_navbar.md',
138
+ '/.*/_sidebar.md': '/_sidebar.md',
139
+ // "/_contents/fluffy/_sidebar.md"
140
+ // "/_projs/_IoT/_sidebar.md"
141
+ };
142
+
143
+ // routes (Object) | Define virtual routes for dynamic content, map path to string or function returning markdown
144
+ config.routes = {
145
+ // ... existing routes ...
146
+ // Basic match w/ return string
147
+ '/foo': '# Custom Markdown',
148
+ // RegEx match w/ synchronous function
149
+ '/bar/(.*)': function (route, matched) {
150
+ return '# Custom Markdown bar ' + matched[1];
151
+ },
152
+ // RegEx match w/ asynchronous function
153
+ '/baz/(.*)': function (route, matched, next) {
154
+ // Requires `fetch` polyfill for legacy browsers (https://github.github.io/fetch/)
155
+ fetch('/api/users?id=12345')
156
+ .then(function (response) {
157
+ next(
158
+ '# Custom Markdown baz\n' +
159
+ matched[1] +
160
+ ' ' +
161
+ response.json(),
162
+ );
163
+ })
164
+ .catch(function (err) {
165
+ // Handle error...
166
+ });
167
+ },
168
+ // accepts everything other than dogs (synchronous)
169
+ '/pets/(.+)': function (route, matched) {
170
+ if (matched[0] === 'dogs') {
171
+ return null;
172
+ } else {
173
+ return 'I like all pets but dogs';
174
+ }
175
+ },
176
+
177
+ // accepts everything other than cats (asynchronous)
178
+ '/pets/(.*)': function (route, matched, next) {
179
+ if (matched[0] === 'cats') {
180
+ next();
181
+ } else {
182
+ // Async task(s)...
183
+ next('I like all pets but cats');
184
+ }
185
+ },
186
+
187
+ // explicit false value to load real markdown file
188
+ '/petss/cats': function (route, matched) {
189
+ return false;
190
+ },
191
+
192
+ // generate dynamic content for other pets
193
+ '/petss/(.+)': function (route, matched) {
194
+ const pet = matched[0];
195
+ return `your pet is ${pet} (but not a cat)`;
196
+ },
197
+ };
198
+
199
+ // ====================================== Markdown ======================================
200
+
201
+ // markdown (Function) | Allows Markdown configuration and customization
202
+ config.debug = false;
203
+
204
+ config.markdown = {
205
+ renderer: {
206
+ code: function (code, lang) {
207
+ if (typeof lang === 'string' && lang.startsWith('output')) {
208
+ const conf = lang.split(',');
209
+ let oconf = {};
210
+ // iterate over the rest of the elements
211
+ for (let i = 0; i < conf.length; i++) {
212
+ //skip if not a key-value pair
213
+ if (conf[i].indexOf('=') === -1) continue;
214
+ // split the element into key and value
215
+ const [key, value] = conf[i].split('=');
216
+ // set the key-value pair in the config object
217
+ oconf[key] = value;
218
+ }
219
+ if (config.debug) {
220
+ console.log(oconf);
221
+ }
222
+
223
+ // add line numbers if linenums attribute is true
224
+ if (oconf.linenums === 'true') {
225
+ let lines = code.split(/(?:<br>)|(?:\n)/);
226
+ for (let i = 0; i < lines.length; i++) {
227
+ lines[i] = i + 1 + ': ' + lines[i];
228
+ }
229
+ code = lines.join('<br>');
230
+ }
231
+
232
+ return (
233
+ '<div class="terminal">' +
234
+ '<div class="terminal-fakeMenu">' +
235
+ '<div class="terminal-fakeButtons terminal-fakeClose"></div>' +
236
+ '<div class="terminal-fakeButtons terminal-fakeMinimize"></div>' +
237
+ '<div class="terminal-fakeButtons terminal-fakeZoom"></div>' +
238
+ '<span> ' +
239
+ (oconf.title ?? 'Output') +
240
+ ' </span>' +
241
+ '</div>' +
242
+ '<div class="terminal-fakeScreen">' +
243
+ '<output data-lang="output">' +
244
+ code +
245
+ '</output>' +
246
+ '</div>' +
247
+ '</div>'
248
+ );
249
+ } else if (lang === 'mermaid') {
250
+ //console.log("mermaid", this, arguments[0], arguments[1]);
251
+ return (
252
+ '<div class="fsmermaid">' +
253
+ this.origin.code.apply(this, arguments) +
254
+ '</div>'
255
+ );
256
+ }
257
+ return this.origin.code.apply(this, arguments);
258
+ },
259
+ },
260
+ };
261
+
262
+ // ====================================== Cross Origin Links ======================================
263
+
264
+ // crossOriginLinks (Array) | Default: true | prevent plugin errors from affecting docsify
265
+ config.crossOriginLinks = [
266
+ // 'https://example.com/cross-origin-link'
267
+ ];
268
+
269
+ /* requestHeaders (Object)
270
+ Set request resource headers for custom configurations, e.g., caching
271
+ requestHeaders: {
272
+ 'x-token': 'xxx', //设置请求头
273
+ 'cache-control': 'max-age=600', //设置缓存
274
+ },
275
+ */
276
+ config.requestHeaders = {};
277
+
278
+ // ====================================== Vue ======================================
279
+
280
+ /* vueComponents (Object)
281
+ Creates and registers global Vue components with unique data per instance
282
+ Components are specified using the component name as the key with an object containing Vue options as the value.
283
+ Component data is unique for each instance and will not persist as users navigate the site.
284
+ */
285
+ config.vueComponents = {
286
+ 'button-counter': {
287
+ template: `
288
+ <button @click="count += 1">
289
+ You clicked me {{ count }} times
290
+ </button>
291
+ `,
292
+ data() {
293
+ return { count: 0 };
294
+ },
295
+ }, // <button-counter></button-counter>
296
+ };
297
+
298
+ // vueGlobalOptions (Object) | Specifies Vue options for global content, changes persist across global references
299
+ config.vueGlobalOptions = {
300
+ data() {
301
+ return {
302
+ version: '1.0.0',
303
+ };
304
+ },
305
+ };
306
+
307
+ // vueMounts (Object) | Specifies DOM elements to mount as Vue instances with unique data per instance
308
+ config.vueMounts = {
309
+ '#counter': {
310
+ data() {
311
+ return { count: 0 };
312
+ },
313
+ },
314
+ };
315
+ // ====================================== Plugins ======================================
316
+
317
+ // ~~~~~~~~~~~~~~~~~~~~~ sidebarbar ~~~~~~~~~~~~~~~~~~~~~~
318
+ config.sidebarbar = {
319
+ showVersion: true,
320
+ };
321
+
322
+ // ~~~~~~~~~~~~~~~~~~~~~ Search ~~~~~~~~~~~~~~~~~~~~~~
323
+ /* search (String|String[]|Object)
324
+ Default: false
325
+ Usage:
326
+
327
+ config. = 'auto'; //default
328
+
329
+ config.search = [
330
+ '/', // => /README.md
331
+ '/guide', // => /guide.md
332
+ '/get-started', // => /get-started.md
333
+ '/zh-cn/', // => /zh-cn/README.md
334
+ ]
335
+ */
336
+ // complete configuration parameters
337
+ config.search = {
338
+ maxAge: 86400000, // Expiration time, the default one day
339
+ paths: 'auto', // or 'auto'
340
+ placeholder: 'Type to search',
341
+ // Localization
342
+ noData: 'No Results!',
343
+ // Headline depth, 1 - 6
344
+ depth: 5,
345
+
346
+ hideOtherSidebarContent: false, // whether or not to hide other sidebar content
347
+
348
+ // To avoid search index collision
349
+ // between multiple websites under the same domain
350
+ namespace: 'fluff',
351
+
352
+ // Use different indexes for path prefixes (namespaces).
353
+ // NOTE: Only works in 'auto' mode.
354
+ //
355
+ // When initialiazing an index, we look for the first path from the sidebar.
356
+ // If it matches the prefix from the list, we switch to the corresponding index.
357
+ pathNamespaces: ['/zh-cn', '/ru-ru', '/ru-ru/v1'],
358
+
359
+ // You can provide a regexp to match prefixes. In this case,
360
+ // the matching substring will be used to identify the index
361
+ pathNamespaces: /^(\/(zh-cn|ru-ru))?(\/(v1|v2))?/,
362
+
363
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Custom search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
364
+
365
+ // exclude (Stirng("\.html$")|String[]) | Default: '' | Exclude files from search index (.html means exclude all html files)
366
+ exclude: ['.html', '.png', '.zip'],
367
+ // debug (Boolean) | Default: false | Enable debug mode
368
+ debug: false,
369
+ };
370
+
371
+ /* docsify-copy-code
372
+ A docsify plugin that adds a button to easily copy code blocks to your clipboard.
373
+ <script src="https://unpkg.com/docsify-copy-code@2"></script>
374
+ copyCode: {
375
+ buttonText : 'Copy to clipboard',
376
+ errorText : 'Error',
377
+ successText: 'Copied'
378
+ }
379
+
380
+ copyCode: {
381
+ buttonText: {
382
+ '/zh-cn/': '点击复制',
383
+ '/' : 'Copy to clipboard'
384
+ },
385
+ errorText: {
386
+ '/zh-cn/': '错误',
387
+ '/' : 'Error'
388
+ },
389
+ successText: {
390
+ '/zh-cn/': '复制',
391
+ '/' : 'Copied'
392
+ }
393
+ }
394
+ */
395
+ config.copyCode = {
396
+ buttonText: 'Copy to clipboard',
397
+ errorText: 'Error',
398
+ successText: 'Copied',
399
+ };
400
+
401
+ // https://jhildenbiddle.github.io/docsify-tabs/
402
+ config.tabs = {
403
+ persist: true, // default
404
+ sync: true, // default
405
+ theme: 'Material', // Classic/material/No Theme
406
+ tabComments: true, // default
407
+ tabHeadings: true, // default
408
+ };
409
+
410
+ config.latex = {
411
+ inlineMath: [
412
+ ['$', '$'],
413
+ ['\\(', '\\)'],
414
+ ], // default
415
+ displayMath: [['$$', '$$']], // default
416
+ };
417
+
418
+ config['flexible-alerts'] = {
419
+ style: 'callout',
420
+ note: {
421
+ label: {
422
+ '/zh-cn/': '提示',
423
+ '/': 'Note',
424
+ },
425
+ },
426
+ tip: {
427
+ label: {
428
+ '/zh-cn/': '小窍门',
429
+ '/': 'Tip',
430
+ },
431
+ },
432
+ warning: {
433
+ label: {
434
+ '/zh-cn/': '注意',
435
+ '/': 'Warning',
436
+ },
437
+ },
438
+ attention: {
439
+ label: {
440
+ '/zh-cn/': '警告',
441
+ '/': 'Attention',
442
+ },
443
+ },
444
+ };
445
+
446
+ config.mermaidConfig = {
447
+ querySelector: '.mermaid',
448
+ };