Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tldrx/tldrx

A TLDR client with extra ❤ custom private pages.
https://github.com/tldrx/tldrx

rust tldr tldr-client

Last synced: 3 months ago
JSON representation

A TLDR client with extra ❤ custom private pages.

Awesome Lists containing this project

README

        

TLDRx


GitHub CI
License
License

English | 简体中文


screenshot

## Features

- [x] Support private tldr pages repo.
- [x] Support editing private tldr pages.
- [x] Show pages with platform info attached.
- [x] Adheres to [tldr-pages client specification](https://github.com/tldr-pages/tldr/blob/main/CLIENT-SPECIFICATION.md).[^1]
- [x] Offline caching official tldr pages repo.
- [x] Configurable official tldr pages archive download link.
- [x] Honor `HTTP_PROXY` and `HTTPS_PROXY` system proxies (handy for regulation area).
- [x] Advanced configuration: color style, platform, editor...
- [x] Support [new tldr pages syntax](https://github.com/tldr-pages/tldr/pull/958).[^2]

## Usages

Show pages for `git commit`:

tldrx git commit

Update local cache(Required for the first time before showing official pages):

tldrx --update

Edit or create private page for `git commit`:

tldrx -e git commit

For more:

tldrx --help

## Installation

Assume you have rust cargo installed:

cargo install tldrx

## Benchmarks

Benchmarked in a Docker container([Dockerfile](benches/Dockerfile)) on a GitHub Acions machine([2C-7GB-SSD])
using `hyperfine` with 100 round against each client.

| Client [2022-10-05] | Build Flags | Mean [ms] | Min [ms] | Max [ms] | Relative |
| :----------------------------------------------------------- | :--------------- | ---------: | -------: | -------: | ----------: |
| [outfieldr](https://gitlab.com/ve-nt/outfieldr) | `-Drelease-safe` | 23.0 ± 2.6 | 18.5 | 36.6 | 1.00 |
| [tldrx](https://github.com/tldrx/tldrx) | `--release` | 30.2 ± 3.0 | 25.5 | 43.0 | 1.32 ± 0.20 |
| [tealdeer](https://github.com/dbrgn/tealdeer) | `--release` | 32.9 ± 3.5 | 27.3 | 45.4 | 1.43 ± 0.22 |
| [tldr c client](https://github.com/tldr-pages/tldr-c-client) | `-O3` | 76.8 ± 5.8 | 63.8 | 106.4 | 3.34 ± 0.45 |

P.S. Studies shows that response within `100ms` time frame human brain would treat it as an instantaneous reaction[^3][^4].
Recommendation here is chose a client base on the provided features that suits you while the response time is within `100ms`.
If you want more performance, build `tldrx` as a static binary that would reduce the dynamic library load time.

## Configuration

The location of the configuration file `.tldrxrc` varies by platform

- Linux `~/.tldrxrc`
- MacOS `~/.tldrxrc`
- Windows `%USERPROFILE%\.tldrxrc`

Create one if not there.

### Template `.tldrxrc`

- `[-]` option Optional.
- `<+>` option Required only if that feature you want.

```toml

# [-] Path to cache official tldr-pages
official_pages_dir = "/path/to/official/tldr-pages"

# <+> Path to private tldr-pages
private_pages_dir = "/path/to/private/tldr-pages"

# [-] Show pages for the given platform. Option: [osx | linux | ...]
platform = "linux"

# [-] Colorlize the output pages Choice: [auto | on | off]
sytled = "auto"

# [-] Editor to edit private tldr-pages
editor = "vi"

```

## License

This project is dual-licensed under [MIT](LICENSE-MIT) license and [MulanPSL-2.0](LICENSE-MulanPSL) license.
You can freely choose one or the other that suits you.

[^1]: Use `tldrx` instead of `tldr`.

[^2]: The new syntax for tldr-pages is an experimental RFC.

[^3]: https://www.nngroup.com/articles/response-times-3-important-limits
[^4]: https://en.wikipedia.org/wiki/Time_perception

[2C-7GB-SSD]: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
[2022-10-05]: https://github.com/tldrx/tldrx/actions/runs/3188985781/jobs/5202273436