Metadata-Version: 2.4
Name: aditi
Version: 0.1.0
Summary: A CLI tool to prepare AsciiDoc files for migration to DITA
Author-email: Rolfe Dlugy-Hegwer <rolfedh@github.com>
Maintainer-email: Rolfe Dlugy-Hegwer <rolfedh@github.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/rolfedh/aditi
Project-URL: Documentation, https://rolfedh.github.io/aditi/
Project-URL: Repository, https://github.com/rolfedh/aditi.git
Project-URL: Issues, https://github.com/rolfedh/aditi/issues
Keywords: asciidoc,dita,documentation,migration,vale,linter
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Documentation
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer[all]>=0.9.0
Requires-Dist: rich>=13.7.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: questionary>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
Requires-Dist: mypy>=1.8.0; extra == "dev"
Requires-Dist: ruff>=0.1.9; extra == "dev"
Requires-Dist: black>=23.12.0; extra == "dev"
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
Dynamic: license-file

# Aditi - AsciiDoc DITA Integration Tool

[![PyPI version](https://badge.fury.io/py/aditi.svg)](https://badge.fury.io/py/aditi)
[![Python versions](https://img.shields.io/pypi/pyversions/aditi.svg)](https://pypi.org/project/aditi/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Aditi is a CLI tool designed to help technical writers prepare AsciiDoc files for migration to DITA. It leverages the Vale linter with AsciiDocDITA rules to identify and fix compatibility issues.

## Features

- **Automated Rule Checking**: Run Vale with AsciiDocDITA rules to identify DITA compatibility issues
- **Smart Fix Application**: Automatically fix deterministic issues or flag them for manual review
- **Git Workflow Integration**: Guided workflow for creating branches, commits, and pull requests
- **Progress Tracking**: Visual progress indicators and detailed reporting
- **Container Support**: Uses containerized Vale for consistent results across environments

## Installation

```bash
pip install aditi
```

### Prerequisites

- Python 3.11 or later
- Podman or Docker (for running Vale in a container)
- Git (for version control integration)

## Quick Start

1. Initialize Aditi in your project:
   ```bash
   aditi init
   ```

2. Check your AsciiDoc files:
   ```bash
   aditi check
   ```

3. Start the guided migration journey:
   ```bash
   aditi journey
   ```

4. Apply fixes interactively:
   ```bash
   aditi fix
   ```

## Documentation

For detailed documentation, visit [https://rolfedh.github.io/aditi/](https://rolfedh.github.io/aditi/)

## AsciiDocDITA Rules

Aditi implements all 26 AsciiDocDITA rules, including:

- **Error Level**: ContentType, EntityReference, ExampleBlock, etc.
- **Warning Level**: AdmonitionTitle, AuthorLine, BlockTitle, etc.
- **Suggestion Level**: AttributeReference, ConditionalCode, etc.

## Development

To contribute to Aditi:

```bash
# Clone the repository
git clone https://github.com/rolfedh/aditi.git
cd aditi

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linting
ruff check .
mypy .
```

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments

- Built on the [Vale](https://vale.sh/) linter
- Uses [AsciiDocDITA](https://github.com/jhradilek/asciidoctor-dita-vale) rules by Jaromir Hradilek
- Powered by [Typer](https://typer.tiangolo.com/) and [Rich](https://rich.readthedocs.io/)
