create-docusaurus 2.0.0-beta.19 → 2.0.0-beta.22
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/bin/index.js +10 -20
- package/lib/index.d.ts +10 -8
- package/lib/index.js +237 -156
- package/package.json +7 -6
- package/templates/classic/package.json +9 -6
- package/templates/classic/src/pages/index.js +3 -2
- package/templates/classic-typescript/package.json +10 -7
- package/templates/classic-typescript/src/pages/index.tsx +3 -2
- package/templates/facebook/.eslintrc.js +2 -2
- package/templates/facebook/.stylelintrc.js +1 -1
- package/templates/facebook/babel.config.js +1 -1
- package/templates/facebook/docusaurus.config.js +13 -11
- package/templates/facebook/package.json +14 -11
- package/templates/facebook/sidebars.js +1 -1
- package/templates/facebook/src/css/custom.css +1 -1
- package/templates/facebook/src/pages/index.js +1 -1
- package/templates/facebook/src/pages/styles.module.css +1 -1
- package/templates/facebook/static/img/meta_opensource_logo.svg +1 -0
- package/templates/facebook/static/img/meta_opensource_logo_negative.svg +1 -0
- package/templates/shared/docs/intro.md +1 -1
- package/templates/shared/docs/tutorial-basics/create-a-blog-post.md +1 -1
- package/templates/shared/docs/tutorial-basics/create-a-document.md +2 -2
- package/templates/shared/docs/tutorial-basics/create-a-page.md +5 -5
- package/templates/shared/docs/tutorial-basics/deploy-your-site.md +1 -1
- package/templates/shared/docs/tutorial-extras/translate-your-site.md +1 -1
- package/templates/facebook/static/img/oss_logo.png +0 -0
package/bin/index.js
CHANGED
|
@@ -8,13 +8,15 @@
|
|
|
8
8
|
|
|
9
9
|
// @ts-check
|
|
10
10
|
|
|
11
|
+
import path from 'path';
|
|
12
|
+
import {createRequire} from 'module';
|
|
11
13
|
import logger from '@docusaurus/logger';
|
|
12
14
|
import semver from 'semver';
|
|
13
|
-
import path from 'path';
|
|
14
15
|
import {program} from 'commander';
|
|
15
|
-
import {createRequire} from 'module';
|
|
16
16
|
|
|
17
|
-
const packageJson =
|
|
17
|
+
const packageJson = /** @type {import("../package.json")} */ (
|
|
18
|
+
createRequire(import.meta.url)('../package.json')
|
|
19
|
+
);
|
|
18
20
|
const requiredVersion = packageJson.engines.node;
|
|
19
21
|
|
|
20
22
|
if (!semver.satisfies(process.version, requiredVersion)) {
|
|
@@ -45,23 +47,11 @@ program
|
|
|
45
47
|
\`custom\`: enter your custom git clone command. We will prompt you for it.`,
|
|
46
48
|
)
|
|
47
49
|
.description('Initialize website.')
|
|
48
|
-
.action(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
template,
|
|
52
|
-
|
|
53
|
-
{packageManager, skipInstall, typescript, gitStrategy} = {},
|
|
54
|
-
) => {
|
|
55
|
-
// See https://github.com/facebook/docusaurus/pull/6860
|
|
56
|
-
import('../lib/index.js').then(({default: init}) => {
|
|
57
|
-
init(path.resolve(rootDir), siteName, template, {
|
|
58
|
-
packageManager,
|
|
59
|
-
skipInstall,
|
|
60
|
-
typescript,
|
|
61
|
-
gitStrategy,
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
},
|
|
50
|
+
.action((siteName, template, rootDir, options) =>
|
|
51
|
+
// See https://github.com/facebook/docusaurus/pull/6860
|
|
52
|
+
import('../lib/index.js').then(({default: init}) =>
|
|
53
|
+
init(path.resolve(rootDir ?? '.'), siteName, template, options),
|
|
54
|
+
),
|
|
65
55
|
);
|
|
66
56
|
|
|
67
57
|
program.parse(process.argv);
|
package/lib/index.d.ts
CHANGED
|
@@ -4,17 +4,19 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
declare
|
|
7
|
+
declare type CLIOptions = {
|
|
8
|
+
packageManager?: PackageManager;
|
|
9
|
+
skipInstall?: boolean;
|
|
10
|
+
typescript?: boolean;
|
|
11
|
+
gitStrategy?: GitStrategy;
|
|
12
|
+
};
|
|
13
|
+
declare const lockfileNames: {
|
|
8
14
|
npm: string;
|
|
9
15
|
yarn: string;
|
|
10
16
|
pnpm: string;
|
|
11
17
|
};
|
|
12
|
-
declare type
|
|
18
|
+
declare type PackageManager = keyof typeof lockfileNames;
|
|
13
19
|
declare const gitStrategies: readonly ["deep", "shallow", "copy", "custom"];
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
skipInstall: boolean;
|
|
17
|
-
typescript: boolean;
|
|
18
|
-
gitStrategy: typeof gitStrategies[number];
|
|
19
|
-
}>): Promise<void>;
|
|
20
|
+
declare type GitStrategy = typeof gitStrategies[number];
|
|
21
|
+
export default function init(rootDir: string, reqName?: string, reqTemplate?: string, cliOptions?: CLIOptions): Promise<void>;
|
|
20
22
|
export {};
|
package/lib/index.js
CHANGED
|
@@ -4,28 +4,27 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import logger from '@docusaurus/logger';
|
|
8
7
|
import fs from 'fs-extra';
|
|
9
|
-
import
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
10
9
|
import path from 'path';
|
|
11
|
-
import shell from 'shelljs';
|
|
12
10
|
import _ from 'lodash';
|
|
11
|
+
import logger from '@docusaurus/logger';
|
|
12
|
+
import shell from 'shelljs';
|
|
13
|
+
import prompts from 'prompts';
|
|
13
14
|
import supportsColor from 'supports-color';
|
|
14
|
-
import {
|
|
15
|
-
const RecommendedTemplate = 'classic';
|
|
16
|
-
const TypeScriptTemplateSuffix = '-typescript';
|
|
15
|
+
import { escapeShellArg } from '@docusaurus/utils';
|
|
17
16
|
// Only used in the rare, rare case of running globally installed create +
|
|
18
17
|
// using --skip-install. We need a default name to show the tip text
|
|
19
|
-
const
|
|
20
|
-
const
|
|
18
|
+
const defaultPackageManager = 'npm';
|
|
19
|
+
const lockfileNames = {
|
|
21
20
|
npm: 'package-lock.json',
|
|
22
21
|
yarn: 'yarn.lock',
|
|
23
22
|
pnpm: 'pnpm-lock.yaml',
|
|
24
23
|
};
|
|
25
|
-
const
|
|
26
|
-
async function findPackageManagerFromLockFile() {
|
|
27
|
-
for (const packageManager of
|
|
28
|
-
const lockFilePath = path.
|
|
24
|
+
const packageManagers = Object.keys(lockfileNames);
|
|
25
|
+
async function findPackageManagerFromLockFile(rootDir) {
|
|
26
|
+
for (const packageManager of packageManagers) {
|
|
27
|
+
const lockFilePath = path.join(rootDir, lockfileNames[packageManager]);
|
|
29
28
|
if (await fs.pathExists(lockFilePath)) {
|
|
30
29
|
return packageManager;
|
|
31
30
|
}
|
|
@@ -33,7 +32,7 @@ async function findPackageManagerFromLockFile() {
|
|
|
33
32
|
return undefined;
|
|
34
33
|
}
|
|
35
34
|
function findPackageManagerFromUserAgent() {
|
|
36
|
-
return
|
|
35
|
+
return packageManagers.find((packageManager) => process.env.npm_config_user_agent?.startsWith(packageManager));
|
|
37
36
|
}
|
|
38
37
|
async function askForPackageManagerChoice() {
|
|
39
38
|
const hasYarn = shell.exec('yarn --version', { silent: true }).code === 0;
|
|
@@ -44,76 +43,90 @@ async function askForPackageManagerChoice() {
|
|
|
44
43
|
const choices = ['npm', hasYarn && 'yarn', hasPnpm && 'pnpm']
|
|
45
44
|
.filter((p) => Boolean(p))
|
|
46
45
|
.map((p) => ({ title: p, value: p }));
|
|
47
|
-
return (await prompts({
|
|
46
|
+
return ((await prompts({
|
|
48
47
|
type: 'select',
|
|
49
48
|
name: 'packageManager',
|
|
50
49
|
message: 'Select a package manager...',
|
|
51
50
|
choices,
|
|
52
|
-
}
|
|
51
|
+
}, {
|
|
52
|
+
onCancel() {
|
|
53
|
+
logger.info `Falling back to name=${defaultPackageManager}`;
|
|
54
|
+
},
|
|
55
|
+
})).packageManager ?? defaultPackageManager);
|
|
53
56
|
}
|
|
54
|
-
async function getPackageManager(
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
throw new Error(`Invalid package manager choice ${packageManagerChoice}. Must be one of ${PackageManagersList.join(', ')}`);
|
|
57
|
+
async function getPackageManager(dest, { packageManager, skipInstall }) {
|
|
58
|
+
if (packageManager && !packageManagers.includes(packageManager)) {
|
|
59
|
+
throw new Error(`Invalid package manager choice ${packageManager}. Must be one of ${packageManagers.join(', ')}`);
|
|
58
60
|
}
|
|
59
|
-
return (
|
|
60
|
-
|
|
61
|
+
return (
|
|
62
|
+
// If dest already contains a lockfile (e.g. if using a local template), we
|
|
63
|
+
// always use that instead
|
|
64
|
+
(await findPackageManagerFromLockFile(dest)) ??
|
|
65
|
+
packageManager ??
|
|
66
|
+
(await findPackageManagerFromLockFile('.')) ??
|
|
61
67
|
findPackageManagerFromUserAgent() ??
|
|
62
68
|
// This only happens if the user has a global installation in PATH
|
|
63
|
-
(skipInstall ?
|
|
64
|
-
}
|
|
65
|
-
function isValidGitRepoUrl(gitRepoUrl) {
|
|
66
|
-
return ['https://', 'git@'].some((item) => gitRepoUrl.startsWith(item));
|
|
69
|
+
(skipInstall ? defaultPackageManager : askForPackageManagerChoice()));
|
|
67
70
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
const recommendedTemplate = 'classic';
|
|
72
|
+
const typeScriptTemplateSuffix = '-typescript';
|
|
73
|
+
const templatesDir = fileURLToPath(new URL('../templates', import.meta.url));
|
|
74
|
+
async function readTemplates() {
|
|
75
|
+
const dirContents = await fs.readdir(templatesDir);
|
|
76
|
+
const templates = await Promise.all(dirContents
|
|
77
|
+
.filter((d) => !d.startsWith('.') &&
|
|
75
78
|
!d.startsWith('README') &&
|
|
76
|
-
!d.endsWith(
|
|
77
|
-
d !== 'shared')
|
|
79
|
+
!d.endsWith(typeScriptTemplateSuffix) &&
|
|
80
|
+
d !== 'shared')
|
|
81
|
+
.map(async (name) => {
|
|
82
|
+
const tsVariantPath = path.join(templatesDir, `${name}${typeScriptTemplateSuffix}`);
|
|
83
|
+
return {
|
|
84
|
+
name,
|
|
85
|
+
path: path.join(templatesDir, name),
|
|
86
|
+
tsVariantPath: (await fs.pathExists(tsVariantPath))
|
|
87
|
+
? tsVariantPath
|
|
88
|
+
: undefined,
|
|
89
|
+
};
|
|
90
|
+
}));
|
|
78
91
|
// Classic should be first in list!
|
|
79
|
-
return _.sortBy(templates, (t) => t !==
|
|
92
|
+
return _.sortBy(templates, (t) => t.name !== recommendedTemplate);
|
|
80
93
|
}
|
|
81
|
-
function
|
|
82
|
-
function makeNameAndValueChoice(value) {
|
|
83
|
-
const title = value === RecommendedTemplate ? `${value} (recommended)` : value;
|
|
84
|
-
return { title, value };
|
|
85
|
-
}
|
|
86
|
-
return [
|
|
87
|
-
...templates.map((template) => makeNameAndValueChoice(template)),
|
|
88
|
-
makeNameAndValueChoice('Git repository'),
|
|
89
|
-
makeNameAndValueChoice('Local template'),
|
|
90
|
-
];
|
|
91
|
-
}
|
|
92
|
-
function getTypeScriptBaseTemplate(template) {
|
|
93
|
-
if (template.endsWith(TypeScriptTemplateSuffix)) {
|
|
94
|
-
return template.replace(TypeScriptTemplateSuffix, '');
|
|
95
|
-
}
|
|
96
|
-
return undefined;
|
|
97
|
-
}
|
|
98
|
-
async function copyTemplate(templatesDir, template, dest) {
|
|
94
|
+
async function copyTemplate(template, dest, typescript) {
|
|
99
95
|
await fs.copy(path.join(templatesDir, 'shared'), dest);
|
|
100
96
|
// TypeScript variants will copy duplicate resources like CSS & config from
|
|
101
97
|
// base template
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const tsBaseTemplatePath = path.resolve(templatesDir, tsBaseTemplate);
|
|
105
|
-
await fs.copy(tsBaseTemplatePath, dest, {
|
|
98
|
+
if (typescript) {
|
|
99
|
+
await fs.copy(template.path, dest, {
|
|
106
100
|
filter: async (filePath) => (await fs.stat(filePath)).isDirectory() ||
|
|
107
101
|
path.extname(filePath) === '.css' ||
|
|
108
102
|
path.basename(filePath) === 'docusaurus.config.js',
|
|
109
103
|
});
|
|
110
104
|
}
|
|
111
|
-
await fs.copy(
|
|
105
|
+
await fs.copy(typescript ? template.tsVariantPath : template.path, dest, {
|
|
112
106
|
// Symlinks don't exist in published npm packages anymore, so this is only
|
|
113
107
|
// to prevent errors during local testing
|
|
114
108
|
filter: async (filePath) => !(await fs.lstat(filePath)).isSymbolicLink(),
|
|
115
109
|
});
|
|
116
110
|
}
|
|
111
|
+
function createTemplateChoices(templates) {
|
|
112
|
+
function makeNameAndValueChoice(value) {
|
|
113
|
+
if (typeof value === 'string') {
|
|
114
|
+
return { title: value, value };
|
|
115
|
+
}
|
|
116
|
+
const title = value.name === recommendedTemplate
|
|
117
|
+
? `${value.name} (recommended)`
|
|
118
|
+
: value.name;
|
|
119
|
+
return { title, value };
|
|
120
|
+
}
|
|
121
|
+
return [
|
|
122
|
+
...templates.map((template) => makeNameAndValueChoice(template)),
|
|
123
|
+
makeNameAndValueChoice('Git repository'),
|
|
124
|
+
makeNameAndValueChoice('Local template'),
|
|
125
|
+
];
|
|
126
|
+
}
|
|
127
|
+
function isValidGitRepoUrl(gitRepoUrl) {
|
|
128
|
+
return ['https://', 'git@'].some((item) => gitRepoUrl.startsWith(item));
|
|
129
|
+
}
|
|
117
130
|
const gitStrategies = ['deep', 'shallow', 'copy', 'custom'];
|
|
118
131
|
async function getGitCommand(gitStrategy) {
|
|
119
132
|
switch (gitStrategy) {
|
|
@@ -121,67 +134,104 @@ async function getGitCommand(gitStrategy) {
|
|
|
121
134
|
case 'copy':
|
|
122
135
|
return 'git clone --recursive --depth 1';
|
|
123
136
|
case 'custom': {
|
|
124
|
-
const { command } = await prompts({
|
|
137
|
+
const { command } = (await prompts({
|
|
125
138
|
type: 'text',
|
|
126
139
|
name: 'command',
|
|
127
140
|
message: 'Write your own git clone command. The repository URL and destination directory will be supplied. E.g. "git clone --depth 10"',
|
|
128
|
-
}
|
|
129
|
-
|
|
141
|
+
}, {
|
|
142
|
+
onCancel() {
|
|
143
|
+
logger.info `Falling back to code=${'git clone'}`;
|
|
144
|
+
},
|
|
145
|
+
}));
|
|
146
|
+
return command ?? 'git clone';
|
|
130
147
|
}
|
|
131
148
|
case 'deep':
|
|
132
149
|
default:
|
|
133
150
|
return 'git clone';
|
|
134
151
|
}
|
|
135
152
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
message: 'What should we name this site?',
|
|
147
|
-
initial: 'website',
|
|
148
|
-
});
|
|
149
|
-
name = prompt.name;
|
|
153
|
+
async function getSiteName(reqName, rootDir) {
|
|
154
|
+
async function validateSiteName(siteName) {
|
|
155
|
+
if (!siteName) {
|
|
156
|
+
return 'A website name is required.';
|
|
157
|
+
}
|
|
158
|
+
const dest = path.resolve(rootDir, siteName);
|
|
159
|
+
if (await fs.pathExists(dest)) {
|
|
160
|
+
return logger.interpolate `Directory already exists at path=${dest}!`;
|
|
161
|
+
}
|
|
162
|
+
return true;
|
|
150
163
|
}
|
|
151
|
-
if (
|
|
152
|
-
|
|
153
|
-
|
|
164
|
+
if (reqName) {
|
|
165
|
+
const res = validateSiteName(reqName);
|
|
166
|
+
if (typeof res === 'string') {
|
|
167
|
+
throw new Error(res);
|
|
168
|
+
}
|
|
169
|
+
return reqName;
|
|
154
170
|
}
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
171
|
+
const { siteName } = (await prompts({
|
|
172
|
+
type: 'text',
|
|
173
|
+
name: 'siteName',
|
|
174
|
+
message: 'What should we name this site?',
|
|
175
|
+
initial: 'website',
|
|
176
|
+
validate: validateSiteName,
|
|
177
|
+
}, {
|
|
178
|
+
onCancel() {
|
|
179
|
+
logger.error('A website name is required.');
|
|
180
|
+
process.exit(1);
|
|
181
|
+
},
|
|
182
|
+
}));
|
|
183
|
+
return siteName;
|
|
184
|
+
}
|
|
185
|
+
async function getSource(reqTemplate, templates, cliOptions) {
|
|
186
|
+
if (reqTemplate) {
|
|
187
|
+
if (isValidGitRepoUrl(reqTemplate)) {
|
|
188
|
+
if (cliOptions.gitStrategy &&
|
|
189
|
+
!gitStrategies.includes(cliOptions.gitStrategy)) {
|
|
190
|
+
logger.error `Invalid git strategy: name=${cliOptions.gitStrategy}. Value must be one of ${gitStrategies.join(', ')}.`;
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
type: 'git',
|
|
195
|
+
url: reqTemplate,
|
|
196
|
+
strategy: cliOptions.gitStrategy ?? 'deep',
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
else if (await fs.pathExists(path.resolve(reqTemplate))) {
|
|
200
|
+
return {
|
|
201
|
+
type: 'local',
|
|
202
|
+
path: path.resolve(reqTemplate),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const template = templates.find((t) => t.name === reqTemplate);
|
|
206
|
+
if (!template) {
|
|
207
|
+
logger.error('Invalid template.');
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
if (cliOptions.typescript && !template.tsVariantPath) {
|
|
211
|
+
logger.error `Template name=${reqTemplate} doesn't provide the TypeScript variant.`;
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
type: 'template',
|
|
216
|
+
template,
|
|
217
|
+
typescript: cliOptions.typescript ?? false,
|
|
218
|
+
};
|
|
159
219
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (!template) {
|
|
164
|
-
const templatePrompt = await prompts({
|
|
220
|
+
const template = cliOptions.gitStrategy
|
|
221
|
+
? 'Git repository'
|
|
222
|
+
: (await prompts({
|
|
165
223
|
type: 'select',
|
|
166
224
|
name: 'template',
|
|
167
225
|
message: 'Select a template below...',
|
|
168
226
|
choices: createTemplateChoices(templates),
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
message: 'This template is available in TypeScript. Do you want to use the TS variant?',
|
|
176
|
-
initial: false,
|
|
177
|
-
});
|
|
178
|
-
useTS = tsPrompt.useTS;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
let gitStrategy = cliOptions.gitStrategy ?? 'deep';
|
|
182
|
-
// If user choose Git repository, we'll prompt for the url.
|
|
227
|
+
}, {
|
|
228
|
+
onCancel() {
|
|
229
|
+
logger.error('A choice is required.');
|
|
230
|
+
process.exit(1);
|
|
231
|
+
},
|
|
232
|
+
})).template;
|
|
183
233
|
if (template === 'Git repository') {
|
|
184
|
-
const
|
|
234
|
+
const { gitRepoUrl } = (await prompts({
|
|
185
235
|
type: 'text',
|
|
186
236
|
name: 'gitRepoUrl',
|
|
187
237
|
validate: (url) => {
|
|
@@ -192,25 +242,44 @@ export default async function init(rootDir, siteName, reqTemplate, cliOptions =
|
|
|
192
242
|
},
|
|
193
243
|
message: logger.interpolate `Enter a repository URL from GitHub, Bitbucket, GitLab, or any other public repo.
|
|
194
244
|
(e.g: url=${'https://github.com/ownerName/repoName.git'})`,
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
choices: [
|
|
201
|
-
{ title: 'Deep clone: preserve full history', value: 'deep' },
|
|
202
|
-
{ title: 'Shallow clone: clone with --depth=1', value: 'shallow' },
|
|
203
|
-
{
|
|
204
|
-
title: 'Copy: do a shallow clone, but do not create a git repo',
|
|
205
|
-
value: 'copy',
|
|
206
|
-
},
|
|
207
|
-
{ title: 'Custom: enter your custom git clone command', value: 'custom' },
|
|
208
|
-
],
|
|
245
|
+
}, {
|
|
246
|
+
onCancel() {
|
|
247
|
+
logger.error('A git repo URL is required.');
|
|
248
|
+
process.exit(1);
|
|
249
|
+
},
|
|
209
250
|
}));
|
|
210
|
-
|
|
251
|
+
let strategy = cliOptions.gitStrategy;
|
|
252
|
+
if (!strategy) {
|
|
253
|
+
({ strategy } = (await prompts({
|
|
254
|
+
type: 'select',
|
|
255
|
+
name: 'strategy',
|
|
256
|
+
message: 'How should we clone this repo?',
|
|
257
|
+
choices: [
|
|
258
|
+
{ title: 'Deep clone: preserve full history', value: 'deep' },
|
|
259
|
+
{ title: 'Shallow clone: clone with --depth=1', value: 'shallow' },
|
|
260
|
+
{
|
|
261
|
+
title: 'Copy: do a shallow clone, but do not create a git repo',
|
|
262
|
+
value: 'copy',
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
title: 'Custom: enter your custom git clone command',
|
|
266
|
+
value: 'custom',
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
}, {
|
|
270
|
+
onCancel() {
|
|
271
|
+
logger.info `Falling back to name=${'deep'}`;
|
|
272
|
+
},
|
|
273
|
+
})));
|
|
274
|
+
}
|
|
275
|
+
return {
|
|
276
|
+
type: 'git',
|
|
277
|
+
url: gitRepoUrl,
|
|
278
|
+
strategy: strategy ?? 'deep',
|
|
279
|
+
};
|
|
211
280
|
}
|
|
212
281
|
else if (template === 'Local template') {
|
|
213
|
-
const
|
|
282
|
+
const { templateDir } = (await prompts({
|
|
214
283
|
type: 'text',
|
|
215
284
|
name: 'templateDir',
|
|
216
285
|
validate: async (dir) => {
|
|
@@ -224,64 +293,76 @@ export default async function init(rootDir, siteName, reqTemplate, cliOptions =
|
|
|
224
293
|
return logger.red('Please enter a valid path.');
|
|
225
294
|
},
|
|
226
295
|
message: 'Enter a local folder path, relative to the current working directory.',
|
|
227
|
-
}
|
|
228
|
-
|
|
296
|
+
}, {
|
|
297
|
+
onCancel() {
|
|
298
|
+
logger.error('A file path is required.');
|
|
299
|
+
process.exit(1);
|
|
300
|
+
},
|
|
301
|
+
}));
|
|
302
|
+
return {
|
|
303
|
+
type: 'local',
|
|
304
|
+
path: templateDir,
|
|
305
|
+
};
|
|
229
306
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
307
|
+
let useTS = cliOptions.typescript;
|
|
308
|
+
if (!useTS && template.tsVariantPath) {
|
|
309
|
+
({ useTS } = (await prompts({
|
|
310
|
+
type: 'confirm',
|
|
311
|
+
name: 'useTS',
|
|
312
|
+
message: 'This template is available in TypeScript. Do you want to use the TS variant?',
|
|
313
|
+
initial: false,
|
|
314
|
+
})));
|
|
233
315
|
}
|
|
316
|
+
return {
|
|
317
|
+
type: 'template',
|
|
318
|
+
template,
|
|
319
|
+
typescript: useTS ?? false,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
async function updatePkg(pkgPath, obj) {
|
|
323
|
+
const pkg = (await fs.readJSON(pkgPath));
|
|
324
|
+
const newPkg = Object.assign(pkg, obj);
|
|
325
|
+
await fs.outputFile(pkgPath, `${JSON.stringify(newPkg, null, 2)}\n`);
|
|
326
|
+
}
|
|
327
|
+
export default async function init(rootDir, reqName, reqTemplate, cliOptions = {}) {
|
|
328
|
+
const templates = await readTemplates();
|
|
329
|
+
const siteName = await getSiteName(reqName, rootDir);
|
|
330
|
+
const dest = path.resolve(rootDir, siteName);
|
|
331
|
+
const source = await getSource(reqTemplate, templates, cliOptions);
|
|
234
332
|
logger.info('Creating new Docusaurus project...');
|
|
235
|
-
if (
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
333
|
+
if (source.type === 'git') {
|
|
334
|
+
const gitCommand = await getGitCommand(source.strategy);
|
|
335
|
+
const gitCloneCommand = `${gitCommand} ${escapeShellArg(source.url)} ${escapeShellArg(dest)}`;
|
|
336
|
+
if (shell.exec(gitCloneCommand).code !== 0) {
|
|
337
|
+
logger.error `Cloning Git template failed!`;
|
|
239
338
|
process.exit(1);
|
|
240
339
|
}
|
|
241
|
-
|
|
242
|
-
if (shell.exec(`${command} ${template} ${dest}`).code !== 0) {
|
|
243
|
-
logger.error `Cloning Git template name=${template} failed!`;
|
|
244
|
-
process.exit(1);
|
|
245
|
-
}
|
|
246
|
-
if (gitStrategy === 'copy') {
|
|
340
|
+
if (source.strategy === 'copy') {
|
|
247
341
|
await fs.remove(path.join(dest, '.git'));
|
|
248
342
|
}
|
|
249
343
|
}
|
|
250
|
-
else if (
|
|
251
|
-
// Docusaurus templates.
|
|
252
|
-
if (useTS) {
|
|
253
|
-
if (!(await hasTS(template))) {
|
|
254
|
-
logger.error `Template name=${template} doesn't provide the TypeScript variant.`;
|
|
255
|
-
process.exit(1);
|
|
256
|
-
}
|
|
257
|
-
template = `${template}${TypeScriptTemplateSuffix}`;
|
|
258
|
-
}
|
|
344
|
+
else if (source.type === 'template') {
|
|
259
345
|
try {
|
|
260
|
-
await copyTemplate(
|
|
346
|
+
await copyTemplate(source.template, dest, source.typescript);
|
|
261
347
|
}
|
|
262
348
|
catch (err) {
|
|
263
|
-
logger.error `Copying Docusaurus template name=${template} failed!`;
|
|
349
|
+
logger.error `Copying Docusaurus template name=${source.template.name} failed!`;
|
|
264
350
|
throw err;
|
|
265
351
|
}
|
|
266
352
|
}
|
|
267
|
-
else
|
|
268
|
-
const templateDir = path.resolve(template);
|
|
353
|
+
else {
|
|
269
354
|
try {
|
|
270
|
-
await fs.copy(
|
|
355
|
+
await fs.copy(source.path, dest);
|
|
271
356
|
}
|
|
272
357
|
catch (err) {
|
|
273
|
-
logger.error `Copying local template path=${
|
|
358
|
+
logger.error `Copying local template path=${source.path} failed!`;
|
|
274
359
|
throw err;
|
|
275
360
|
}
|
|
276
361
|
}
|
|
277
|
-
else {
|
|
278
|
-
logger.error('Invalid template.');
|
|
279
|
-
process.exit(1);
|
|
280
|
-
}
|
|
281
362
|
// Update package.json info.
|
|
282
363
|
try {
|
|
283
364
|
await updatePkg(path.join(dest, 'package.json'), {
|
|
284
|
-
name: _.kebabCase(
|
|
365
|
+
name: _.kebabCase(siteName),
|
|
285
366
|
version: '0.0.0',
|
|
286
367
|
private: true,
|
|
287
368
|
});
|
|
@@ -300,15 +381,15 @@ export default async function init(rootDir, siteName, reqTemplate, cliOptions =
|
|
|
300
381
|
}
|
|
301
382
|
// Display the most elegant way to cd.
|
|
302
383
|
const cdpath = path.relative('.', dest);
|
|
303
|
-
const pkgManager = await getPackageManager(
|
|
384
|
+
const pkgManager = await getPackageManager(dest, cliOptions);
|
|
304
385
|
if (!cliOptions.skipInstall) {
|
|
305
386
|
shell.cd(dest);
|
|
306
387
|
logger.info `Installing dependencies with name=${pkgManager}...`;
|
|
307
388
|
if (shell.exec(pkgManager === 'yarn' ? 'yarn' : `${pkgManager} install --color always`, {
|
|
308
389
|
env: {
|
|
309
390
|
...process.env,
|
|
310
|
-
// Force coloring the output, since the command is invoked
|
|
311
|
-
//
|
|
391
|
+
// Force coloring the output, since the command is invoked by
|
|
392
|
+
// shelljs, which is not an interactive shell
|
|
312
393
|
...(supportsColor.stdout ? { FORCE_COLOR: '1' } : {}),
|
|
313
394
|
},
|
|
314
395
|
}).code !== 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-docusaurus",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.22",
|
|
4
4
|
"description": "Create Docusaurus apps easily.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
15
|
"create-docusaurus": "create-docusaurus",
|
|
16
|
-
"build": "tsc
|
|
17
|
-
"watch": "tsc
|
|
16
|
+
"build": "tsc --build",
|
|
17
|
+
"watch": "tsc --build --watch"
|
|
18
18
|
},
|
|
19
19
|
"bin": "bin/index.js",
|
|
20
20
|
"publishConfig": {
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@docusaurus/logger": "2.0.0-beta.
|
|
25
|
+
"@docusaurus/logger": "2.0.0-beta.22",
|
|
26
|
+
"@docusaurus/utils": "2.0.0-beta.22",
|
|
26
27
|
"commander": "^5.1.0",
|
|
27
28
|
"fs-extra": "^10.1.0",
|
|
28
29
|
"lodash": "^4.17.21",
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
"@types/supports-color": "^8.1.1"
|
|
37
38
|
},
|
|
38
39
|
"engines": {
|
|
39
|
-
"node": ">=14"
|
|
40
|
+
"node": ">=16.14"
|
|
40
41
|
},
|
|
41
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "daf9e462c4eebb7ac26a940932311f987e768f87"
|
|
42
43
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-2-classic-template",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"docusaurus": "docusaurus",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"write-heading-ids": "docusaurus write-heading-ids"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
18
|
-
"@docusaurus/preset-classic": "2.0.0-beta.
|
|
17
|
+
"@docusaurus/core": "2.0.0-beta.22",
|
|
18
|
+
"@docusaurus/preset-classic": "2.0.0-beta.22",
|
|
19
19
|
"@mdx-js/react": "^1.6.22",
|
|
20
|
-
"clsx": "^1.
|
|
21
|
-
"prism-react-renderer": "^1.3.
|
|
20
|
+
"clsx": "^1.2.0",
|
|
21
|
+
"prism-react-renderer": "^1.3.5",
|
|
22
22
|
"react": "^17.0.2",
|
|
23
23
|
"react-dom": "^17.0.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@docusaurus/module-type-aliases": "2.0.0-beta.
|
|
26
|
+
"@docusaurus/module-type-aliases": "2.0.0-beta.22"
|
|
27
27
|
},
|
|
28
28
|
"browserslist": {
|
|
29
29
|
"production": [
|
|
@@ -36,5 +36,8 @@
|
|
|
36
36
|
"last 1 firefox version",
|
|
37
37
|
"last 1 safari version"
|
|
38
38
|
]
|
|
39
|
+
},
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=16.14"
|
|
39
42
|
}
|
|
40
43
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import Layout from '@theme/Layout';
|
|
4
3
|
import Link from '@docusaurus/Link';
|
|
5
4
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
6
|
-
import
|
|
5
|
+
import Layout from '@theme/Layout';
|
|
7
6
|
import HomepageFeatures from '@site/src/components/HomepageFeatures';
|
|
8
7
|
|
|
8
|
+
import styles from './index.module.css';
|
|
9
|
+
|
|
9
10
|
function HomepageHeader() {
|
|
10
11
|
const {siteConfig} = useDocusaurusContext();
|
|
11
12
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-2-classic-typescript-template",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"docusaurus": "docusaurus",
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
"typecheck": "tsc"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
19
|
-
"@docusaurus/preset-classic": "2.0.0-beta.
|
|
18
|
+
"@docusaurus/core": "2.0.0-beta.22",
|
|
19
|
+
"@docusaurus/preset-classic": "2.0.0-beta.22",
|
|
20
20
|
"@mdx-js/react": "^1.6.22",
|
|
21
|
-
"clsx": "^1.
|
|
22
|
-
"prism-react-renderer": "^1.3.
|
|
21
|
+
"clsx": "^1.2.0",
|
|
22
|
+
"prism-react-renderer": "^1.3.5",
|
|
23
23
|
"react": "^17.0.2",
|
|
24
24
|
"react-dom": "^17.0.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@docusaurus/module-type-aliases": "2.0.0-beta.
|
|
27
|
+
"@docusaurus/module-type-aliases": "2.0.0-beta.22",
|
|
28
28
|
"@tsconfig/docusaurus": "^1.0.5",
|
|
29
|
-
"typescript": "^4.
|
|
29
|
+
"typescript": "^4.7.4"
|
|
30
30
|
},
|
|
31
31
|
"browserslist": {
|
|
32
32
|
"production": [
|
|
@@ -39,5 +39,8 @@
|
|
|
39
39
|
"last 1 firefox version",
|
|
40
40
|
"last 1 safari version"
|
|
41
41
|
]
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=16.14"
|
|
42
45
|
}
|
|
43
46
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import Layout from '@theme/Layout';
|
|
4
3
|
import Link from '@docusaurus/Link';
|
|
5
4
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
6
|
-
import
|
|
5
|
+
import Layout from '@theme/Layout';
|
|
7
6
|
import HomepageFeatures from '@site/src/components/HomepageFeatures';
|
|
8
7
|
|
|
8
|
+
import styles from './index.module.css';
|
|
9
|
+
|
|
9
10
|
function HomepageHeader() {
|
|
10
11
|
const {siteConfig} = useDocusaurusContext();
|
|
11
12
|
return (
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -38,7 +38,7 @@ module.exports = {
|
|
|
38
38
|
|
|
39
39
|
[
|
|
40
40
|
'*',
|
|
41
|
-
' * Copyright (c)
|
|
41
|
+
' * Copyright (c) Meta Platforms, Inc. and affiliates.',
|
|
42
42
|
' *',
|
|
43
43
|
' * This source code is licensed under the MIT license found in the',
|
|
44
44
|
' * LICENSE file in the root directory of this source tree.',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -54,9 +54,9 @@ const config = {
|
|
|
54
54
|
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
|
55
55
|
({
|
|
56
56
|
navbar: {
|
|
57
|
-
title: 'My
|
|
57
|
+
title: 'My Meta Project',
|
|
58
58
|
logo: {
|
|
59
|
-
alt: 'My
|
|
59
|
+
alt: 'My Meta Project Logo',
|
|
60
60
|
src: 'img/logo.svg',
|
|
61
61
|
},
|
|
62
62
|
items: [
|
|
@@ -127,30 +127,32 @@ const config = {
|
|
|
127
127
|
items: [
|
|
128
128
|
{
|
|
129
129
|
label: 'Privacy',
|
|
130
|
-
href: 'https://opensource.
|
|
130
|
+
href: 'https://opensource.fb.com/legal/privacy/',
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
label: 'Terms',
|
|
134
|
-
href: 'https://opensource.
|
|
134
|
+
href: 'https://opensource.fb.com/legal/terms/',
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
label: 'Data Policy',
|
|
138
|
-
href: 'https://opensource.
|
|
138
|
+
href: 'https://opensource.fb.com/legal/data-policy/',
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
label: 'Cookie Policy',
|
|
142
|
-
href: 'https://opensource.
|
|
142
|
+
href: 'https://opensource.fb.com/legal/cookie-policy/',
|
|
143
143
|
},
|
|
144
144
|
],
|
|
145
145
|
},
|
|
146
146
|
],
|
|
147
147
|
logo: {
|
|
148
|
-
alt: '
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
alt: 'Meta Open Source Logo',
|
|
149
|
+
// This default includes a positive & negative version, allowing for
|
|
150
|
+
// appropriate use depending on your site's style.
|
|
151
|
+
src: '/img/meta_opensource_logo_negative.svg',
|
|
152
|
+
href: 'https://opensource.fb.com',
|
|
151
153
|
},
|
|
152
154
|
// Please do not remove the credits, help to publicize Docusaurus :)
|
|
153
|
-
copyright: `Copyright © ${new Date().getFullYear()}
|
|
155
|
+
copyright: `Copyright © ${new Date().getFullYear()} Meta Platforms, Inc. Built with Docusaurus.`,
|
|
154
156
|
},
|
|
155
157
|
}),
|
|
156
158
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-2-facebook-template",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"docusaurus": "docusaurus",
|
|
@@ -18,25 +18,25 @@
|
|
|
18
18
|
"format:diff": "prettier --config .prettierrc --list-different \"**/*.{js,jsx,ts,tsx,md,mdx}\""
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
22
|
-
"@docusaurus/preset-classic": "2.0.0-beta.
|
|
21
|
+
"@docusaurus/core": "2.0.0-beta.22",
|
|
22
|
+
"@docusaurus/preset-classic": "2.0.0-beta.22",
|
|
23
23
|
"@mdx-js/react": "^1.6.22",
|
|
24
|
-
"clsx": "^1.
|
|
24
|
+
"clsx": "^1.2.0",
|
|
25
25
|
"react": "^17.0.2",
|
|
26
26
|
"react-dom": "^17.0.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@babel/eslint-parser": "^7.
|
|
30
|
-
"eslint": "^8.
|
|
29
|
+
"@babel/eslint-parser": "^7.18.2",
|
|
30
|
+
"eslint": "^8.19.0",
|
|
31
31
|
"eslint-config-airbnb": "^19.0.4",
|
|
32
32
|
"eslint-config-prettier": "^8.5.0",
|
|
33
33
|
"eslint-plugin-header": "^3.1.1",
|
|
34
34
|
"eslint-plugin-import": "^2.26.0",
|
|
35
|
-
"eslint-plugin-jsx-a11y": "^6.
|
|
36
|
-
"eslint-plugin-react": "^7.
|
|
37
|
-
"eslint-plugin-react-hooks": "^4.
|
|
38
|
-
"prettier": "^2.
|
|
39
|
-
"stylelint": "^14.
|
|
35
|
+
"eslint-plugin-jsx-a11y": "^6.6.0",
|
|
36
|
+
"eslint-plugin-react": "^7.30.1",
|
|
37
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
38
|
+
"prettier": "^2.7.1",
|
|
39
|
+
"stylelint": "^14.9.1"
|
|
40
40
|
},
|
|
41
41
|
"browserslist": {
|
|
42
42
|
"production": [
|
|
@@ -49,5 +49,8 @@
|
|
|
49
49
|
"last 1 firefox version",
|
|
50
50
|
"last 1 safari version"
|
|
51
51
|
]
|
|
52
|
+
},
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=16.14"
|
|
52
55
|
}
|
|
53
56
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 6090.9521 1307.1739" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="739.4327" x2="604.5946" y1="604.6622" y2="427.9775"><stop offset=".0006" stop-color="#0867df"/><stop offset=".4539" stop-color="#0668e1"/><stop offset=".8591" stop-color="#0064e0"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="476.93" x2="569.3698" y1="490.2073" y2="420.0277"><stop offset=".1323" stop-color="#0064df"/><stop offset=".9988" stop-color="#0064e0"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="437.7486" x2="474.8296" y1="593.1932" y2="499.849"><stop offset=".0147" stop-color="#0072ec"/><stop offset=".6881" stop-color="#0064df"/></linearGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="432.7129" x2="437.0034" y1="660.6261" y2="603.6183"><stop offset=".0731" stop-color="#007cf6"/><stop offset=".9943" stop-color="#0072ec"/></linearGradient><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="435.0724" x2="432.0034" y1="691.5921" y2="668.7519"><stop offset=".0731" stop-color="#007ff9"/><stop offset="1" stop-color="#007cf6"/></linearGradient><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="433.2708" x2="452.3974" y1="697.5917" y2="738.159"><stop offset=".0731" stop-color="#007ff9"/><stop offset="1" stop-color="#0082fb"/></linearGradient><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="727.2435" x2="752.5295" y1="501.3039" y2="466.3321"><stop offset=".2799" stop-color="#007ff8"/><stop offset=".9141" stop-color="#0082fb"/></linearGradient><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="919.4945" x2="972.3929" y1="455.9788" y2="650.5693"><stop offset="0" stop-color="#0082fb"/><stop offset=".9995" stop-color="#0081fa"/></linearGradient><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="985.1641" x2="951.6867" y1="658.0135" y2="725.6651"><stop offset=".0619" stop-color="#0081fa"/><stop offset="1" stop-color="#0080f9"/></linearGradient><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="925.0793" x2="956.3733" y1="761.5316" y2="740.2173"><stop offset="0" stop-color="#027af3"/><stop offset="1" stop-color="#0080f9"/></linearGradient><linearGradient id="k" gradientUnits="userSpaceOnUse" x1="875.9993" x2="919.4855" y1="765.6962" y2="765.6962"><stop offset="0" stop-color="#0377ef"/><stop offset=".9994" stop-color="#0279f1"/></linearGradient><linearGradient id="l" gradientUnits="userSpaceOnUse" x1="838.1927" x2="869.456" y1="741.7469" y2="760.1399"><stop offset=".0019" stop-color="#0471e9"/><stop offset="1" stop-color="#0377ef"/></linearGradient><linearGradient id="m" gradientUnits="userSpaceOnUse" x1="742.8261" x2="842.9741" y1="606.1226" y2="732.0393"><stop offset=".2765" stop-color="#0867df"/><stop offset="1" stop-color="#0471e9"/></linearGradient><path d="m0 0h6090.9521v1307.1739h-6090.9521z" fill="none"/><g fill="#1c2b33"><path d="m1128.7222 412.9337h75.2227l127.9067 231.3674 127.9022-231.3674h73.5962v380.1863h-61.37v-291.3869l-112.1616 201.7691h-57.57l-112.1513-201.7691v291.3869h-61.3749z"/><path d="m1731.3132 799.9078q-42.6371 0-74.9516-18.8712a131.99 131.99 0 0 1 -50.3722-52.2794q-18.0643-33.4014-18.0622-76.5786 0-43.7174 17.6532-77.3966 17.6509-33.6683 49.0208-52.684 31.3609-19.0045 72.0976-19.009 40.4631 0 69.6525 19.1468 29.1937 19.1448 44.9442 53.6353 15.7506 34.4884 15.755 80.9219v16.84h-208.2905q5.7014 34.7618 28.1046 54.72 22.4055 19.9581 56.6227 19.96 27.4266 0 47.2515-8.1487 19.8182-8.1486 37.2046-24.7127l32.59 39.9209q-48.6185 44.5375-119.2202 44.5353zm44.8109-225.53q-19.2846-19.6914-50.51-19.6892-30.4207 0-50.9191 20.0938-20.5116 20.1048-25.9352 54.0442h149.3608q-2.7206-34.7621-21.9965-54.4492z"/><path d="m1931.46 560.1206h-56.4849v-50.2389h56.4849v-83.1h59.2055v83.1h85.812v50.2389h-85.812v127.36q0 31.7744 10.86 45.3532 10.8627 13.5834 37.2046 13.5767a174.3473 174.3473 0 0 0 19.8226-.9514q8.1487-.9468 17.9244-2.5784v49.6966a168.0043 168.0043 0 0 1 -22.6766 4.8856 177.849 177.849 0 0 1 -26.4776 1.9027q-95.8634 0-95.8633-104.8211z"/><path d="m2384.9789 793.12h-58.1164v-39.65a105.0015 105.0015 0 0 1 -39.374 34.355q-23.899 12.0764-54.311 12.0829-37.4757 0-66.3983-19.1424-28.9271-19.1513-45.4867-52.6839-16.564-33.5349-16.564-76.7165 0-43.45 16.8352-76.8542 16.8375-33.4016 46.5758-52.4128 29.7271-19.0045 68.2922-19.009 29.06 0 52.146 11.2694a103.1259 103.1259 0 0 1 38.2848 31.91v-36.3868h58.1164zm-59.2011-184.12q-9.5089-24.1659-30.0073-38.156-20.505-13.9767-47.3893-13.9812-38.0226 0-60.5569 25.5263-22.5388 25.5261-22.5388 68.9767 0 43.7241 21.7252 69.248 21.7186 25.5262 58.9255 25.5262 27.4334 0 48.883-14.1234a79.7842 79.7842 0 0 0 30.9586-38.0182z"/><path d="m2529.4452 681.9147q-14.1236-35.9822-14.119-78.89 0-42.9037 14.119-78.8859a185.3686 185.3686 0 0 1 39.9208-62.46 180.4166 180.4166 0 0 1 60.8281-41.0055q35.0286-14.53 76.85-14.5325 41.8236 0 76.8543 14.5325a180.4785 180.4785 0 0 1 60.8326 41.0055 185.574 185.574 0 0 1 39.9208 62.46q14.11 35.9822 14.119 78.8859 0 42.91-14.119 78.89a185.5731 185.5731 0 0 1 -39.9208 62.46 180.4146 180.4146 0 0 1 -60.8326 41.0056q-35.0286 14.5234-76.8543 14.5279-41.8168 0-76.85-14.5279a180.3528 180.3528 0 0 1 -60.8281-41.0056 185.3677 185.3677 0 0 1 -39.9208-62.46zm304.4207-78.89q0-40.9967-16.2929-72.3687-16.2906-31.3677-44.9442-49.0164-28.6537-17.6509-65.5849-17.6532-36.929 0-65.58 17.6532-28.6536 17.651-44.9442 49.0164-16.2907 31.361-16.2929 72.3687 0 41.01 16.2929 72.3732 16.2972 31.3675 44.9442 49.0163 28.647 17.6577 65.58 17.6532 36.9289 0 65.5849-17.6532 28.6536-17.6509 44.9442-49.0163 16.2908-31.3679 16.2929-72.3735z"/><path d="m2953.0816 509.8817h58.3831v39.3741a104.2357 104.2357 0 0 1 39.2451-34.2173q23.7523-11.9429 54.1731-11.9495 37.4758 0 66.5318 19.1468 29.06 19.1448 45.4866 52.5462 16.4307 33.4014 16.4307 76.8542 0 43.1772-16.8352 76.7165-16.8375 33.5415-46.5758 52.5461-29.7273 19.0045-68.2922 19.009-28.5136 0-51.328-10.86a101.94 101.94 0 0 1 -38.0182-30.9586v149.0847h-59.201zm89.2084 222.2719q20.4984 13.99 47.3893 13.9856 38.0093 0 60.557-25.5262 22.5389-25.5263 22.5388-68.9768 0-43.724-21.7253-69.2479-21.7319-25.5262-58.9254-25.5263-27.4333 0-48.883 14.119a79.776 79.776 0 0 0 -30.9587 38.0182v84.9984q9.5022 24.1724 30.0073 38.156z"/><path d="m3414.7361 799.9078q-42.6371 0-74.9516-18.8712a131.9708 131.9708 0 0 1 -50.3767-52.2794q-18.0643-33.4014-18.0577-76.5786 0-43.7174 17.6487-77.3966 17.6509-33.6683 49.0164-52.684 31.3677-19.0045 72.102-19.009 40.4565 0 69.6569 19.1468 29.1871 19.1448 44.9443 53.6353 15.7438 34.4884 15.7461 80.9219v16.84h-208.2863q5.7015 34.7618 28.1091 54.72 22.4055 19.9581 56.6182 19.96 27.4268 0 47.2515-8.1487t37.2046-24.7127l32.5857 39.9209q-48.6118 44.5375-119.2112 44.5353zm44.802-225.53q-19.2848-19.6914-50.51-19.6892-30.414 0-50.9146 20.0938-20.505 20.1048-25.9352 54.0442h149.3564q-2.7142-34.7621-21.9966-54.4492z"/><path d="m3590.4322 509.8817h58.3878v41.2767q32.8547-48.0717 91.5156-48.0694 50.5123 0 77.6678 31.501 27.1533 31.5076 27.1577 90.16v168.37h-59.2011v-161.31q0-39.6431-14.1234-58.3831-14.1234-18.7378-44.2641-18.7379-26.3465 0-46.4335 13.5766-20.1049 13.5834-31.501 38.0182v186.8362h-59.2055z"/><path d="m4264.7207 685.5823q0 54.04-37.3425 84.1849-37.3423 30.1407-107.1282 30.1406-52.4128 0-93.285-19.8226-40.8765-19.8181-63.6777-57.574l46.1624-36.3866q19.0045 28.787 47.5226 42.77 28.5137 13.99 65.4471 13.9856 37.209 0 57.8452-14.1234 20.6316-14.1168 20.6361-38.2893 0-20.905-14.39-34.6218-14.3969-13.71-48.8785-20.7739l-57.0317-11.95q-104.8255-21.7253-104.821-105.91 0-33.4014 17.3775-58.3875 17.3776-24.98 49.2876-38.8317 31.9077-13.85 74.8182-13.8523 95.3164 0 142.568 73.8669l-46.7047 33.4037q-16.8441-25.5263-40.0586-37.8848-23.2191-12.3564-56.3471-12.3541-36.6622 0-56.8938 13.4388-20.2317 13.4433-20.2316 38.4271 0 19.0113 13.1721 30.6875 13.1631 11.6761 46.0289 18.7379l57.0273 11.95q108.8929 22.8123 108.8974 109.169z"/><path d="m4324.3263 729.0328q-18.3378-33.4081-18.3334-77.3966 0-44.2641 18.3334-77.6678a132.13 132.13 0 0 1 51.0524-52.1415q32.7145-18.738 75.9029-18.7379 43.17 0 75.8985 18.7379a132.2284 132.2284 0 0 1 51.0568 52.1415q18.3245 33.4016 18.3289 77.6678 0 43.9908-18.3289 77.3966a132.2174 132.2174 0 0 1 -51.0569 52.1372q-32.7213 18.7378-75.8985 18.7378-42.9171 0-75.77-18.7378a131.86 131.86 0 0 1 -51.1852-52.1372zm211.6781-77.3966q0-42.63-23.2145-68.4344-23.219-25.8-61.5083-25.7974-38.2893 0-61.5083 25.7974-23.2189 25.8-23.2234 68.4344 0 42.3636 23.2234 68.1633 23.2189 25.8 61.5083 25.7974 38.2893 0 61.5083-25.7974 23.219-25.7995 23.2145-68.1633z"/><path d="m4894.1982 793.12h-58.3875v-40.7348q-32.588 47.5248-90.16 47.5226-49.9654 0-76.7164-31.501-26.7532-31.5009-26.7488-90.16v-168.3651h59.2011v161.3059q0 39.3764 13.8478 58.25 13.85 18.8779 43.4506 18.8757 25.5195 0 45.3488-13.4433 19.8248-13.4433 30.9586-37.6136v-187.3747h59.2055z"/><path d="m4959.3652 509.8817h58.3831v43.4462q27.4333-47.5183 74.9516-47.5227 15.4838 0 25.26 2.7162v54.5866a193.9055 193.9055 0 0 0 -26.8866-1.9027q-53.2263 0-72.5065 47.7939v184.1208h-59.2011z"/><path d="m5153.1235 573.8306a128.6625 128.6625 0 0 1 49.8343-52.1371q32.0344-18.5979 74.9516-18.6045 79.8327 0 118.9445 63.2776l-46.1668 31.23q-13.85-20.9118-30.9587-30.5541-17.104-9.6357-41.2767-9.6379-36.9355 0-59.7478 25.9308-22.8056 25.94-22.8056 68.03 0 44.2641 22.2632 69.248 22.2722 24.9861 62.7353 24.9839a87.9291 87.9291 0 0 0 41.2767-9.9136 84.7972 84.7972 0 0 0 30.6874-26.4775l41.2723 36.3911q-41.5432 54.3127-114.5968 54.3105-43.724 0-76.17-18.3289a126.49 126.49 0 0 1 -50.2433-51.5992q-17.791-33.2615-17.7866-78.0723.0004-44.5374 17.787-78.0768z"/><path d="m5565.2193 799.9078q-42.637 0-74.9516-18.8712a131.9592 131.9592 0 0 1 -50.3722-52.2794q-18.0711-33.4014-18.0622-76.5786 0-43.7174 17.6532-77.3966 17.6442-33.6683 49.0163-52.684 31.3677-19.0045 72.0976-19.009 40.4631 0 69.6569 19.1468 29.1871 19.1448 44.9443 53.6353 15.7438 34.4884 15.7505 80.9219v16.84h-208.2907q5.7081 34.7618 28.1091 54.72 22.4054 19.9581 56.6226 19.96 27.42 0 47.2471-8.1487 19.8248-8.1486 37.209-24.7127l32.5857 39.9209q-48.6117 44.5375-119.2156 44.5353zm44.8064-225.53q-19.2846-19.6914-50.51-19.6892-30.4207 0-50.9191 20.0938-20.505 20.1048-25.9352 54.0442h149.3608q-2.7207-34.7621-21.9965-54.4492z"/></g><path d="m572.964 400c-.1936 0-.3861.0007-.58.0017l-.7915 65.381c.1812-.002.362-.0035.5434-.0035 43.0344 0 76.4142 33.9309 148.9659 156.1376l4.4226 7.44.2895.4869 40.6134-60.9371-.2812-.4706q-14.3361-23.318-27.5456-42.9083c-10.2131-15.132-19.98-28.65-29.4588-40.7194-47.9952-61.1099-88.1438-84.4083-136.1777-84.4083z" fill="url(#a)"/><path d="m572.3845 400.0017c-48.2672.2483-90.9387 31.46-121.7513 79.22q-.1352.21-.2706.42l56.56 30.7847c.0918-.139.1842-.2785.2763-.417 17.9927-27.0905 40.3838-44.3693 64.3942-44.6265.1812-.002.362-.0035.5434-.0035l.8275-65.3794c-.194 0-.3861.0007-.5795.0017z" fill="url(#b)"/><path d="m450.6332 479.2213q-.1352.21-.2706.42c-20.2472 31.5183-35.3409 70.1951-43.498 111.92q-.053.2707-.1056.5423l63.5428 14.9929c.0332-.1811.0667-.3627.1-.5437 6.7921-36.6691 19.723-70.6787 36.5205-96.1268.0918-.139.1842-.2785.2763-.417z" fill="url(#c)"/><path d="m470.402 606.553-63.5374-14.9915q-.053.2707-.1056.5423a369.895 369.895 0 0 0 -6.7584 69.6377q0 .2835 0 .5667l65.1657 5.83c-.0052-.19-.0106-.3771-.0151-.5675q-.048-2.0334-.0487-4.1221a313.7856 313.7856 0 0 1 5.2-56.3519c.0325-.1811.066-.3627.0995-.5437z" fill="url(#d)"/><path d="m467.1479 688.47a136.1327 136.1327 0 0 1 -1.982-20.3313c-.0052-.19-.0106-.3771-.0151-.5675l-65.15-5.8292q0 .2835 0 .5667v.0369a221.5681 221.5681 0 0 0 3.5708 40.75c.0341.1821.0676.3608.1022.5424l63.5733-14.6239c-.0342-.181-.0666-.363-.0992-.5441z" fill="url(#e)"/><path d="m481.9945 722.1974c-7.0911-7.74-12.11-18.9047-14.7482-33.1836-.0334-.1807-.0658-.3627-.0984-.5443l-63.5771 14.6258c.0341.1821.0676.3608.1022.5424 4.8054 25.23 14.23 46.2568 27.7259 62.1639q.18.2122.3613.4238l50.613-43.6206c-.1265-.1348-.2532-.2707-.3787-.4074z" fill="url(#f)"/><path d="m670.3464 541.3443c-38.3114 58.764-61.52 95.6216-61.52 95.6216-51.0344 80-68.69 97.93-97.1033 97.93-11.8562 0-21.7613-4.2213-29.3495-12.291-.1265-.1345-.2534-.2707-.3787-.4074l-50.5956 43.6042q.18.2122.3613.4238c18.6348 21.7219 44.9388 33.7745 77.4794 33.7745 49.232 0 84.64-23.21 147.5858-133.2411 0 0 26.24-46.3371 44.2912-78.2559-11.1817-18.053-21.357-33.683-30.7706-47.1587z" fill="#0082fb"/><path d="m738.6331 448.5921c-.1292.1371-.2609.2772-.39.4147a394.765 394.765 0 0 0 -29.1093 35.39c9.4789 12.0693 19.2641 25.6138 29.4772 40.7458 12.0373-18.5788 23.2732-33.6261 34.286-45.1591.13-.1367.2585-.27.389-.4054z" fill="url(#g)"/><path d="m924.631 442.8317c-26.7175-26.9926-58.5755-42.8308-92.6329-42.8308-35.9117 0-66.1191 19.68-93.365 48.5912-.1292.1371-.2609.2772-.39.4147l34.6539 30.9768c.13-.1367.2585-.27.389-.4054 17.9489-18.67 35.3187-27.9912 54.5746-27.9912h-.0006c20.725 0 40.1279 9.7563 56.9318 26.86.1316.134.2623.2669.3937.4019l39.8437-35.6155c-.1326-.1345-.2654-.2676-.3982-.4017z" fill="#0082fb"/><path d="m1001.8721 653.1374c-1.4969-86.668-31.8252-164.1484-76.8429-209.9038-.1326-.1347-.2654-.2678-.3982-.4019l-39.8392 35.6155c.1316.134.2623.2669.3937.4019 33.8664 34.7875 57.095 99.4932 59.2077 174.27q.0082.2821.0159.5647l57.4721.0185q-.0046-.2823-.0091-.5649z" fill="url(#h)"/><path d="m1001.8812 653.7021q-.0047-.2823-.0091-.5647l-57.4789-.0185q.0082.2821.0159.5647.1413 5.2644.14 10.5925c0 20.3878-3.045 36.8685-9.2379 48.767-.0918.1764-.1856.3536-.2787.528l42.8543 44.57c.1059-.1615.2105-.3226.3158-.485 15.5578-24.0056 23.7256-57.3536 23.7256-97.7933q.0004-3.0881-.047-6.1607z" fill="url(#i)"/><path d="m935.3116 713.0431c-.0918.1764-.1856.3536-.2787.528-5.36 10.0295-13.01 16.7188-23.0094 19.644l19.5365 61.5686q3.88-1.3176 7.5555-2.9589 1.098-.4887 2.1775-1.0062.6225-.298 1.2395-.6049a89.159 89.159 0 0 0 32.6635-28.1691c.539-.7469 1.073-1.5 1.5965-2.2677q.553-.8106 1.0944-1.6362c.1059-.1615.2105-.3226.3158-.485z" fill="url(#j)"/><path d="m899.5853 734.8958a42.6954 42.6954 0 0 1 -17.987-3.5026l-20.0032 63.034c11.2427 3.8411 23.2363 5.572 36.6109 5.572a102.9692 102.9692 0 0 0 33.8892-5.399l-19.5311-61.5476a43.8483 43.8483 0 0 1 -12.9788 1.8432z" fill="url(#k)"/><path d="m859.5578 713.3374q-.1845-.213-.37-.4293l-46.0273 47.87q.1929.2067.386.412c15.9934 17.0436 31.2643 27.6164 48.5844 33.4188l19.9875-62.9874c-7.2991-3.1355-14.3574-8.8181-22.5606-18.2841z" fill="url(#l)"/><path d="m859.1875 712.9081c-13.8065-16.0555-30.8851-42.7869-57.75-86.0134l-35.0088-58.3885-.2812-.4706-40.6217 60.9208.2895.4869 24.8063 41.73c24.0455 40.2379 43.6347 69.3476 62.5391 89.604q.1929.2067.386.412l46.0116-47.8522q-.185-.2127-.3708-.429z" fill="url(#m)"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 6090.9521 1307.1739" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="739.4327" x2="604.5946" y1="604.6622" y2="427.9775"><stop offset=".0006" stop-color="#0867df"/><stop offset=".4539" stop-color="#0668e1"/><stop offset=".8591" stop-color="#0064e0"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="476.93" x2="569.3698" y1="490.2073" y2="420.0277"><stop offset=".1323" stop-color="#0064df"/><stop offset=".9988" stop-color="#0064e0"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="437.7486" x2="474.8296" y1="593.1932" y2="499.849"><stop offset=".0147" stop-color="#0072ec"/><stop offset=".6881" stop-color="#0064df"/></linearGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="432.7129" x2="437.0034" y1="660.6261" y2="603.6183"><stop offset=".0731" stop-color="#007cf6"/><stop offset=".9943" stop-color="#0072ec"/></linearGradient><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="435.0724" x2="432.0034" y1="691.5921" y2="668.7519"><stop offset=".0731" stop-color="#007ff9"/><stop offset="1" stop-color="#007cf6"/></linearGradient><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="433.2708" x2="452.3974" y1="697.5917" y2="738.159"><stop offset=".0731" stop-color="#007ff9"/><stop offset="1" stop-color="#0082fb"/></linearGradient><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="727.2435" x2="752.5295" y1="501.3039" y2="466.3321"><stop offset=".2799" stop-color="#007ff8"/><stop offset=".9141" stop-color="#0082fb"/></linearGradient><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="919.4945" x2="972.3929" y1="455.9788" y2="650.5693"><stop offset="0" stop-color="#0082fb"/><stop offset=".9995" stop-color="#0081fa"/></linearGradient><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="985.1641" x2="951.6867" y1="658.0135" y2="725.6651"><stop offset=".0619" stop-color="#0081fa"/><stop offset="1" stop-color="#0080f9"/></linearGradient><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="925.0793" x2="956.3733" y1="761.5316" y2="740.2173"><stop offset="0" stop-color="#027af3"/><stop offset="1" stop-color="#0080f9"/></linearGradient><linearGradient id="k" gradientUnits="userSpaceOnUse" x1="875.9993" x2="919.4855" y1="765.6962" y2="765.6962"><stop offset="0" stop-color="#0377ef"/><stop offset=".9994" stop-color="#0279f1"/></linearGradient><linearGradient id="l" gradientUnits="userSpaceOnUse" x1="838.1927" x2="869.456" y1="741.7469" y2="760.1399"><stop offset=".0019" stop-color="#0471e9"/><stop offset="1" stop-color="#0377ef"/></linearGradient><linearGradient id="m" gradientUnits="userSpaceOnUse" x1="742.8261" x2="842.9741" y1="606.1226" y2="732.0393"><stop offset=".2765" stop-color="#0867df"/><stop offset="1" stop-color="#0471e9"/></linearGradient><path d="m0 0h6090.9521v1307.1739h-6090.9521z" fill="none"/><g fill="#fff"><path d="m1128.7222 412.9337h75.2227l127.9067 231.3674 127.9022-231.3674h73.5962v380.1863h-61.37v-291.3869l-112.1616 201.7691h-57.57l-112.1513-201.7691v291.3869h-61.3749z"/><path d="m1731.3132 799.9078q-42.6371 0-74.9516-18.8712a131.99 131.99 0 0 1 -50.3722-52.2794q-18.0643-33.4014-18.0622-76.5786 0-43.7174 17.6532-77.3966 17.6509-33.6683 49.0208-52.684 31.3609-19.0045 72.0976-19.009 40.4631 0 69.6525 19.1468 29.1937 19.1448 44.9442 53.6353 15.7506 34.4884 15.755 80.9219v16.84h-208.2905q5.7014 34.7618 28.1046 54.72 22.4055 19.9581 56.6227 19.96 27.4266 0 47.2515-8.1487 19.8182-8.1486 37.2046-24.7127l32.59 39.9209q-48.6185 44.5375-119.2202 44.5353zm44.8109-225.53q-19.2846-19.6914-50.51-19.6892-30.4207 0-50.9191 20.0938-20.5116 20.1048-25.9352 54.0442h149.3608q-2.7206-34.7621-21.9965-54.4492z"/><path d="m1931.46 560.1206h-56.4849v-50.2389h56.4849v-83.1h59.2055v83.1h85.812v50.2389h-85.812v127.36q0 31.7744 10.86 45.3532 10.8627 13.5834 37.2046 13.5767a174.3473 174.3473 0 0 0 19.8226-.9514q8.1487-.9468 17.9244-2.5784v49.6966a168.0043 168.0043 0 0 1 -22.6766 4.8856 177.849 177.849 0 0 1 -26.4776 1.9027q-95.8634 0-95.8633-104.8211z"/><path d="m2384.9789 793.12h-58.1164v-39.65a105.0015 105.0015 0 0 1 -39.374 34.355q-23.899 12.0764-54.311 12.0829-37.4757 0-66.3983-19.1424-28.9271-19.1513-45.4867-52.6839-16.564-33.5349-16.564-76.7165 0-43.45 16.8352-76.8542 16.8375-33.4016 46.5758-52.4128 29.7271-19.0045 68.2922-19.009 29.06 0 52.146 11.2694a103.1259 103.1259 0 0 1 38.2848 31.91v-36.3868h58.1164zm-59.2011-184.12q-9.5089-24.1659-30.0073-38.156-20.505-13.9767-47.3893-13.9812-38.0226 0-60.5569 25.5263-22.5388 25.5261-22.5388 68.9767 0 43.7241 21.7252 69.248 21.7186 25.5262 58.9255 25.5262 27.4334 0 48.883-14.1234a79.7842 79.7842 0 0 0 30.9586-38.0182z"/><path d="m2529.4452 681.9147q-14.1236-35.9822-14.119-78.89 0-42.9037 14.119-78.8859a185.3686 185.3686 0 0 1 39.9208-62.46 180.4166 180.4166 0 0 1 60.8281-41.0055q35.0286-14.53 76.85-14.5325 41.8236 0 76.8543 14.5325a180.4785 180.4785 0 0 1 60.8326 41.0055 185.574 185.574 0 0 1 39.9208 62.46q14.11 35.9822 14.119 78.8859 0 42.91-14.119 78.89a185.5731 185.5731 0 0 1 -39.9208 62.46 180.4146 180.4146 0 0 1 -60.8326 41.0056q-35.0286 14.5234-76.8543 14.5279-41.8168 0-76.85-14.5279a180.3528 180.3528 0 0 1 -60.8281-41.0056 185.3677 185.3677 0 0 1 -39.9208-62.46zm304.4207-78.89q0-40.9967-16.2929-72.3687-16.2906-31.3677-44.9442-49.0164-28.6537-17.6509-65.5849-17.6532-36.929 0-65.58 17.6532-28.6536 17.651-44.9442 49.0164-16.2907 31.361-16.2929 72.3687 0 41.01 16.2929 72.3732 16.2972 31.3675 44.9442 49.0163 28.647 17.6577 65.58 17.6532 36.9289 0 65.5849-17.6532 28.6536-17.6509 44.9442-49.0163 16.2908-31.3679 16.2929-72.3735z"/><path d="m2953.0816 509.8817h58.3831v39.3741a104.2357 104.2357 0 0 1 39.2451-34.2173q23.7523-11.9429 54.1731-11.9495 37.4758 0 66.5318 19.1468 29.06 19.1448 45.4866 52.5462 16.4307 33.4014 16.4307 76.8542 0 43.1772-16.8352 76.7165-16.8375 33.5415-46.5758 52.5461-29.7273 19.0045-68.2922 19.009-28.5136 0-51.328-10.86a101.94 101.94 0 0 1 -38.0182-30.9586v149.0847h-59.201zm89.2084 222.2719q20.4984 13.99 47.3893 13.9856 38.0093 0 60.557-25.5262 22.5389-25.5263 22.5388-68.9768 0-43.724-21.7253-69.2479-21.7319-25.5262-58.9254-25.5263-27.4333 0-48.883 14.119a79.776 79.776 0 0 0 -30.9587 38.0182v84.9984q9.5022 24.1724 30.0073 38.156z"/><path d="m3414.7361 799.9078q-42.6371 0-74.9516-18.8712a131.9708 131.9708 0 0 1 -50.3767-52.2794q-18.0643-33.4014-18.0577-76.5786 0-43.7174 17.6487-77.3966 17.6509-33.6683 49.0164-52.684 31.3677-19.0045 72.102-19.009 40.4565 0 69.6569 19.1468 29.1871 19.1448 44.9443 53.6353 15.7438 34.4884 15.7461 80.9219v16.84h-208.2863q5.7015 34.7618 28.1091 54.72 22.4055 19.9581 56.6182 19.96 27.4268 0 47.2515-8.1487t37.2046-24.7127l32.5857 39.9209q-48.6118 44.5375-119.2112 44.5353zm44.802-225.53q-19.2848-19.6914-50.51-19.6892-30.414 0-50.9146 20.0938-20.505 20.1048-25.9352 54.0442h149.3564q-2.7142-34.7621-21.9966-54.4492z"/><path d="m3590.4322 509.8817h58.3878v41.2767q32.8547-48.0717 91.5156-48.0694 50.5123 0 77.6678 31.501 27.1533 31.5076 27.1577 90.16v168.37h-59.2011v-161.31q0-39.6431-14.1234-58.3831-14.1234-18.7378-44.2641-18.7379-26.3465 0-46.4335 13.5766-20.1049 13.5834-31.501 38.0182v186.8362h-59.2055z"/><path d="m4264.7207 685.5823q0 54.04-37.3425 84.1849-37.3423 30.1407-107.1282 30.1406-52.4128 0-93.285-19.8226-40.8765-19.8181-63.6777-57.574l46.1624-36.3866q19.0045 28.787 47.5226 42.77 28.5137 13.99 65.4471 13.9856 37.209 0 57.8452-14.1234 20.6316-14.1168 20.6361-38.2893 0-20.905-14.39-34.6218-14.3969-13.71-48.8785-20.7739l-57.0317-11.95q-104.8255-21.7253-104.821-105.91 0-33.4014 17.3775-58.3875 17.3776-24.98 49.2876-38.8317 31.9077-13.85 74.8182-13.8523 95.3164 0 142.568 73.8669l-46.7047 33.4037q-16.8441-25.5263-40.0586-37.8848-23.2191-12.3564-56.3471-12.3541-36.6622 0-56.8938 13.4388-20.2317 13.4433-20.2316 38.4271 0 19.0113 13.1721 30.6875 13.1631 11.6761 46.0289 18.7379l57.0273 11.95q108.8929 22.8123 108.8974 109.169z"/><path d="m4324.3263 729.0328q-18.3378-33.4081-18.3334-77.3966 0-44.2641 18.3334-77.6678a132.13 132.13 0 0 1 51.0524-52.1415q32.7145-18.738 75.9029-18.7379 43.17 0 75.8985 18.7379a132.2284 132.2284 0 0 1 51.0568 52.1415q18.3245 33.4016 18.3289 77.6678 0 43.9908-18.3289 77.3966a132.2174 132.2174 0 0 1 -51.0569 52.1372q-32.7213 18.7378-75.8985 18.7378-42.9171 0-75.77-18.7378a131.86 131.86 0 0 1 -51.1852-52.1372zm211.6781-77.3966q0-42.63-23.2145-68.4344-23.219-25.8-61.5083-25.7974-38.2893 0-61.5083 25.7974-23.2189 25.8-23.2234 68.4344 0 42.3636 23.2234 68.1633 23.2189 25.8 61.5083 25.7974 38.2893 0 61.5083-25.7974 23.219-25.7995 23.2145-68.1633z"/><path d="m4894.1982 793.12h-58.3875v-40.7348q-32.588 47.5248-90.16 47.5226-49.9654 0-76.7164-31.501-26.7532-31.5009-26.7488-90.16v-168.3651h59.2011v161.3059q0 39.3764 13.8478 58.25 13.85 18.8779 43.4506 18.8757 25.5195 0 45.3488-13.4433 19.8248-13.4433 30.9586-37.6136v-187.3747h59.2055z"/><path d="m4959.3652 509.8817h58.3831v43.4462q27.4333-47.5183 74.9516-47.5227 15.4838 0 25.26 2.7162v54.5866a193.9055 193.9055 0 0 0 -26.8866-1.9027q-53.2263 0-72.5065 47.7939v184.1208h-59.2011z"/><path d="m5153.1235 573.8306a128.6625 128.6625 0 0 1 49.8343-52.1371q32.0344-18.5979 74.9516-18.6045 79.8327 0 118.9445 63.2776l-46.1668 31.23q-13.85-20.9118-30.9587-30.5541-17.104-9.6357-41.2767-9.6379-36.9355 0-59.7478 25.9308-22.8056 25.94-22.8056 68.03 0 44.2641 22.2632 69.248 22.2722 24.9861 62.7353 24.9839a87.9291 87.9291 0 0 0 41.2767-9.9136 84.7972 84.7972 0 0 0 30.6874-26.4775l41.2723 36.3911q-41.5432 54.3127-114.5968 54.3105-43.724 0-76.17-18.3289a126.49 126.49 0 0 1 -50.2433-51.5992q-17.791-33.2615-17.7866-78.0723.0004-44.5374 17.787-78.0768z"/><path d="m5565.2193 799.9078q-42.637 0-74.9516-18.8712a131.9592 131.9592 0 0 1 -50.3722-52.2794q-18.0711-33.4014-18.0622-76.5786 0-43.7174 17.6532-77.3966 17.6442-33.6683 49.0163-52.684 31.3677-19.0045 72.0976-19.009 40.4631 0 69.6569 19.1468 29.1871 19.1448 44.9443 53.6353 15.7438 34.4884 15.7505 80.9219v16.84h-208.2907q5.7081 34.7618 28.1091 54.72 22.4054 19.9581 56.6226 19.96 27.42 0 47.2471-8.1487 19.8248-8.1486 37.209-24.7127l32.5857 39.9209q-48.6117 44.5375-119.2156 44.5353zm44.8064-225.53q-19.2846-19.6914-50.51-19.6892-30.4207 0-50.9191 20.0938-20.505 20.1048-25.9352 54.0442h149.3608q-2.7207-34.7621-21.9965-54.4492z"/></g><path d="m572.964 400c-.1936 0-.3861.0007-.58.0017l-.7915 65.381c.1812-.002.362-.0035.5434-.0035 43.0344 0 76.4142 33.9309 148.9659 156.1376l4.4226 7.44.2895.4869 40.6134-60.9371-.2812-.4706q-14.3361-23.318-27.5456-42.9083c-10.2131-15.132-19.98-28.65-29.4588-40.7194-47.9952-61.1099-88.1438-84.4083-136.1777-84.4083z" fill="url(#a)"/><path d="m572.3845 400.0017c-48.2672.2483-90.9387 31.46-121.7513 79.22q-.1352.21-.2706.42l56.56 30.7847c.0918-.139.1842-.2785.2763-.417 17.9927-27.0905 40.3838-44.3693 64.3942-44.6265.1812-.002.362-.0035.5434-.0035l.8275-65.3794c-.194 0-.3861.0007-.5795.0017z" fill="url(#b)"/><path d="m450.6332 479.2213q-.1352.21-.2706.42c-20.2472 31.5183-35.3409 70.1951-43.498 111.92q-.053.2707-.1056.5423l63.5428 14.9929c.0332-.1811.0667-.3627.1-.5437 6.7921-36.6691 19.723-70.6787 36.5205-96.1268.0918-.139.1842-.2785.2763-.417z" fill="url(#c)"/><path d="m470.402 606.553-63.5374-14.9915q-.053.2707-.1056.5423a369.895 369.895 0 0 0 -6.7584 69.6377q0 .2835 0 .5667l65.1657 5.83c-.0052-.19-.0106-.3771-.0151-.5675q-.048-2.0334-.0487-4.1221a313.7856 313.7856 0 0 1 5.2-56.3519c.0325-.1811.066-.3627.0995-.5437z" fill="url(#d)"/><path d="m467.1479 688.47a136.1327 136.1327 0 0 1 -1.982-20.3313c-.0052-.19-.0106-.3771-.0151-.5675l-65.15-5.8292q0 .2835 0 .5667v.0369a221.5681 221.5681 0 0 0 3.5708 40.75c.0341.1821.0676.3608.1022.5424l63.5733-14.6239c-.0342-.181-.0666-.363-.0992-.5441z" fill="url(#e)"/><path d="m481.9945 722.1974c-7.0911-7.74-12.11-18.9047-14.7482-33.1836-.0334-.1807-.0658-.3627-.0984-.5443l-63.5771 14.6258c.0341.1821.0676.3608.1022.5424 4.8054 25.23 14.23 46.2568 27.7259 62.1639q.18.2122.3613.4238l50.613-43.6206c-.1265-.1348-.2532-.2707-.3787-.4074z" fill="url(#f)"/><path d="m670.3464 541.3443c-38.3114 58.764-61.52 95.6216-61.52 95.6216-51.0344 80-68.69 97.93-97.1033 97.93-11.8562 0-21.7613-4.2213-29.3495-12.291-.1265-.1345-.2534-.2707-.3787-.4074l-50.5956 43.6042q.18.2122.3613.4238c18.6348 21.7219 44.9388 33.7745 77.4794 33.7745 49.232 0 84.64-23.21 147.5858-133.2411 0 0 26.24-46.3371 44.2912-78.2559-11.1817-18.053-21.357-33.683-30.7706-47.1587z" fill="#0082fb"/><path d="m738.6331 448.5921c-.1292.1371-.2609.2772-.39.4147a394.765 394.765 0 0 0 -29.1093 35.39c9.4789 12.0693 19.2641 25.6138 29.4772 40.7458 12.0373-18.5788 23.2732-33.6261 34.286-45.1591.13-.1367.2585-.27.389-.4054z" fill="url(#g)"/><path d="m924.631 442.8317c-26.7175-26.9926-58.5755-42.8308-92.6329-42.8308-35.9117 0-66.1191 19.68-93.365 48.5912-.1292.1371-.2609.2772-.39.4147l34.6539 30.9768c.13-.1367.2585-.27.389-.4054 17.9489-18.67 35.3187-27.9912 54.5746-27.9912h-.0006c20.725 0 40.1279 9.7563 56.9318 26.86.1316.134.2623.2669.3937.4019l39.8437-35.6155c-.1326-.1345-.2654-.2676-.3982-.4017z" fill="#0082fb"/><path d="m1001.8721 653.1374c-1.4969-86.668-31.8252-164.1484-76.8429-209.9038-.1326-.1347-.2654-.2678-.3982-.4019l-39.8392 35.6155c.1316.134.2623.2669.3937.4019 33.8664 34.7875 57.095 99.4932 59.2077 174.27q.0082.2821.0159.5647l57.4721.0185q-.0046-.2823-.0091-.5649z" fill="url(#h)"/><path d="m1001.8812 653.7021q-.0047-.2823-.0091-.5647l-57.4789-.0185q.0082.2821.0159.5647.1413 5.2644.14 10.5925c0 20.3878-3.045 36.8685-9.2379 48.767-.0918.1764-.1856.3536-.2787.528l42.8543 44.57c.1059-.1615.2105-.3226.3158-.485 15.5578-24.0056 23.7256-57.3536 23.7256-97.7933q.0004-3.0881-.047-6.1607z" fill="url(#i)"/><path d="m935.3116 713.0431c-.0918.1764-.1856.3536-.2787.528-5.36 10.0295-13.01 16.7188-23.0094 19.644l19.5365 61.5686q3.88-1.3176 7.5555-2.9589 1.098-.4887 2.1775-1.0062.6225-.298 1.2395-.6049a89.159 89.159 0 0 0 32.6635-28.1691c.539-.7469 1.073-1.5 1.5965-2.2677q.553-.8106 1.0944-1.6362c.1059-.1615.2105-.3226.3158-.485z" fill="url(#j)"/><path d="m899.5853 734.8958a42.6954 42.6954 0 0 1 -17.987-3.5026l-20.0032 63.034c11.2427 3.8411 23.2363 5.572 36.6109 5.572a102.9692 102.9692 0 0 0 33.8892-5.399l-19.5311-61.5476a43.8483 43.8483 0 0 1 -12.9788 1.8432z" fill="url(#k)"/><path d="m859.5578 713.3374q-.1845-.213-.37-.4293l-46.0273 47.87q.1929.2067.386.412c15.9934 17.0436 31.2643 27.6164 48.5844 33.4188l19.9875-62.9874c-7.2991-3.1355-14.3574-8.8181-22.5606-18.2841z" fill="url(#l)"/><path d="m859.1875 712.9081c-13.8065-16.0555-30.8851-42.7869-57.75-86.0134l-35.0088-58.3885-.2812-.4706-40.6217 60.9208.2895.4869 24.8063 41.73c24.0455 40.2379 43.6347 69.3476 62.5391 89.604q.1929.2067.386.412l46.0116-47.8522q-.185-.2127-.3708-.429z" fill="url(#m)"/></svg>
|
|
@@ -14,7 +14,7 @@ Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new
|
|
|
14
14
|
|
|
15
15
|
### What you'll need
|
|
16
16
|
|
|
17
|
-
- [Node.js](https://nodejs.org/en/download/) version 14 or above:
|
|
17
|
+
- [Node.js](https://nodejs.org/en/download/) version 16.14 or above:
|
|
18
18
|
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.
|
|
19
19
|
|
|
20
20
|
## Generate a new site
|
|
@@ -31,4 +31,4 @@ Congratulations, you have made your first post!
|
|
|
31
31
|
Feel free to play around and edit this post as much you like.
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
A new blog post is now available at
|
|
34
|
+
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
|
|
@@ -12,7 +12,7 @@ Documents are **groups of pages** connected through:
|
|
|
12
12
|
|
|
13
13
|
## Create your first Doc
|
|
14
14
|
|
|
15
|
-
Create a
|
|
15
|
+
Create a Markdown file at `docs/hello.md`:
|
|
16
16
|
|
|
17
17
|
```md title="docs/hello.md"
|
|
18
18
|
# Hello
|
|
@@ -20,7 +20,7 @@ Create a markdown file at `docs/hello.md`:
|
|
|
20
20
|
This is my **first Docusaurus document**!
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
A new document is now available at
|
|
23
|
+
A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
|
|
24
24
|
|
|
25
25
|
## Configure the Sidebar
|
|
26
26
|
|
|
@@ -6,9 +6,9 @@ sidebar_position: 1
|
|
|
6
6
|
|
|
7
7
|
Add **Markdown or React** files to `src/pages` to create a **standalone page**:
|
|
8
8
|
|
|
9
|
-
- `src/pages/index.js`
|
|
10
|
-
- `src/pages/foo.md`
|
|
11
|
-
- `src/pages/foo/bar.js`
|
|
9
|
+
- `src/pages/index.js` → `localhost:3000/`
|
|
10
|
+
- `src/pages/foo.md` → `localhost:3000/foo`
|
|
11
|
+
- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
|
|
12
12
|
|
|
13
13
|
## Create your first React Page
|
|
14
14
|
|
|
@@ -28,7 +28,7 @@ export default function MyReactPage() {
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
A new page is now available at
|
|
31
|
+
A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
|
|
32
32
|
|
|
33
33
|
## Create your first Markdown Page
|
|
34
34
|
|
|
@@ -40,4 +40,4 @@ Create a file at `src/pages/my-markdown-page.md`:
|
|
|
40
40
|
This is a Markdown page
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
A new page is now available at
|
|
43
|
+
A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
|
|
@@ -26,6 +26,6 @@ Test your production build locally:
|
|
|
26
26
|
npm run serve
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
The `build` folder is now served at
|
|
29
|
+
The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
|
|
30
30
|
|
|
31
31
|
You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
|
|
@@ -39,7 +39,7 @@ Start your site on the French locale:
|
|
|
39
39
|
npm run start -- --locale fr
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
Your localized site is accessible at
|
|
42
|
+
Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated.
|
|
43
43
|
|
|
44
44
|
:::caution
|
|
45
45
|
|
|
Binary file
|