Skip to content

ismailmmd/caat

Repository files navigation

caat

npm NPM Version

A modular CLI tool written in TypeScript that converts various file formats to beautifully styled terminal output with colors and formatting.

alt text

Why caat? Just like the Unix cat command concatenates and displays files, caat (Cat-like Advanced Appearance Tool) takes it a step further by elegantly displaying your files with style! 🐱 It's the purr-fect alternative to plain cat for reading various file formats - because who wants to stare at raw content when you can have rainbow-colored, properly formatted output? 🌈✨

Installation

Install globally via https://www.npmjs.com/package/@slowcode/caat

npm install -g @slowcode/caat

Usage

caat <file>

Examples

# Display a README file
caat README.md

# Display any supported file
caat docs/guide.md

Features

Markdown Support

  • ✨ Styled headings with different colors (H1-H6)
  • 📝 Formatted paragraphs and text
  • 💻 Syntax-highlighted code blocks
  • 🔗 Clickable links with URLs
  • 📋 Styled lists (ordered and unordered)
  • 📖 Formatted blockquotes
  • Bold and italic text support
  • Inline code highlighting

Requirements

  • Node.js >= 16.0.0

Contributing

Contributions are welcome! CAAT's modular architecture makes it easy to add support for new file formats.

Adding a New Parser

Want to add support for a new file format? Check out our Contributing Guide for detailed instructions on:

  • Creating new parser modules
  • Parser architecture and requirements
  • Testing and submission process
  • Examples of potential parsers (JSON, CSV, YAML, etc.)

Development Setup

For TypeScript development:

npm install
npm run build    # Compile TypeScript to JavaScript
npm run cli      # Build and run CLI
npm test         # Build and test with markdown file

Test the CLI locally:

npm install
npm test
node build/cli.js test.md # read markdown file using caat

Making Changes

Follow GitHub's open source contribution guidelines for best practices.

Release Process

  1. Update version and push:

    npm run release:patch  # for bug fixes (1.0.0 → 1.0.1)
    npm run release:minor  # for new features (1.0.0 → 1.1.0)
    npm run release:major  # for breaking changes (1.0.0 → 2.0.0)
  2. Create a GitHub release:

    • Go to GitHub > Releases > Create a new release
    • Use the git tag created by npm version (e.g., v1.0.2)
    • The CI/CD pipeline will automatically use the release tag version for npm publishing

License

MIT

About

CLI tool that converts Markdown files to styled terminal output

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •