Skip to content

beniza/create-paranext-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Create Paranext Extension (CPE)

Automated tool for creating Platform.Bible extensions

Reduces extension setup from ~30 manual steps to a single command, handling everything from environment validation to git workflow configuration.


📋 Repository Overview

Component Description
Tool create-paranext-extension.sh
Version 2.1.0
Status Under evaluation - testing in progress
Created With assistance from Claude Sonnet 4.5
Platform Platform.Bible Extension Development

🚀 Quick Start

# Make executable (first time only)
chmod +x create-paranext-extension.sh

# Run interactively
./create-paranext-extension.sh

For detailed usage instructions, see Quick Start Guide.


📚 Documentation

Getting Started

Reference Documentation

Testing & Quality

  • Test Suite - Comprehensive test suite (92 tests covering unit, integration, error handling, and validation)

Development


✨ Key Features

Feature Description
Dynamic Versioning Auto-detects latest stable Platform.Bible release or targets specific versions
Multi-Template Support Choose between basic (single) or multi-extension project structures
Safety Checks Warns about existing extensions before updating paranext-core
Smart Management Reuses existing paranext-core instead of re-cloning
Best Practices Follows Paranext team recommendations (keeps git history, sets up template remote)
Full Automation Handles naming, file updates, dependencies, and build verification

📦 What You Get

A complete, ready-to-develop extension with:

  • TypeScript + React setup
  • Tailwind CSS styling
  • Proper project structure
  • Git workflow configured for template updates
  • Ready to launch with Platform.Bible (via npm start)
  • Welcome screen with next steps

See Output Specification for complete details.


🔧 Requirements

Software Version Status Purpose
Node.js 18.0+ (22.15.1+ recommended) Required JavaScript runtime
npm Any Required Package management
Git Any Required Version control
curl Any Recommended* Dynamic version detection
.NET SDK 8.0+ Recommended Platform.Bible core

*Falls back to v0.5.0 if curl unavailable

Platform Support

  • Linux/macOS: Native bash script execution
  • Windows: Requires Git Bash (included with Git for Windows)
    • Run the script in Git Bash terminal
    • Git Bash provides a Unix-like environment on Windows

See Prerequisites for details.


📖 Usage Examples

Interactive Mode

./create-paranext-extension.sh
# Guided prompts for all options

Command-Line Mode

# Latest version, basic template
./create-paranext-extension.sh --name "My Extension" --author "Your Name"

# Specific version, multi-extension template
./create-paranext-extension.sh --name "My Tools" --version v0.5.0 --template multi

# Fast setup (skip optional steps)
./create-paranext-extension.sh --name "Test" --skip-deps --skip-test

See Usage Guide for all options.


🗺️ Repository Structure

create-paranext-extension/
├── create-paranext-extension.sh   # Main automation script
├── README.md                       # This file (repository overview)
├── docs/
│   ├── guides/                     # User guides
│   │   ├── QUICK_START.md          # Fast getting-started guide
│   │   ├── USAGE.md                # Detailed script usage
│   │   └── WORKSPACE_SETUP.md      # Environment setup
│   ├── reference/                  # Reference documentation
│   │   ├── SPECIFICATION.md        # Complete CPE specification
│   │   ├── DESIGN_RATIONALE.md     # Design decisions and philosophy
│   │   └── MANUAL_SETUP.md         # Manual process reference
│   └── development/                # Development documentation
│       ├── CHANGELOG.md            # Version history
│       ├── REVIEW_FINDINGS.md      # Code review results
│       └── UPDATE_SUMMARY.md       # Detailed v2.0 changes
└── tests/
    ├── test-runner.sh              # Main test orchestrator (92 tests)
    ├── test-helpers.sh             # Common test utilities
    ├── test-unit.sh                # Unit tests
    ├── test-integration.sh         # Integration tests
    ├── test-error-handling.sh      # Error handling tests
    ├── test-validation.sh          # Validation tests
    └── README.md                   # Test documentation

🎯 Project Goals

  1. Simplify Extension Development - Remove setup friction, enable focus on functionality
  2. Encode Best Practices - Apply Paranext team recommendations automatically
  3. Support Multiple Workflows - Interactive exploration or automated CI/CD
  4. Enable Future Implementations - Specification supports Python, Node.js, etc.

See Design Philosophy for details.


🔄 Version Information

Current Version: 2.1.0 (February 2026)

Major improvements in v2.0:

  • Dynamic version detection via GitHub API
  • Multi-template support (basic/multi)
  • Existing extension safety checks
  • Smart paranext-core management
  • Template remote setup for updates

See Changelog for complete history.


� Testing

The project includes a comprehensive test suite with 92 tests:

# Run all tests
./tests/test-runner.sh

# Run specific test suite
./tests/test-runner.sh --suite unit
./tests/test-runner.sh --suite integration
./tests/test-runner.sh --suite error-handling
./tests/test-runner.sh --suite validation

# Verbose output
./tests/test-runner.sh --verbose

See Test Suite Documentation for detailed information.


🤝 Contributing

Contributions welcome! Areas of interest:

  • Bug reports and feature requests
  • Documentation improvements
  • Multi-language implementations (Python, Node.js)
  • Additional templates and customizations
  • Test coverage improvements

See CPE Specification for implementation guidance.


📄 License

Follows Platform.Bible licensing.


🔗 Related Links


Quick Links: Quick StartSpecificationDesign RationaleChangelog

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages