Skip to content

Ortus-Solutions/DocBox

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

340 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

All Contributors Latest release

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•—
β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β•β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•

πŸ“š DocBox - API Documentation Generator

DocBox is a JavaDoc-style documentation generator for BoxLang and CFML codebases, featuring modern HTML themes, JSON output, and UML diagram generation.

πŸ“– Documentation | πŸ’» GitHub | πŸ’¬ Ortus Community


✨ Features

  • 🎨 Modern HTML Documentation - Two professional themes with dark mode support
  • πŸ” Real-time Search - Live method filtering with keyboard navigation
  • πŸ“‹ Multiple Output Formats - HTML, JSON, and XMI/UML diagrams
  • 🦀 BoxLang Native - First-class BoxLang runtime and CLI support
  • πŸ“ JavaDoc Compatible - Standard JavaDoc comment block parsing
  • ⚑ Alpine.js SPA - Fast, modern single-page application interface
  • πŸŒ“ Dark Mode - System preference detection with manual toggle

πŸš€ Quick Start

BoxLang Module (Recommended)

Install DocBox as a BoxLang module for CLI access:

# CommandBox web runtimes
box install bx-docbox

# BoxLang OS runtime
install-bx-module bx-docbox

Generate documentation from the command line:

boxlang module:docbox --source=/path/to/code \
                       --mapping=myapp \
                       --output-dir=/docs \
                       --project-title="My API"

CFML Library

Install as a development dependency:

box install docbox --saveDev

Use programmatically in your build scripts:

new docbox.DocBox()
    .addStrategy( "HTML", {
        projectTitle : "My API Docs",
        outputDir    : expandPath( "./docs" ),
        theme        : "default"  // or "frames"
    })
    .generate(
        source   = expandPath( "./models" ),
        mapping  = "models",
        excludes = "(tests|build)"
    );

πŸ“¦ Installation Options

Method Command Use Case
BoxLang Module box install bx-docbox CLI usage, BoxLang projects
CFML Library box install docbox --saveDev Programmatic use, build scripts
CommandBox Module box install commandbox-docbox Task runner, automated builds

🎨 Modern Themes

Default Theme (Alpine.js SPA)

  • ⚑ Client-side routing and dynamic filtering
  • πŸŒ“ Dark mode with localStorage persistence
  • πŸ” Real-time method search
  • πŸ“‘ Method tabs (All/Public/Private/Static/Abstract)
  • πŸ’œ Modern purple gradient design

Frames Theme (Traditional)

  • πŸ—‚οΈ Classic frameset layout
  • πŸ“š jstree navigation sidebar
  • 🎯 Bootstrap 5 styling
  • πŸ“± Mobile-friendly design

πŸ’» System Requirements

  • BoxLang 1.0+ or CFML Engine (Lucee 5+, Adobe ColdFusion 2023+)
  • CommandBox (for installation and CLI usage)

πŸ“š Output Formats

Format Description Use Case
HTML Modern browsable documentation Developer reference, public API docs
JSON Machine-readable structured data Integration with other tools, custom processing
XMI UML diagram generation Architecture diagrams, visual documentation

πŸ› οΈ CLI Examples

BoxLang Module CLI

# Basic usage
boxlang module:docbox --source=/src --mapping=app --output-dir=/docs

# Multiple source mappings
boxlang module:docbox --mappings:v1=/src/v1 --mappings:v2=/src/v2 -o=/docs

# With theme selection
boxlang module:docbox --source=/src --mapping=app --theme=frames -o=/docs

# Show help
boxlang module:docbox --help

CommandBox Task Runner

Install the commandbox-docbox module:

box install commandbox-docbox

Generate documentation using CommandBox commands:

# Generate HTML docs
box docbox generate source=/path/to/code mapping=myapp outputDir=/docs

# Generate with excludes
box docbox generate source=/src mapping=app outputDir=/docs excludes=(tests|build)

# Generate JSON docs
box docbox generate source=/src mapping=app outputDir=/docs strategy=JSON

# Show help
box docbox generate help

Use in a task.cfc for automated builds:

component {
    function run() {
        command( "docbox generate" )
            .params(
                source    = getCWD() & "/models",
                mapping   = "models",
                outputDir = getCWD() & "/docs",
                excludes  = "tests"
            )
            .run();
    }
}

πŸ“– Documentation

Complete documentation is available at docbox.ortusbooks.com


πŸ”— Related Projects


πŸ› Issues & Feature Requests

Found a bug or have an idea? Report it on our Jira issue tracker


πŸ’¬ Community & Support


πŸ™ Credits

Thanks to Mark Mandel for the original project that inspired DocBox.


πŸ“„ License

Apache License, Version 2.0


✝️ The Daily Bread

"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" - John 14:6


About

DocBox is a tool that has been built to generate documentation based on ColdFusion (CFML) Component Meta Data.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages

  • ColdFusion 43.0%
  • JavaScript 34.4%
  • CSS 22.6%