docus 1.0.7 → 3.0.0-beta.2
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/README.md +9 -22
- package/app/router.options.ts +18 -0
- package/assets/css/fonts.css +84 -0
- package/assets/css/main.css +11 -0
- package/assets/css/tailwind.css +282 -0
- package/components/app/Container.vue +25 -0
- package/components/app/Footer.vue +40 -0
- package/components/app/Navbar.vue +26 -0
- package/components/app/NavbarLogo.vue +33 -0
- package/components/app/Page.vue +7 -0
- package/components/app/PoweredByDocus.vue +11 -0
- package/components/content/Alert.vue +124 -0
- package/components/content/BlockHero.vue +54 -0
- package/components/content/ButtonLink.vue +45 -0
- package/components/content/Card.vue +46 -0
- package/components/content/CardGrid.vue +23 -0
- package/components/content/CodeBlock.vue +47 -0
- package/components/content/CodeGroup.vue +135 -0
- package/components/content/CopyButton.vue +49 -0
- package/components/content/List.vue +5 -0
- package/components/content/NeedContribution.vue +23 -0
- package/components/content/ReadMore.vue +25 -0
- package/components/content/Sandbox.vue +102 -0
- package/components/content/TabsHeader.vue +44 -0
- package/components/content/Terminal.vue +64 -0
- package/components/content/VideoPlayer.vue +115 -0
- package/components/docs/DocsAside.vue +21 -0
- package/components/docs/DocsAsideTree.vue +102 -0
- package/components/docs/DocsHero.vue +39 -0
- package/components/docs/DocsPage.vue +22 -0
- package/components/docs/DocsPageContent.vue +31 -0
- package/components/docs/DocsToc.vue +74 -0
- package/components/globals/Icon.vue +24 -0
- package/components/globals/Logo.vue +3 -0
- package/components/globals/NuxtImg.vue +45 -0
- package/components/globals/SocialIcons.vue +45 -0
- package/components/globals/ThemeSelect.vue +35 -0
- package/components/icons/IconAlgolia.vue +8 -0
- package/components/icons/IconArrowLeft.vue +10 -0
- package/components/icons/IconArrowRight.vue +10 -0
- package/components/icons/IconBadgeCheck.vue +14 -0
- package/components/icons/IconCheck.vue +10 -0
- package/components/icons/IconCheckCircle.vue +10 -0
- package/components/icons/IconChevronRight.vue +12 -0
- package/components/icons/IconClipboardCheck.vue +14 -0
- package/components/icons/IconClipboardCopy.vue +14 -0
- package/components/icons/IconCodeSandbox.vue +8 -0
- package/components/icons/IconCopy.vue +17 -0
- package/components/icons/IconDots.vue +10 -0
- package/components/icons/IconEdit.vue +18 -0
- package/components/icons/IconExclamationCircle.vue +12 -0
- package/components/icons/IconExclamationTriangle.vue +10 -0
- package/components/icons/IconExternalLink.vue +12 -0
- package/components/icons/IconGit.vue +7 -0
- package/components/icons/IconGitHub.vue +10 -0
- package/components/icons/IconHeart.vue +9 -0
- package/components/icons/IconInformationCircle.vue +10 -0
- package/components/icons/IconLighthouse.vue +83 -0
- package/components/icons/IconLine.vue +10 -0
- package/components/icons/IconMarkdown.vue +13 -0
- package/components/icons/IconMenu.vue +12 -0
- package/components/icons/IconMenuAlt.vue +10 -0
- package/components/icons/IconMinus.vue +10 -0
- package/components/icons/IconMoon.vue +10 -0
- package/components/icons/IconNuxt.vue +14 -0
- package/components/icons/IconNuxtContent.vue +20 -0
- package/components/icons/IconNuxtLabs.vue +21 -0
- package/components/icons/IconPlus.vue +10 -0
- package/components/icons/IconPuzzle.vue +8 -0
- package/components/icons/IconSSG.vue +7 -0
- package/components/icons/IconSearch.vue +12 -0
- package/components/icons/IconSun.vue +10 -0
- package/components/icons/IconTocBack.vue +21 -0
- package/components/icons/IconTocCurrent.vue +21 -0
- package/components/icons/IconTocNext.vue +8 -0
- package/components/icons/IconTranslate.vue +14 -0
- package/components/icons/IconTwitter.vue +8 -0
- package/components/icons/IconVite.vue +30 -0
- package/components/icons/IconVue.vue +6 -0
- package/components/icons/IconVueTelescope.vue +11 -0
- package/components/icons/IconWindi.vue +17 -0
- package/components/icons/IconX.vue +12 -0
- package/components/icons/IconXCircle.vue +10 -0
- package/components/icons/IconZap.vue +8 -0
- package/components/prose/ProseA.vue +66 -0
- package/components/prose/ProseBlockquote.vue +21 -0
- package/components/prose/ProseCode.vue +68 -0
- package/components/prose/ProseCodeInline.vue +38 -0
- package/components/prose/ProseEm.vue +11 -0
- package/components/prose/ProseH1.vue +22 -0
- package/components/prose/ProseH2.vue +22 -0
- package/components/prose/ProseH3.vue +24 -0
- package/components/prose/ProseH4.vue +24 -0
- package/components/prose/ProseHr.vue +13 -0
- package/components/prose/ProseImg.vue +30 -0
- package/components/prose/ProseLi.vue +31 -0
- package/components/prose/ProseOl.vue +16 -0
- package/components/prose/ProseP.vue +14 -0
- package/components/prose/ProseStrong.vue +14 -0
- package/components/prose/ProseTable.vue +13 -0
- package/components/prose/ProseTbody.vue +5 -0
- package/components/prose/ProseTd.vue +11 -0
- package/components/prose/ProseTh.vue +11 -0
- package/components/prose/ProseThead.vue +11 -0
- package/components/prose/ProseTr.vue +11 -0
- package/components/prose/ProseUl.vue +15 -0
- package/composables/useContent.ts +156 -0
- package/composables/useMenu.ts +22 -0
- package/composables/useScrollToHeading.ts +35 -0
- package/composables/useScrollspy.ts +46 -0
- package/composables/useTheme.ts +12 -0
- package/layouts/default.vue +29 -0
- package/layouts/page.vue +11 -0
- package/nuxt.config.ts +151 -0
- package/package.json +45 -63
- package/pages/[...slug].vue +26 -0
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/site.webmanifest +1 -0
- package/dist/create-docus/create-docus.js +0 -7
- package/dist/create-docus/helpers.js +0 -244
- package/dist/create-docus/index.js +0 -87
- package/dist/index.js +0 -10
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getProjectType = getProjectType;
|
|
7
|
-
exports.getTemplate = getTemplate;
|
|
8
|
-
exports.createDir = createDir;
|
|
9
|
-
exports.getValidPackageName = getValidPackageName;
|
|
10
|
-
exports.getTargetDir = getTargetDir;
|
|
11
|
-
exports.createProject = createProject;
|
|
12
|
-
exports.log = exports.pkgManager = exports.args = exports.cwd = void 0;
|
|
13
|
-
|
|
14
|
-
var _package = require("../../package.json");
|
|
15
|
-
|
|
16
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
17
|
-
|
|
18
|
-
var _path = _interopRequireDefault(require("path"));
|
|
19
|
-
|
|
20
|
-
var _kolorist = require("kolorist");
|
|
21
|
-
|
|
22
|
-
var _minimist = _interopRequireDefault(require("minimist"));
|
|
23
|
-
|
|
24
|
-
var _prompts = _interopRequireDefault(require("prompts"));
|
|
25
|
-
|
|
26
|
-
var _degit = _interopRequireDefault(require("degit"));
|
|
27
|
-
|
|
28
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
-
|
|
30
|
-
const cwd = process.cwd();
|
|
31
|
-
exports.cwd = cwd;
|
|
32
|
-
const args = (0, _minimist.default)(process.argv.slice(2));
|
|
33
|
-
exports.args = args;
|
|
34
|
-
const pkgManager = /pnpm/.test(process.env.npm_execpath || "") || /pnpm/.test(process.env.npm_config_user_agent || "") ? "pnpm" : /yarn/.test(process.env.npm_execpath || "") ? "yarn" : "npm";
|
|
35
|
-
exports.pkgManager = pkgManager;
|
|
36
|
-
const log = {
|
|
37
|
-
space: () => console.log(),
|
|
38
|
-
bold: str => (0, _kolorist.bold)(str),
|
|
39
|
-
primary: str => (0, _kolorist.green)(str),
|
|
40
|
-
secondary: str => (0, _kolorist.dim)(str),
|
|
41
|
-
warning: str => (0, _kolorist.yellow)(str),
|
|
42
|
-
error: str => (0, _kolorist.red)(str),
|
|
43
|
-
broadcast: str => console.log(` ${str}`),
|
|
44
|
-
motd: () => {
|
|
45
|
-
log.space();
|
|
46
|
-
log.broadcast(`${(0, _kolorist.bold)("Docus") + log.secondary(" CLI")} ${log.primary(`v${_package.version}`)}`);
|
|
47
|
-
log.space();
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
exports.log = log;
|
|
51
|
-
const REPOSITORIES = {
|
|
52
|
-
website: "git@github.com:docusgen/starter.git",
|
|
53
|
-
theme: "git@github.com:docusgen/theme-starter.git",
|
|
54
|
-
module: "git@github.com:docusgen/module-starter.git"
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
function copyDir(srcDir, destDir) {
|
|
58
|
-
_fs.default.mkdirSync(destDir, {
|
|
59
|
-
recursive: true
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
for (const file of _fs.default.readdirSync(srcDir)) {
|
|
63
|
-
const srcFile = _path.default.resolve(srcDir, file);
|
|
64
|
-
|
|
65
|
-
const destFile = _path.default.resolve(destDir, file);
|
|
66
|
-
|
|
67
|
-
copy(srcFile, destFile);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function emptyDir(dir) {
|
|
72
|
-
if (!_fs.default.existsSync(dir)) return;
|
|
73
|
-
|
|
74
|
-
for (const file of _fs.default.readdirSync(dir)) {
|
|
75
|
-
const abs = _path.default.resolve(dir, file);
|
|
76
|
-
|
|
77
|
-
if (_fs.default.lstatSync(abs).isDirectory()) {
|
|
78
|
-
emptyDir(abs);
|
|
79
|
-
|
|
80
|
-
_fs.default.rmdirSync(abs);
|
|
81
|
-
} else {
|
|
82
|
-
_fs.default.unlinkSync(abs);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function copy(src, dest) {
|
|
88
|
-
const stat = _fs.default.statSync(src);
|
|
89
|
-
|
|
90
|
-
if (stat.isDirectory()) copyDir(src, dest);else _fs.default.copyFileSync(src, dest);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function getProjectType() {
|
|
94
|
-
switch (args["type"]) {
|
|
95
|
-
case "theme":
|
|
96
|
-
return "theme";
|
|
97
|
-
|
|
98
|
-
case "module":
|
|
99
|
-
return "module";
|
|
100
|
-
|
|
101
|
-
default:
|
|
102
|
-
return "website";
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async function getTemplate(projectType) {
|
|
107
|
-
const {
|
|
108
|
-
broadcast,
|
|
109
|
-
primary,
|
|
110
|
-
secondary
|
|
111
|
-
} = log;
|
|
112
|
-
|
|
113
|
-
const templateDir = _path.default.join(__dirname, "./template");
|
|
114
|
-
|
|
115
|
-
broadcast([secondary("Cloning the latest"), primary(projectType === "website" ? "Docus" : projectType), secondary("template...")].join(" "));
|
|
116
|
-
emptyDir(templateDir);
|
|
117
|
-
const projectRepository = REPOSITORIES[projectType];
|
|
118
|
-
const repo = (0, _degit.default)(projectRepository, {
|
|
119
|
-
force: true,
|
|
120
|
-
verbose: true,
|
|
121
|
-
mode: "git"
|
|
122
|
-
});
|
|
123
|
-
await repo.clone(templateDir);
|
|
124
|
-
return templateDir;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
async function createDir(targetDir) {
|
|
128
|
-
const projectPath = _path.default.join(cwd, targetDir);
|
|
129
|
-
|
|
130
|
-
const {
|
|
131
|
-
broadcast,
|
|
132
|
-
warning,
|
|
133
|
-
error,
|
|
134
|
-
space,
|
|
135
|
-
secondary
|
|
136
|
-
} = log;
|
|
137
|
-
|
|
138
|
-
if (!_fs.default.existsSync(projectPath)) {
|
|
139
|
-
_fs.default.mkdirSync(projectPath, {
|
|
140
|
-
recursive: true
|
|
141
|
-
});
|
|
142
|
-
} else {
|
|
143
|
-
const existing = _fs.default.readdirSync(projectPath);
|
|
144
|
-
|
|
145
|
-
const dir = projectPath.split("/");
|
|
146
|
-
const dirName = dir[dir.length - 1];
|
|
147
|
-
|
|
148
|
-
if (existing.length) {
|
|
149
|
-
space();
|
|
150
|
-
broadcast(warning(`Target directory "${dirName}" is not empty.`));
|
|
151
|
-
space();
|
|
152
|
-
const {
|
|
153
|
-
yes
|
|
154
|
-
} = await (0, _prompts.default)({
|
|
155
|
-
type: "confirm",
|
|
156
|
-
name: "yes",
|
|
157
|
-
initial: "Y",
|
|
158
|
-
message: "Remove existing files and continue?"
|
|
159
|
-
});
|
|
160
|
-
if (yes) emptyDir(projectPath);else {
|
|
161
|
-
space();
|
|
162
|
-
broadcast(warning(`Target directory is not empty and you do not want to overwrite it.`));
|
|
163
|
-
space();
|
|
164
|
-
broadcast(error(`Cancelling project creation.`));
|
|
165
|
-
process.exit(1);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
space();
|
|
171
|
-
broadcast(secondary("Scaffolding project in ") + targetDir + secondary("..."));
|
|
172
|
-
return projectPath;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
async function getValidPackageName(projectName) {
|
|
176
|
-
projectName = _path.default.basename(projectName);
|
|
177
|
-
const packageNameRegExp = /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
|
|
178
|
-
|
|
179
|
-
if (packageNameRegExp.test(projectName)) {
|
|
180
|
-
return projectName;
|
|
181
|
-
} else {
|
|
182
|
-
const suggestedPackageName = projectName.trim().toLowerCase().replace(/\s+/g, "-").replace(/^[._]/, "").replace(/[^a-z0-9-~]+/g, "-");
|
|
183
|
-
const {
|
|
184
|
-
inputPackageName
|
|
185
|
-
} = await (0, _prompts.default)({
|
|
186
|
-
type: "text",
|
|
187
|
-
name: "inputPackageName",
|
|
188
|
-
message: "Package name:",
|
|
189
|
-
initial: suggestedPackageName,
|
|
190
|
-
validate: input => packageNameRegExp.test(input) ? true : "Invalid package.json name"
|
|
191
|
-
});
|
|
192
|
-
return inputPackageName;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
async function getTargetDir(projectType) {
|
|
197
|
-
const {
|
|
198
|
-
space,
|
|
199
|
-
broadcast,
|
|
200
|
-
error,
|
|
201
|
-
warning
|
|
202
|
-
} = log;
|
|
203
|
-
let targetDir = args._[0];
|
|
204
|
-
|
|
205
|
-
if (!targetDir) {
|
|
206
|
-
const {
|
|
207
|
-
projectName
|
|
208
|
-
} = await (0, _prompts.default)({
|
|
209
|
-
type: "text",
|
|
210
|
-
name: "projectName",
|
|
211
|
-
message: "Project name:",
|
|
212
|
-
initial: `my-${projectType}`
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
if (!projectName) {
|
|
216
|
-
space();
|
|
217
|
-
broadcast(warning(`You must specify a project name.`));
|
|
218
|
-
space();
|
|
219
|
-
broadcast(error(`Cancelling project creation.`));
|
|
220
|
-
process.exit(1);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
targetDir = projectName.trim();
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
return targetDir;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
function createProject(root, templateDir, packageName) {
|
|
230
|
-
const write = (file, content = void 0) => {
|
|
231
|
-
const targetPath = _path.default.join(root, file);
|
|
232
|
-
|
|
233
|
-
if (content) _fs.default.writeFileSync(targetPath, content);else copy(_path.default.join(templateDir, file), targetPath);
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
const files = _fs.default.readdirSync(templateDir);
|
|
237
|
-
|
|
238
|
-
for (const file of files.filter(f => f !== "package.json")) write(file);
|
|
239
|
-
|
|
240
|
-
const pkg = require(_path.default.join(templateDir, "package.json"));
|
|
241
|
-
|
|
242
|
-
pkg.name = packageName;
|
|
243
|
-
write("package.json", JSON.stringify(pkg, null, 2));
|
|
244
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createDocus = createDocus;
|
|
7
|
-
|
|
8
|
-
var _path = require("path");
|
|
9
|
-
|
|
10
|
-
var _prompts = _interopRequireDefault(require("prompts"));
|
|
11
|
-
|
|
12
|
-
var _execa = _interopRequireDefault(require("execa"));
|
|
13
|
-
|
|
14
|
-
var _helpers = require("./helpers");
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
const {
|
|
19
|
-
motd,
|
|
20
|
-
primary,
|
|
21
|
-
secondary,
|
|
22
|
-
warning,
|
|
23
|
-
bold,
|
|
24
|
-
space,
|
|
25
|
-
broadcast
|
|
26
|
-
} = _helpers.log;
|
|
27
|
-
|
|
28
|
-
async function createDocus() {
|
|
29
|
-
motd();
|
|
30
|
-
const projectType = (0, _helpers.getProjectType)();
|
|
31
|
-
const targetDir = await (0, _helpers.getTargetDir)(projectType);
|
|
32
|
-
const packageName = await (0, _helpers.getValidPackageName)(targetDir);
|
|
33
|
-
const projectPath = await (0, _helpers.createDir)(targetDir);
|
|
34
|
-
const templateDir = await (0, _helpers.getTemplate)(projectType);
|
|
35
|
-
(0, _helpers.createProject)(projectPath, templateDir, packageName);
|
|
36
|
-
broadcast(primary("Done."));
|
|
37
|
-
space();
|
|
38
|
-
const {
|
|
39
|
-
yes
|
|
40
|
-
} = await (0, _prompts.default)({
|
|
41
|
-
type: "confirm",
|
|
42
|
-
name: "yes",
|
|
43
|
-
initial: "Y",
|
|
44
|
-
message: "Install and start it now?"
|
|
45
|
-
});
|
|
46
|
-
if (yes) await startProject(projectPath);else startItLater(projectPath);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async function startProject(projectPath) {
|
|
50
|
-
space();
|
|
51
|
-
const {
|
|
52
|
-
agent
|
|
53
|
-
} = await (0, _prompts.default)({
|
|
54
|
-
name: "agent",
|
|
55
|
-
type: "select",
|
|
56
|
-
message: "Choose the agent",
|
|
57
|
-
choices: ["yarn", "npm", "pnpm"].map(i => ({
|
|
58
|
-
value: i,
|
|
59
|
-
title: i
|
|
60
|
-
}))
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
if (!agent) {
|
|
64
|
-
space();
|
|
65
|
-
broadcast(warning(`You cancelled the agent selection!`));
|
|
66
|
-
return startItLater(projectPath);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
await (0, _execa.default)(agent, ["install"], {
|
|
70
|
-
stdio: "inherit",
|
|
71
|
-
cwd: projectPath
|
|
72
|
-
});
|
|
73
|
-
await (0, _execa.default)(agent, ["run", "dev"], {
|
|
74
|
-
stdio: "inherit",
|
|
75
|
-
cwd: projectPath
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function startItLater(projectPath) {
|
|
80
|
-
space();
|
|
81
|
-
broadcast(secondary("Start it later with:"));
|
|
82
|
-
space();
|
|
83
|
-
const dir = (0, _path.relative)(_helpers.cwd, projectPath);
|
|
84
|
-
if (projectPath !== _helpers.cwd) broadcast(primary(`cd ${bold(dir)}`));
|
|
85
|
-
broadcast(primary(`${_helpers.pkgManager === "yarn" ? "yarn" : `${_helpers.pkgManager} install`}`));
|
|
86
|
-
broadcast(primary(`${_helpers.pkgManager === "yarn" ? "yarn dev" : `${_helpers.pkgManager} run dev`}`));
|
|
87
|
-
}
|