or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

command-execution.mdconfiguration-management.mdindex.mdversion-management.md
tile.json

tessl/npm-gitbook-cli

CLI to generate books and documentation using gitbook

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/gitbook-cli@2.3.x

To install, run

npx @tessl/cli install tessl/npm-gitbook-cli@2.3.0

index.mddocs/

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[];
}