char-coal 0.2.4

A command line dictionary
Documentation
# Charcoal

An alternative to wudao-dict. With colorized output and optional speech.

## Installation

Arch (-ish):

```sh
yay -S charcoal
```

Brew:

```sh
brew install lighghteeloo/charcoal/charcoal
```

Build from source:

```sh
cargo install char-coal
```

### Small Tips Ahead

Aliasing common command to `chr`, `wd` or anything shorter is recommended (`cc` if you don't mind?)

```sh
alias chr="char-coal query -s"
```

No manually designated dependencies are required. See `Cargo.toml` if you are interested in the crates charcoal is using.


## Usage

### Query

```sh
char-coal query <QUERY>
```

where query can be shortened as `q`, `search`, or `s`.

With `-s` or `--speak-as true` one can force the happening of a speech.

### Edit

You may want to edit the configuration file in an easy way. Charcoal gets you covered:

```sh
char-coal edit
```

And with `--reset` it will generate a brand new configuration in case anything gets wrong.

For more details on configuration file, see *Configuration* section.

### Clean

Charcoal caches up your queries, both text and audio. While it's nice for repetitive queries, it takes up some space. If you want, you can clean them with:

```sh
char-coal clean
```

For more details on cache, see *Caching Strategy* section.

### Help

To see more options, run

```sh
char-coal help
```

for help on subcommands, or

```sh
char-coal query --help
```

for each subcommand, say, `query`.


## Configuration

Configurations are straight forward. Just change the booleans and they're yours.

## Dev

Clone and build from source:

```sh
git clone git@github.com:LighghtEeloo/Charcoal.git
cd Charcoal
cargo build --all
```

Alias:

```sh
cd Charcoal
cargo build --all
alias chr="RUST_LOG=info target/debug/char-coal query -s"
```

## Caching Strategy

As a tiny cli tool, charcoal can't guarantee 100% cache consistency; however, its caching strategy is delicately designed such that inconsistency is rare and of little harm.

Only ascii with out space will be saved by name, under `cache` directory, to achieve better compatibility; the rest will be hashed and then saved under `vault` directory.

Both text and audio will be cached.

## License

This repo uses MIT License.

## Disclaimer and Promises

Though it's unlikely, this software may harm data. Use at your own risk.

No privacy collection will be performed.

## Credits

@TomCC7 for kindly supporting, testing and making suggestions for charcoal.

@BinhaoQin for providing advice (and patience!) on PKGBUILD.