@knowcode/doc-builder 1.2.12 ā 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +4 -6
- package/assets/css/notion-style.css +2 -2
- package/assets/css/style.css +2 -2
- package/cli.js +13 -84
- package/package.json +1 -1
- package/scripts/npx-runner.js +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,34 @@ All notable changes to @knowcode/doc-builder will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.3.1] - 2025-07-19
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Reduced excessive top spacing from ~104px to 80px total
|
|
12
|
+
- Adjusted header height from 64px to 50px
|
|
13
|
+
- Adjusted breadcrumb height from 40px to 30px
|
|
14
|
+
- Applied changes to both style.css and notion-style.css for consistency
|
|
15
|
+
|
|
16
|
+
### Improved
|
|
17
|
+
- More compact header design for better content visibility
|
|
18
|
+
- Better use of vertical space on all screen sizes
|
|
19
|
+
|
|
20
|
+
## [1.3.0] - 2025-07-19
|
|
21
|
+
|
|
22
|
+
### BREAKING CHANGE
|
|
23
|
+
- **Default behavior changed**: Running `npx @knowcode/doc-builder` without arguments now shows help instead of building and deploying
|
|
24
|
+
- To deploy, explicitly use: `npx @knowcode/doc-builder deploy`
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- Updated TL;DR in help text to show `npx @knowcode/doc-builder deploy`
|
|
28
|
+
- Reordered commands in help to show deploy as the recommended action
|
|
29
|
+
- Updated README.md to reflect the new default behavior
|
|
30
|
+
|
|
31
|
+
### Why this change?
|
|
32
|
+
- Prevents accidental deployments when users just want to see available commands
|
|
33
|
+
- Makes the tool more predictable - no actions without explicit commands
|
|
34
|
+
- Aligns with standard CLI tool behavior
|
|
35
|
+
|
|
8
36
|
## [1.2.12] - 2025-07-19
|
|
9
37
|
|
|
10
38
|
### Added
|
package/README.md
CHANGED
|
@@ -31,17 +31,15 @@ Perfect for project documentation, API references, knowledge bases, or any conte
|
|
|
31
31
|
No installation needed! Just run:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
# Build and deploy to Vercel
|
|
35
|
-
npx @knowcode/doc-builder
|
|
34
|
+
# Build and deploy to Vercel
|
|
35
|
+
npx @knowcode/doc-builder deploy
|
|
36
36
|
|
|
37
|
-
#
|
|
37
|
+
# Other available commands:
|
|
38
38
|
npx @knowcode/doc-builder build # Build HTML files only
|
|
39
39
|
npx @knowcode/doc-builder dev # Start development server
|
|
40
|
-
npx @knowcode/doc-builder
|
|
40
|
+
npx @knowcode/doc-builder # Show help (default behavior)
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
The default action (no command specified) will build your documentation and deploy it to Vercel.
|
|
44
|
-
|
|
45
43
|
## Installation (Optional)
|
|
46
44
|
|
|
47
45
|
For faster execution and offline use:
|
package/assets/css/style.css
CHANGED
package/cli.js
CHANGED
|
@@ -15,11 +15,6 @@ const { execSync } = require('child_process');
|
|
|
15
15
|
// Package info
|
|
16
16
|
const packageJson = require('./package.json');
|
|
17
17
|
|
|
18
|
-
// Default to build command if no args provided
|
|
19
|
-
if (process.argv.length === 2) {
|
|
20
|
-
process.argv.push('build');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
18
|
program
|
|
24
19
|
.name('doc-builder')
|
|
25
20
|
.description(packageJson.description)
|
|
@@ -27,7 +22,7 @@ program
|
|
|
27
22
|
.addHelpText('before', `
|
|
28
23
|
${chalk.cyan('š @knowcode/doc-builder')} - Transform your markdown into beautiful documentation sites
|
|
29
24
|
|
|
30
|
-
${chalk.bgGreen.black(' TL;DR ')} ${chalk.green('Just run:')} ${chalk.cyan.bold('npx @knowcode/doc-builder')} ${chalk.green('ā Your docs are live on Vercel!')}
|
|
25
|
+
${chalk.bgGreen.black(' TL;DR ')} ${chalk.green('Just run:')} ${chalk.cyan.bold('npx @knowcode/doc-builder deploy')} ${chalk.green('ā Your docs are live on Vercel!')}
|
|
31
26
|
|
|
32
27
|
${chalk.gray('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā')}
|
|
33
28
|
|
|
@@ -36,7 +31,7 @@ ${chalk.yellow('What it does:')}
|
|
|
36
31
|
⢠Automatically generates navigation from your folder structure
|
|
37
32
|
⢠Supports mermaid diagrams, syntax highlighting, and dark mode
|
|
38
33
|
⢠Deploys to Vercel with one command (zero configuration)
|
|
39
|
-
⢠${chalk.green.bold('NEW:')}
|
|
34
|
+
⢠${chalk.green.bold('NEW:')} Shows help by default, use 'deploy' to publish (v1.3.0+)
|
|
40
35
|
⢠Optional authentication to protect private documentation
|
|
41
36
|
|
|
42
37
|
${chalk.yellow('Requirements:')}
|
|
@@ -50,8 +45,8 @@ ${chalk.yellow('Quick Start:')}
|
|
|
50
45
|
${chalk.gray('$')} echo "# My Documentation" > docs/README.md
|
|
51
46
|
|
|
52
47
|
${chalk.cyan('2. Build and deploy:')}
|
|
53
|
-
${chalk.gray('$')} npx @knowcode/doc-builder ${chalk.gray('#
|
|
54
|
-
${chalk.gray('
|
|
48
|
+
${chalk.gray('$')} npx @knowcode/doc-builder ${chalk.gray('# Show help and available commands')}
|
|
49
|
+
${chalk.gray('$')} npx @knowcode/doc-builder deploy ${chalk.gray('# Build and deploy to production')}
|
|
55
50
|
${chalk.gray('$')} npx @knowcode/doc-builder build ${chalk.gray('# Build HTML files only')}
|
|
56
51
|
${chalk.gray('$')} npx @knowcode/doc-builder dev ${chalk.gray('# Start development server')}
|
|
57
52
|
|
|
@@ -186,10 +181,10 @@ ${chalk.yellow('First-time Vercel Setup:')}
|
|
|
186
181
|
⢠Under "Deployment Protection", set to ${chalk.yellow('Disabled')}
|
|
187
182
|
⢠This allows public access to your docs
|
|
188
183
|
|
|
189
|
-
${chalk.yellow('Deployment Behavior
|
|
184
|
+
${chalk.yellow('Deployment Behavior:')}
|
|
190
185
|
${chalk.green.bold('šÆ DEFAULT: All deployments go to PRODUCTION')}
|
|
191
186
|
|
|
192
|
-
${chalk.gray('$')} npx @knowcode/doc-builder ${chalk.gray('# ā
|
|
187
|
+
${chalk.gray('$')} npx @knowcode/doc-builder ${chalk.gray('# ā Shows help (v1.3.0+)')}
|
|
193
188
|
${chalk.gray('$')} npx @knowcode/doc-builder deploy ${chalk.gray('# ā yourdocs.vercel.app')}
|
|
194
189
|
${chalk.gray('$')} npx @knowcode/doc-builder deploy --no-prod ${chalk.gray('# ā preview URL only')}
|
|
195
190
|
|
|
@@ -476,77 +471,11 @@ ${chalk.yellow('What gets created:')}
|
|
|
476
471
|
}
|
|
477
472
|
});
|
|
478
473
|
|
|
479
|
-
// Add a default command handler for when doc-builder is run without arguments
|
|
480
|
-
program
|
|
481
|
-
.action(async () => {
|
|
482
|
-
// Default action is build + deploy to production
|
|
483
|
-
console.log(chalk.cyan('\nš Building and deploying your documentation to production...\n'));
|
|
484
|
-
|
|
485
|
-
try {
|
|
486
|
-
// Build first
|
|
487
|
-
const config = await loadConfig('doc-builder.config.js', { legacy: true });
|
|
488
|
-
const buildSpinner = ora('Building documentation...').start();
|
|
489
|
-
await build(config);
|
|
490
|
-
buildSpinner.succeed('Documentation built successfully!');
|
|
491
|
-
|
|
492
|
-
// Then deploy
|
|
493
|
-
const deploySpinner = ora('Deploying to Vercel...').start();
|
|
494
|
-
|
|
495
|
-
// Check if this is the first deployment
|
|
496
|
-
const vercelProjectPath = path.join(outputPath, '.vercel', 'project.json');
|
|
497
|
-
if (!fs.existsSync(vercelProjectPath)) {
|
|
498
|
-
deploySpinner.stop();
|
|
499
|
-
console.log(chalk.yellow('\nš First time deploying to Vercel!\n'));
|
|
500
|
-
|
|
501
|
-
// Show critical warning about Root Directory
|
|
502
|
-
console.log(chalk.bgRed.white.bold('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
503
|
-
console.log(chalk.bgRed.white.bold(' ā ļø CRITICAL WARNING - READ BEFORE CONTINUING! '));
|
|
504
|
-
console.log(chalk.bgRed.white.bold('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n'));
|
|
505
|
-
|
|
506
|
-
console.log(chalk.yellow.bold('During setup, if Vercel asks about Root Directory:'));
|
|
507
|
-
console.log(chalk.red.bold('⢠LEAVE IT EMPTY (blank)'));
|
|
508
|
-
console.log(chalk.red.bold('⢠DO NOT ENTER "html"'));
|
|
509
|
-
console.log(chalk.red.bold('⢠We are ALREADY deploying from the html folder!\n'));
|
|
510
|
-
|
|
511
|
-
const setupConfirm = await prompts({
|
|
512
|
-
type: 'confirm',
|
|
513
|
-
name: 'value',
|
|
514
|
-
message: 'Would you like to set up a new Vercel project?',
|
|
515
|
-
initial: true
|
|
516
|
-
});
|
|
517
|
-
|
|
518
|
-
if (setupConfirm.value) {
|
|
519
|
-
await setupVercelProject(config);
|
|
520
|
-
} else {
|
|
521
|
-
console.log(chalk.gray('\nTo deploy manually, run: vercel'));
|
|
522
|
-
console.log(chalk.gray('To skip deployment, run: doc-builder build\n'));
|
|
523
|
-
process.exit(0);
|
|
524
|
-
}
|
|
525
|
-
deploySpinner.start('Deploying to Vercel...');
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
// Default to production deployment
|
|
529
|
-
const url = await deployToVercel(config, true);
|
|
530
|
-
deploySpinner.succeed(`Deployed successfully!`);
|
|
531
|
-
|
|
532
|
-
// Extract project name from URL
|
|
533
|
-
const projectName = url.match(/https:\/\/([^-]+)/)?.[1] || 'your-project';
|
|
534
|
-
|
|
535
|
-
console.log(chalk.green('\nā
Deployment Complete!\n'));
|
|
536
|
-
console.log(chalk.yellow('š Your documentation is live at:'));
|
|
537
|
-
console.log(chalk.cyan.bold(` ${projectName}.vercel.app`) + chalk.gray(' (Production URL - share this!)'));
|
|
538
|
-
console.log();
|
|
539
|
-
console.log(chalk.gray('This deployment also created a unique preview URL:'));
|
|
540
|
-
console.log(chalk.gray(` ${url}`));
|
|
541
|
-
console.log(chalk.gray(' (This URL is specific to this deployment)'));
|
|
542
|
-
console.log();
|
|
543
|
-
|
|
544
|
-
} catch (error) {
|
|
545
|
-
console.error(chalk.red('\nError: ' + error.message));
|
|
546
|
-
console.log(chalk.gray('\nTo build without deploying, run: doc-builder build'));
|
|
547
|
-
process.exit(1);
|
|
548
|
-
}
|
|
549
|
-
});
|
|
550
|
-
|
|
551
474
|
// Parse arguments
|
|
552
|
-
program.parse(process.argv);
|
|
475
|
+
program.parse(process.argv);
|
|
476
|
+
|
|
477
|
+
// Show help if no command was provided
|
|
478
|
+
if (!process.argv.slice(2).length) {
|
|
479
|
+
program.outputHelp();
|
|
480
|
+
process.exit(0);
|
|
481
|
+
}
|
package/package.json
CHANGED
package/scripts/npx-runner.js
CHANGED
|
@@ -9,14 +9,14 @@ const { execSync } = require('child_process');
|
|
|
9
9
|
const path = require('path');
|
|
10
10
|
const fs = require('fs');
|
|
11
11
|
|
|
12
|
-
// Get the command from arguments
|
|
13
|
-
const [,,
|
|
12
|
+
// Get the command from arguments - no default command
|
|
13
|
+
const [,, ...args] = process.argv;
|
|
14
14
|
|
|
15
15
|
// Path to the actual CLI
|
|
16
16
|
const cliPath = path.join(__dirname, '..', 'cli.js');
|
|
17
17
|
|
|
18
|
-
// Build the command
|
|
19
|
-
const fullCommand = `node "${cliPath}" ${
|
|
18
|
+
// Build the command - pass all arguments through
|
|
19
|
+
const fullCommand = `node "${cliPath}" ${args.join(' ')}`;
|
|
20
20
|
|
|
21
21
|
try {
|
|
22
22
|
// Execute the CLI with stdio inherited to preserve colors and interactivity
|