CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-gitbook-cli

CLI to generate books and documentation using gitbook

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

GitBook CLI

GitBook CLI is a command-line interface tool that manages GitBook versions and proxies commands to specific GitBook installations. It provides comprehensive version management capabilities and acts as a launcher for different GitBook versions, ensuring compatibility across different projects and GitBook releases.

Package Information

  • Package Name: gitbook-cli
  • Package Type: npm
  • Language: JavaScript (Node.js)
  • Installation: npm install -g gitbook-cli

Core Imports

For programmatic usage (library mode):

const manager = require('gitbook-cli');

For modular imports:

const config = require('gitbook-cli/lib/config');
const local = require('gitbook-cli/lib/local');
const registry = require('gitbook-cli/lib/registry');
const tags = require('gitbook-cli/lib/tags');
const commands = require('gitbook-cli/lib/commands');

Basic Usage

CLI Usage

# Install GitBook CLI globally
npm install -g gitbook-cli

# List installed versions
gitbook ls

# Install latest GitBook version
gitbook fetch

# Build a GitBook project
gitbook build ./my-book

# Serve a GitBook project
gitbook serve ./my-book

# Use specific GitBook version
gitbook build ./my-book --gitbook=2.6.7

Programmatic Usage

const manager = require('gitbook-cli');

// Initialize GitBook CLI
manager.init();

// Ensure specific version is available
manager.ensure(process.cwd(), '2.6.7')
  .then(function(version) {
    console.log('GitBook version ready:', version.version);
  });

// List local versions
const versions = manager.versions();
versions.forEach(v => console.log(v.name, v.version));

Architecture

GitBook CLI is built around several key components:

  • Version Manager: Core system for installing, managing, and resolving GitBook versions
  • Registry Interface: NPM registry communication for version discovery and installation
  • Local Version Storage: File system management of installed GitBook versions in ~/.gitbook
  • Command Proxy: Transparent command forwarding to appropriate GitBook version
  • Configuration System: Environment-aware configuration with customizable storage locations

Capabilities

Version Management

Complete GitBook version lifecycle management including installation, removal, listing, and resolution. Supports semantic versioning, pre-release tags, and local development aliases.

// Core version management functions from main module
function ensure(bookRoot, version, opts): Promise<VersionObject>;
function get(bookRoot, version): Promise<VersionObject>;
function getBookVersion(bookRoot): string;
function load(version): Promise<GitBookInstance>;
function ensureAndLoad(bookRoot, version, opts): Promise<GitBookInstance>;
function install(version): Promise<string>;
function uninstall(version): Promise<void>;
function link(name, folder): Promise<void>;
function versions(): VersionObject[];
function available(): Promise<AvailableVersions>;
function update(tag): Promise<string | null>;

Version Management

Command Execution

Command discovery, validation, and execution system that proxies GitBook commands to the appropriate version while handling argument parsing and error reporting.

// Command execution functions (from commands module)
function exec(commands, command, args, kwargs): Promise<any>;
function help(commands): void;

Command Execution

Configuration Management

Environment-aware configuration system supporting custom installation directories and initialization of required folder structures.

// Configuration functions
function init(): void;
function setRoot(root): void;

// Configuration constants
const GITBOOK_VERSION: string; // '>1.x.x'
const ROOT: string;
const VERSIONS_ROOT: string;

Configuration Management

Version Tag Utilities

Version validation, comparison, and tag management utilities for GitBook version handling.

// Version tag utilities (from tags module)
function isTag(version): boolean;
function isValid(version): boolean;
function sort(a, b): number;
function satisfies(version, condition, opts): boolean;
function getTag(version): string;

Types

interface VersionObject {
  name: string;        // Version name/tag
  version: string;     // Semantic version
  path: string;        // Installation path
  link: string | null; // Symlink target for aliases
  tag: string;         // Release tag (latest, beta, etc.)
}

interface AvailableVersions {
  versions: string[];  // Array of available versions
  tags: object;        // Map of tag names to versions
}

interface ValidationOptions {
  install?: boolean;            // Auto-install if missing
  acceptTagCondition?: boolean; // Accept tag conditions
}

interface GitBookInstance {
  commands: Command[];
  [key: string]: any;
}

interface Command {
  name: string;
  description: string;
  options?: CommandOption[];
  exec: (args: string[], kwargs: object) => Promise<any>;
}

interface CommandOption {
  name: string;
  description: string;
  defaults?: any;
  values?: string[];
}
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/gitbook-cli@2.3.x
Publish Source
CLI
Badge
tessl/npm-gitbook-cli badge