Skip to content
Snippets Groups Projects
Commit 1864e178 authored by Andreas Tille's avatar Andreas Tille
Browse files

New upstream version 1.6.0

parent de36c15f
Branches upstream
Tags upstream/1.6.0
No related merge requests found
Showing
with 1175 additions and 43 deletions
name: Rich-codex
on:
workflow_dispatch:
jobs:
rich_codex:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
- name: Install your custom tools
run: pip install .
- name: Generate terminal images with rich-codex
uses: ewels/rich-codex@v1
with:
commit_changes: "true"
clean_img_paths: docs/images/*.svg
name: Test Examples
on: [push, pull_request]
jobs:
test_examples:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
- name: Install rich-click
run: pip install .
- name: Test examples
run: |
for f in examples/*py
do
echo -e "\n\n$f"
python $f --help || exit 1;
done
# Changelog: rich-click
## Version 1.6.0 (2022-12-05)
- ⚠️ Removed support for Typer ⚠️
- Please use the [native Typer functionality](https://typer.tiangolo.com/tutorial/options/help/#cli-options-help-panels) instead.
- Added self-updating automated readme screengrabs using [rich-codex](https://github.com/ewels/rich-codex)
- Fix `AssertionError` when using click command call [#94](https://github.com/ewels/rich-click/issues/94)
## Version 1.5.2 (2022-08-01)
> ⚠️ Important notice! ⚠️
......
......@@ -18,9 +18,9 @@ click, formatted with rich, with minimal customisation required.
- 🔢 Easily give custom sort order for options and commands
- 🎨 Extensive customisation of styling and behaviour possible
![rich-click](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/command_groups.png)
![rich-click](docs/images/command_groups.svg)
_Screenshot from [`examples/click/03_groups_sorting.py`](examples/click/03_groups_sorting.py)_
_Screenshot from [`examples/03_groups_sorting.py`](examples/03_groups_sorting.py)_
## Installation
......@@ -43,6 +43,8 @@ Users on macOS can install `rich-click` via [MacPorts](https://ports.macports.or
sudo port install py-rich-click
```
Note that rich-click requires `click>=7` but formatted subcommands (groups) only work with `click>=8`. With v7 the output simply reverts to default click output.
## Usage
### Import as click
......@@ -55,7 +57,7 @@ import rich_click as click
That's it ✨ Then continue to use `click` as you would normally.
> See [`examples/click/01_simple.py`](examples/click/01_simple.py) for an example.
> See [`examples/01_simple.py`](examples/01_simple.py) for an example.
The intention is to maintain most / all of the normal click functionality and arguments.
If you spot something that breaks or is missing once you start using the plugin, please create an issue about it.
......@@ -65,28 +67,7 @@ If you spot something that breaks or is missing once you start using the plugin,
If you prefer, you can `RichGroup` or `RichCommand` with the `cls` argument in your click usage instead.
This means that you can continue to use the unmodified `click` package in parallel.
> See [`examples/click/02_declarative.py`](examples/click/02_declarative.py) for an example.
### Typer support
[`Typer`](https://github.com/tiangolo/typer) is also supported.
You need to use rich-click with the `typer` [extra](https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-setuptools-extras) in your package requirements: `rich-click[typer]`
For example, to install locally:
```bash
python -m pip install rich-click[typer]
```
Then just replace your usual `typer` import by:
```python
import rich_click.typer as typer
```
That's it ✨ All the usual `typer` API should be available.
> See [`examples/typer/`](examples/typer/) for some example scripts.
> See [`examples/02_declarative.py`](examples/02_declarative.py) for an example.
### Command-line usage
......@@ -145,6 +126,8 @@ These can be modified by changing variables in the `click.rich_click` namespace.
Note that most normal click options should still work, such as `show_default=True`, `required=True` and `hidden=True`.
> Note: All images below are auto-generated using another side-project of mine: [rich-codex](https://github.com/ewels/rich-codex). Pretty cool!
### Using rich markup
In order to be as widely compatible as possible with a simple import, rich-click does _not_ parse rich formatting markup (eg. `[red]`) by default. You need to opt-in to this behaviour.
......@@ -158,9 +141,9 @@ click.rich_click.USE_RICH_MARKUP = True
Remember that you'll need to escape any regular square brackets using a back slash in your help texts,
for example: `[dim]\[my-default: foo][\]`
![Rich markup example](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/rich_markup.png)
![`python examples/04_rich_markup.py --help`](docs/images/rich_markup.svg "Rich markup example")
> See [`examples/click/04_rich_markup.py`](examples/click/04_rich_markup.py) for and example.
> See [`examples/04_rich_markup.py`](examples/04_rich_markup.py) for an example.
### Using Markdown
......@@ -171,9 +154,9 @@ You must choose either Markdown or rich markup. If you specify both, Markdown ta
click.rich_click.USE_MARKDOWN = True
```
![Markdown example](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/markdown.png)
![`python examples/05_markdown.py --help`](docs/images/markdown.svg "Markdown example")
> See [`examples/click/05_markdown.py`](examples/click/05_markdown.py) for an example.
> See [`examples/05_markdown.py`](examples/05_markdown.py) for an example.
### Positional arguments
......@@ -188,9 +171,9 @@ click.rich_click.SHOW_ARGUMENTS = True
click.rich_click.GROUP_ARGUMENTS_OPTIONS = True
```
![Positional arguments example](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/arguments.png)
![`python examples/06_arguments.py --help`](docs/images/arguments.svg "Positional arguments example")
> See [`examples/click/06_arguments.py`](examples/click/06_arguments.py) for an example.
> See [`examples/06_arguments.py`](examples/06_arguments.py) for an example.
### Metavars and option choices
......@@ -201,7 +184,7 @@ If you have a choice, the metavar is a list of the possible values.
By default, rich-click shows metavars in their own column.
However, if you have a long list of choices, this column can be quite wide and result in a lot of white space:
![Default metavar display](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/metavars_default.png)
![`python examples/08_metavars_default.py --help`](docs/images/metavars_default.svg "Default metavar display")
It may look better to show metavars appended to the help text, instead of in their own column.
For this, use the following:
......@@ -211,28 +194,30 @@ click.rich_click.SHOW_METAVARS_COLUMN = False
click.rich_click.APPEND_METAVARS_HELP = True
```
![Appended metavar](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/metavars_appended.png)
![`python examples/08_metavars.py --help`](docs/images/metavars_appended.svg "Appended metavar")
> See [`examples/click/08_metavars.py`](examples/click/08_metavars.py) for an example.
> See [`examples/08_metavars.py`](examples/08_metavars.py) for an example.
### Error messages
By default, rich-click gives some nice formatting to error messages:
![error-message](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/error.png)
![`python examples/01_simple.py --hep`](docs/images/error.svg "Error message")
You can customise the _Try 'command --help' for help._ message with `ERRORS_SUGGESTION`
using rich-click though, and add some text after the error with `ERRORS_EPILOGUE`.
For example, from [`examples/click/07_custom_errors.py`](examples/click/07_custom_errors.py):
For example, from [`examples/07_custom_errors.py`](examples/07_custom_errors.py):
```python
click.rich_click.STYLE_ERRORS_SUGGESTION = "blue italic"
click.rich_click.STYLE_ERRORS_SUGGESTION = "magenta italic"
click.rich_click.ERRORS_SUGGESTION = "Try running the '--help' flag for more information."
click.rich_click.ERRORS_EPILOGUE = "To find out more, visit https://mytool.com"
click.rich_click.ERRORS_EPILOGUE = "To find out more, visit [link=https://mytool.com]https://mytool.com[/link]"
```
![custom-error-message](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/custom_error.png)
![`python examples/07_custom_errors.py --hep`](docs/images/custom_error.svg "Custom error message")
> See [`examples/07_custom_errors.py`](examples/07_custom_errors.py) for an example.
### Help width
......@@ -264,9 +249,14 @@ click.rich_click.STYLE_OPTIONS_TABLE_BOX = "SIMPLE"
You can make some really ~horrible~ _colourful_ solutions using these styles if you wish:
![Rich markup example](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/style_tables.png)
<!-- RICH-CODEX
extra_env:
TERMINAL_WIDTH: 160
-->
![`python examples/10_table_styles.py --help`](docs/images/style_tables.svg "Rich markup example")
> See [`examples/click/10_table_styles.py`](examples/click/10_table_styles.py) for and example.
> See [`examples/10_table_styles.py`](examples/10_table_styles.py) for an example.
See the [_Configuration options_](#configuration-options) section below for the full list of available options.
......@@ -278,9 +268,9 @@ It accepts a list of options / commands which means you can also choose a custom
- For options (flags), set `click.rich_click.OPTION_GROUPS`
- For subcommands (groups), set `click.rich_click.COMMAND_GROUPS`
![rich-click](https://raw.githubusercontent.com/ewels/rich-click/main/docs/images/command_groups.png)
![`python examples/03_groups_sorting.py --help`](docs/images/command_groups.svg "Command groups")
See [`examples/click/03_groups_sorting.py`](examples/click/03_groups_sorting.py) for a full example.
> See [`examples/03_groups_sorting.py`](examples/03_groups_sorting.py) for a full example.
### Options
......
docs/images/arguments.png

402 KiB

<svg class="rich-terminal" viewBox="0 0 994 513.5999999999999" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-1694544970-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-1694544970-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-1694544970-r1 { fill: #c5c8c6 }
.terminal-1694544970-r2 { fill: #c5c8c6;font-weight: bold }
.terminal-1694544970-r3 { fill: #d0b344;font-weight: bold }
.terminal-1694544970-r4 { fill: #68a0b3;font-weight: bold }
.terminal-1694544970-r5 { fill: #868887 }
.terminal-1694544970-r6 { fill: #4e707b;font-weight: bold }
.terminal-1694544970-r7 { fill: #cc555a }
.terminal-1694544970-r8 { fill: #8a4346 }
</style>
<defs>
<clipPath id="terminal-1694544970-clip-terminal">
<rect x="0" y="0" width="975.0" height="462.59999999999997" />
</clipPath>
<clipPath id="terminal-1694544970-line-0">
<rect x="0" y="1.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-1">
<rect x="0" y="25.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-2">
<rect x="0" y="50.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-3">
<rect x="0" y="74.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-4">
<rect x="0" y="99.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-5">
<rect x="0" y="123.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-6">
<rect x="0" y="147.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-7">
<rect x="0" y="172.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-8">
<rect x="0" y="196.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-9">
<rect x="0" y="221.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-10">
<rect x="0" y="245.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-11">
<rect x="0" y="269.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-12">
<rect x="0" y="294.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-13">
<rect x="0" y="318.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-14">
<rect x="0" y="343.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-15">
<rect x="0" y="367.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-16">
<rect x="0" y="391.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1694544970-line-17">
<rect x="0" y="416.3" width="976" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="511.6" rx="8"/><text class="terminal-1694544970-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">Positional&#160;arguments&#160;example</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-1694544970-clip-terminal)">
<g class="terminal-1694544970-matrix">
<text class="terminal-1694544970-r1" x="0" y="20" textLength="488" clip-path="url(#terminal-1694544970-line-0)">$&#160;python&#160;examples/06_arguments.py&#160;--help</text><text class="terminal-1694544970-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-1694544970-line-0)">
</text><text class="terminal-1694544970-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-1)">
</text><text class="terminal-1694544970-r3" x="12.2" y="68.8" textLength="85.4" clip-path="url(#terminal-1694544970-line-2)">Usage:&#160;</text><text class="terminal-1694544970-r2" x="97.6" y="68.8" textLength="207.4" clip-path="url(#terminal-1694544970-line-2)">06_arguments.py&#160;[</text><text class="terminal-1694544970-r4" x="305" y="68.8" textLength="85.4" clip-path="url(#terminal-1694544970-line-2)">OPTIONS</text><text class="terminal-1694544970-r2" x="390.4" y="68.8" textLength="24.4" clip-path="url(#terminal-1694544970-line-2)">]&#160;</text><text class="terminal-1694544970-r4" x="414.8" y="68.8" textLength="61" clip-path="url(#terminal-1694544970-line-2)">INPUT</text><text class="terminal-1694544970-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-1694544970-line-2)">
</text><text class="terminal-1694544970-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-3)">
</text><text class="terminal-1694544970-r1" x="0" y="117.6" textLength="976" clip-path="url(#terminal-1694544970-line-4)">&#160;My&#160;amazing&#160;tool&#160;does&#160;all&#160;the&#160;things.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1694544970-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-1694544970-line-4)">
</text><text class="terminal-1694544970-r5" x="12.2" y="142" textLength="902.8" clip-path="url(#terminal-1694544970-line-5)">This&#160;is&#160;a&#160;minimal&#160;example&#160;based&#160;on&#160;documentation&#160;from&#160;the&#160;&#x27;click&#x27;&#160;package.</text><text class="terminal-1694544970-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-1694544970-line-5)">
</text><text class="terminal-1694544970-r5" x="12.2" y="166.4" textLength="219.6" clip-path="url(#terminal-1694544970-line-6)">You&#160;can&#160;try&#160;using&#160;</text><text class="terminal-1694544970-r6" x="231.8" y="166.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-6)">-</text><text class="terminal-1694544970-r6" x="244" y="166.4" textLength="61" clip-path="url(#terminal-1694544970-line-6)">-help</text><text class="terminal-1694544970-r5" x="305" y="166.4" textLength="561.2" clip-path="url(#terminal-1694544970-line-6)">&#160;at&#160;the&#160;top&#160;level&#160;and&#160;also&#160;for&#160;specific&#160;group&#160;</text><text class="terminal-1694544970-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-6)">
</text><text class="terminal-1694544970-r5" x="12.2" y="190.8" textLength="146.4" clip-path="url(#terminal-1694544970-line-7)">subcommands.</text><text class="terminal-1694544970-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-1694544970-line-7)">
</text><text class="terminal-1694544970-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-8)">
</text><text class="terminal-1694544970-r5" x="0" y="239.6" textLength="24.4" clip-path="url(#terminal-1694544970-line-9)">╭─</text><text class="terminal-1694544970-r5" x="24.4" y="239.6" textLength="134.2" clip-path="url(#terminal-1694544970-line-9)">&#160;Arguments&#160;</text><text class="terminal-1694544970-r5" x="158.6" y="239.6" textLength="793" clip-path="url(#terminal-1694544970-line-9)">─────────────────────────────────────────────────────────────────</text><text class="terminal-1694544970-r5" x="951.6" y="239.6" textLength="24.4" clip-path="url(#terminal-1694544970-line-9)">─╮</text><text class="terminal-1694544970-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-1694544970-line-9)">
</text><text class="terminal-1694544970-r5" x="0" y="264" textLength="12.2" clip-path="url(#terminal-1694544970-line-10)"></text><text class="terminal-1694544970-r7" x="24.4" y="264" textLength="12.2" clip-path="url(#terminal-1694544970-line-10)">*</text><text class="terminal-1694544970-r4" x="61" y="264" textLength="61" clip-path="url(#terminal-1694544970-line-10)">INPUT</text><text class="terminal-1694544970-r3" x="170.8" y="264" textLength="48.8" clip-path="url(#terminal-1694544970-line-10)">PATH</text><text class="terminal-1694544970-r8" x="244" y="264" textLength="122" clip-path="url(#terminal-1694544970-line-10)">[required]</text><text class="terminal-1694544970-r5" x="963.8" y="264" textLength="12.2" clip-path="url(#terminal-1694544970-line-10)"></text><text class="terminal-1694544970-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-1694544970-line-10)">
</text><text class="terminal-1694544970-r5" x="0" y="288.4" textLength="976" clip-path="url(#terminal-1694544970-line-11)">╰──────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-1694544970-r1" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-11)">
</text><text class="terminal-1694544970-r5" x="0" y="312.8" textLength="24.4" clip-path="url(#terminal-1694544970-line-12)">╭─</text><text class="terminal-1694544970-r5" x="24.4" y="312.8" textLength="109.8" clip-path="url(#terminal-1694544970-line-12)">&#160;Options&#160;</text><text class="terminal-1694544970-r5" x="134.2" y="312.8" textLength="817.4" clip-path="url(#terminal-1694544970-line-12)">───────────────────────────────────────────────────────────────────</text><text class="terminal-1694544970-r5" x="951.6" y="312.8" textLength="24.4" clip-path="url(#terminal-1694544970-line-12)">─╮</text><text class="terminal-1694544970-r1" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-1694544970-line-12)">
</text><text class="terminal-1694544970-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-13)"></text><text class="terminal-1694544970-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-13)">-</text><text class="terminal-1694544970-r4" x="36.6" y="337.2" textLength="61" clip-path="url(#terminal-1694544970-line-13)">-type</text><text class="terminal-1694544970-r3" x="158.6" y="337.2" textLength="48.8" clip-path="url(#terminal-1694544970-line-13)">TEXT</text><text class="terminal-1694544970-r1" x="207.4" y="337.2" textLength="280.6" clip-path="url(#terminal-1694544970-line-13)">&#160;&#160;Type&#160;of&#160;file&#160;to&#160;sync&#160;</text><text class="terminal-1694544970-r5" x="488" y="337.2" textLength="195.2" clip-path="url(#terminal-1694544970-line-13)">[default:&#160;files]</text><text class="terminal-1694544970-r5" x="963.8" y="337.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-13)"></text><text class="terminal-1694544970-r1" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-13)">
</text><text class="terminal-1694544970-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#terminal-1694544970-line-14)"></text><text class="terminal-1694544970-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#terminal-1694544970-line-14)">-</text><text class="terminal-1694544970-r4" x="36.6" y="361.6" textLength="48.8" clip-path="url(#terminal-1694544970-line-14)">-all</text><text class="terminal-1694544970-r1" x="207.4" y="361.6" textLength="756.4" clip-path="url(#terminal-1694544970-line-14)">&#160;&#160;Sync&#160;all&#160;the&#160;things?&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1694544970-r5" x="963.8" y="361.6" textLength="12.2" clip-path="url(#terminal-1694544970-line-14)"></text><text class="terminal-1694544970-r1" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-1694544970-line-14)">
</text><text class="terminal-1694544970-r5" x="0" y="386" textLength="12.2" clip-path="url(#terminal-1694544970-line-15)"></text><text class="terminal-1694544970-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#terminal-1694544970-line-15)">-</text><text class="terminal-1694544970-r4" x="36.6" y="386" textLength="73.2" clip-path="url(#terminal-1694544970-line-15)">-debug</text><text class="terminal-1694544970-r1" x="207.4" y="386" textLength="756.4" clip-path="url(#terminal-1694544970-line-15)">&#160;&#160;Enable&#160;debug&#160;mode&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1694544970-r5" x="963.8" y="386" textLength="12.2" clip-path="url(#terminal-1694544970-line-15)"></text><text class="terminal-1694544970-r1" x="976" y="386" textLength="12.2" clip-path="url(#terminal-1694544970-line-15)">
</text><text class="terminal-1694544970-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-16)"></text><text class="terminal-1694544970-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-16)">-</text><text class="terminal-1694544970-r4" x="36.6" y="410.4" textLength="61" clip-path="url(#terminal-1694544970-line-16)">-help</text><text class="terminal-1694544970-r1" x="207.4" y="410.4" textLength="756.4" clip-path="url(#terminal-1694544970-line-16)">&#160;&#160;Show&#160;this&#160;message&#160;and&#160;exit.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1694544970-r5" x="963.8" y="410.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-16)"></text><text class="terminal-1694544970-r1" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-1694544970-line-16)">
</text><text class="terminal-1694544970-r5" x="0" y="434.8" textLength="976" clip-path="url(#terminal-1694544970-line-17)">╰──────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-1694544970-r1" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-1694544970-line-17)">
</text><text class="terminal-1694544970-r1" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-1694544970-line-18)">
</text>
</g>
</g>
</svg>
docs/images/command_groups.png

512 KiB

This diff is collapsed.
docs/images/custom_error.png

275 KiB

<svg class="rich-terminal" viewBox="0 0 994 318.4" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-2513664136-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-2513664136-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-2513664136-r1 { fill: #c5c8c6 }
.terminal-2513664136-r2 { fill: #d0b344 }
.terminal-2513664136-r3 { fill: #68a0b3;font-weight: bold }
.terminal-2513664136-r4 { fill: #98729f;font-style: italic; }
.terminal-2513664136-r5 { fill: #68a0b3;font-weight: bold;font-style: italic; }
.terminal-2513664136-r6 { fill: #cc555a }
</style>
<defs>
<clipPath id="terminal-2513664136-clip-terminal">
<rect x="0" y="0" width="975.0" height="267.4" />
</clipPath>
<clipPath id="terminal-2513664136-line-0">
<rect x="0" y="1.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-1">
<rect x="0" y="25.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-2">
<rect x="0" y="50.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-3">
<rect x="0" y="74.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-4">
<rect x="0" y="99.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-5">
<rect x="0" y="123.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-6">
<rect x="0" y="147.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-7">
<rect x="0" y="172.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-8">
<rect x="0" y="196.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2513664136-line-9">
<rect x="0" y="221.1" width="976" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="316.4" rx="8"/><text class="terminal-2513664136-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">Custom&#160;error&#160;message</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-2513664136-clip-terminal)">
<g class="terminal-2513664136-matrix">
<text class="terminal-2513664136-r1" x="0" y="20" textLength="524.6" clip-path="url(#terminal-2513664136-line-0)">$&#160;python&#160;examples/07_custom_errors.py&#160;--hep</text><text class="terminal-2513664136-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-2513664136-line-0)">
</text><text class="terminal-2513664136-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-2513664136-line-1)">
</text><text class="terminal-2513664136-r2" x="12.2" y="68.8" textLength="85.4" clip-path="url(#terminal-2513664136-line-2)">Usage:&#160;</text><text class="terminal-2513664136-r1" x="97.6" y="68.8" textLength="256.2" clip-path="url(#terminal-2513664136-line-2)">07_custom_errors.py&#160;[</text><text class="terminal-2513664136-r3" x="353.8" y="68.8" textLength="85.4" clip-path="url(#terminal-2513664136-line-2)">OPTIONS</text><text class="terminal-2513664136-r1" x="439.2" y="68.8" textLength="24.4" clip-path="url(#terminal-2513664136-line-2)">]&#160;</text><text class="terminal-2513664136-r3" x="463.6" y="68.8" textLength="61" clip-path="url(#terminal-2513664136-line-2)">INPUT</text><text class="terminal-2513664136-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-2513664136-line-2)">
</text><text class="terminal-2513664136-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-2513664136-line-3)">
</text><text class="terminal-2513664136-r4" x="12.2" y="117.6" textLength="207.4" clip-path="url(#terminal-2513664136-line-4)">Try&#160;running&#160;the&#160;&#x27;</text><text class="terminal-2513664136-r5" x="219.6" y="117.6" textLength="12.2" clip-path="url(#terminal-2513664136-line-4)">-</text><text class="terminal-2513664136-r5" x="231.8" y="117.6" textLength="61" clip-path="url(#terminal-2513664136-line-4)">-help</text><text class="terminal-2513664136-r4" x="292.8" y="117.6" textLength="341.6" clip-path="url(#terminal-2513664136-line-4)">&#x27;&#160;flag&#160;for&#160;more&#160;information.</text><text class="terminal-2513664136-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-2513664136-line-4)">
</text><text class="terminal-2513664136-r6" x="0" y="142" textLength="24.4" clip-path="url(#terminal-2513664136-line-5)">╭─</text><text class="terminal-2513664136-r6" x="24.4" y="142" textLength="85.4" clip-path="url(#terminal-2513664136-line-5)">&#160;Error&#160;</text><text class="terminal-2513664136-r6" x="109.8" y="142" textLength="841.8" clip-path="url(#terminal-2513664136-line-5)">─────────────────────────────────────────────────────────────────────</text><text class="terminal-2513664136-r6" x="951.6" y="142" textLength="24.4" clip-path="url(#terminal-2513664136-line-5)">─╮</text><text class="terminal-2513664136-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-2513664136-line-5)">
</text><text class="terminal-2513664136-r6" x="0" y="166.4" textLength="12.2" clip-path="url(#terminal-2513664136-line-6)"></text><text class="terminal-2513664136-r1" x="12.2" y="166.4" textLength="207.4" clip-path="url(#terminal-2513664136-line-6)">&#160;No&#160;such&#160;option:&#160;</text><text class="terminal-2513664136-r3" x="219.6" y="166.4" textLength="12.2" clip-path="url(#terminal-2513664136-line-6)">-</text><text class="terminal-2513664136-r3" x="231.8" y="166.4" textLength="48.8" clip-path="url(#terminal-2513664136-line-6)">-hep</text><text class="terminal-2513664136-r1" x="280.6" y="166.4" textLength="170.8" clip-path="url(#terminal-2513664136-line-6)">&#160;Did&#160;you&#160;mean&#160;</text><text class="terminal-2513664136-r3" x="451.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2513664136-line-6)">-</text><text class="terminal-2513664136-r3" x="463.6" y="166.4" textLength="61" clip-path="url(#terminal-2513664136-line-6)">-help</text><text class="terminal-2513664136-r1" x="524.6" y="166.4" textLength="439.2" clip-path="url(#terminal-2513664136-line-6)">?&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2513664136-r6" x="963.8" y="166.4" textLength="12.2" clip-path="url(#terminal-2513664136-line-6)"></text><text class="terminal-2513664136-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-2513664136-line-6)">
</text><text class="terminal-2513664136-r6" x="0" y="190.8" textLength="976" clip-path="url(#terminal-2513664136-line-7)">╰──────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-2513664136-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-2513664136-line-7)">
</text><text class="terminal-2513664136-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-2513664136-line-8)">
</text><text class="terminal-2513664136-r1" x="0" y="239.6" textLength="305" clip-path="url(#terminal-2513664136-line-9)">&#160;To&#160;find&#160;out&#160;more,&#160;visit&#160;</text><text class="terminal-2513664136-r1" x="305" y="239.6" textLength="219.6" clip-path="url(#terminal-2513664136-line-9)">https://mytool.com</text><text class="terminal-2513664136-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-2513664136-line-9)">
</text><text class="terminal-2513664136-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-2513664136-line-10)">
</text>
</g>
</g>
</svg>
docs/images/error.png

270 KiB

<svg class="rich-terminal" viewBox="0 0 994 269.6" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-2909083899-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-2909083899-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-2909083899-r1 { fill: #c5c8c6 }
.terminal-2909083899-r2 { fill: #d0b344 }
.terminal-2909083899-r3 { fill: #68a0b3;font-weight: bold }
.terminal-2909083899-r4 { fill: #868887 }
.terminal-2909083899-r5 { fill: #4a637a }
.terminal-2909083899-r6 { fill: #4a637a;font-weight: bold }
.terminal-2909083899-r7 { fill: #cc555a }
</style>
<defs>
<clipPath id="terminal-2909083899-clip-terminal">
<rect x="0" y="0" width="975.0" height="218.6" />
</clipPath>
<clipPath id="terminal-2909083899-line-0">
<rect x="0" y="1.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-1">
<rect x="0" y="25.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-2">
<rect x="0" y="50.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-3">
<rect x="0" y="74.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-4">
<rect x="0" y="99.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-5">
<rect x="0" y="123.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-6">
<rect x="0" y="147.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-2909083899-line-7">
<rect x="0" y="172.3" width="976" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="267.6" rx="8"/><text class="terminal-2909083899-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">Error&#160;message</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-2909083899-clip-terminal)">
<g class="terminal-2909083899-matrix">
<text class="terminal-2909083899-r1" x="0" y="20" textLength="439.2" clip-path="url(#terminal-2909083899-line-0)">$&#160;python&#160;examples/01_simple.py&#160;--hep</text><text class="terminal-2909083899-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-2909083899-line-0)">
</text><text class="terminal-2909083899-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-2909083899-line-1)">
</text><text class="terminal-2909083899-r2" x="12.2" y="68.8" textLength="85.4" clip-path="url(#terminal-2909083899-line-2)">Usage:&#160;</text><text class="terminal-2909083899-r1" x="97.6" y="68.8" textLength="170.8" clip-path="url(#terminal-2909083899-line-2)">01_simple.py&#160;[</text><text class="terminal-2909083899-r3" x="268.4" y="68.8" textLength="85.4" clip-path="url(#terminal-2909083899-line-2)">OPTIONS</text><text class="terminal-2909083899-r1" x="353.8" y="68.8" textLength="24.4" clip-path="url(#terminal-2909083899-line-2)">]&#160;</text><text class="terminal-2909083899-r3" x="378.2" y="68.8" textLength="85.4" clip-path="url(#terminal-2909083899-line-2)">COMMAND</text><text class="terminal-2909083899-r1" x="463.6" y="68.8" textLength="24.4" clip-path="url(#terminal-2909083899-line-2)">&#160;[</text><text class="terminal-2909083899-r3" x="488" y="68.8" textLength="48.8" clip-path="url(#terminal-2909083899-line-2)">ARGS</text><text class="terminal-2909083899-r1" x="536.8" y="68.8" textLength="439.2" clip-path="url(#terminal-2909083899-line-2)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2909083899-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-2909083899-line-2)">
</text><text class="terminal-2909083899-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-2909083899-line-3)">
</text><text class="terminal-2909083899-r4" x="12.2" y="117.6" textLength="48.8" clip-path="url(#terminal-2909083899-line-4)">Try&#160;</text><text class="terminal-2909083899-r5" x="61" y="117.6" textLength="170.8" clip-path="url(#terminal-2909083899-line-4)">&#x27;01_simple.py&#160;</text><text class="terminal-2909083899-r6" x="231.8" y="117.6" textLength="12.2" clip-path="url(#terminal-2909083899-line-4)">-</text><text class="terminal-2909083899-r6" x="244" y="117.6" textLength="61" clip-path="url(#terminal-2909083899-line-4)">-help</text><text class="terminal-2909083899-r5" x="305" y="117.6" textLength="12.2" clip-path="url(#terminal-2909083899-line-4)">&#x27;</text><text class="terminal-2909083899-r4" x="317.2" y="117.6" textLength="122" clip-path="url(#terminal-2909083899-line-4)">&#160;for&#160;help.</text><text class="terminal-2909083899-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-2909083899-line-4)">
</text><text class="terminal-2909083899-r7" x="0" y="142" textLength="24.4" clip-path="url(#terminal-2909083899-line-5)">╭─</text><text class="terminal-2909083899-r7" x="24.4" y="142" textLength="85.4" clip-path="url(#terminal-2909083899-line-5)">&#160;Error&#160;</text><text class="terminal-2909083899-r7" x="109.8" y="142" textLength="841.8" clip-path="url(#terminal-2909083899-line-5)">─────────────────────────────────────────────────────────────────────</text><text class="terminal-2909083899-r7" x="951.6" y="142" textLength="24.4" clip-path="url(#terminal-2909083899-line-5)">─╮</text><text class="terminal-2909083899-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-2909083899-line-5)">
</text><text class="terminal-2909083899-r7" x="0" y="166.4" textLength="12.2" clip-path="url(#terminal-2909083899-line-6)"></text><text class="terminal-2909083899-r1" x="12.2" y="166.4" textLength="207.4" clip-path="url(#terminal-2909083899-line-6)">&#160;No&#160;such&#160;option:&#160;</text><text class="terminal-2909083899-r3" x="219.6" y="166.4" textLength="12.2" clip-path="url(#terminal-2909083899-line-6)">-</text><text class="terminal-2909083899-r3" x="231.8" y="166.4" textLength="48.8" clip-path="url(#terminal-2909083899-line-6)">-hep</text><text class="terminal-2909083899-r1" x="280.6" y="166.4" textLength="170.8" clip-path="url(#terminal-2909083899-line-6)">&#160;Did&#160;you&#160;mean&#160;</text><text class="terminal-2909083899-r3" x="451.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2909083899-line-6)">-</text><text class="terminal-2909083899-r3" x="463.6" y="166.4" textLength="61" clip-path="url(#terminal-2909083899-line-6)">-help</text><text class="terminal-2909083899-r1" x="524.6" y="166.4" textLength="439.2" clip-path="url(#terminal-2909083899-line-6)">?&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2909083899-r7" x="963.8" y="166.4" textLength="12.2" clip-path="url(#terminal-2909083899-line-6)"></text><text class="terminal-2909083899-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-2909083899-line-6)">
</text><text class="terminal-2909083899-r7" x="0" y="190.8" textLength="976" clip-path="url(#terminal-2909083899-line-7)">╰──────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-2909083899-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-2909083899-line-7)">
</text><text class="terminal-2909083899-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-2909083899-line-8)">
</text>
</g>
</g>
</svg>
docs/images/markdown.png

490 KiB

This diff is collapsed.
docs/images/metavars_appended.png

310 KiB

<svg class="rich-terminal" viewBox="0 0 994 513.5999999999999" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-3339123073-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-3339123073-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-3339123073-r1 { fill: #c5c8c6 }
.terminal-3339123073-r2 { fill: #c5c8c6;font-weight: bold }
.terminal-3339123073-r3 { fill: #d0b344;font-weight: bold }
.terminal-3339123073-r4 { fill: #68a0b3;font-weight: bold }
.terminal-3339123073-r5 { fill: #868887 }
.terminal-3339123073-r6 { fill: #4e707b;font-weight: bold }
.terminal-3339123073-r7 { fill: #8d7b39 }
</style>
<defs>
<clipPath id="terminal-3339123073-clip-terminal">
<rect x="0" y="0" width="975.0" height="462.59999999999997" />
</clipPath>
<clipPath id="terminal-3339123073-line-0">
<rect x="0" y="1.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-1">
<rect x="0" y="25.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-2">
<rect x="0" y="50.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-3">
<rect x="0" y="74.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-4">
<rect x="0" y="99.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-5">
<rect x="0" y="123.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-6">
<rect x="0" y="147.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-7">
<rect x="0" y="172.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-8">
<rect x="0" y="196.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-9">
<rect x="0" y="221.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-10">
<rect x="0" y="245.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-11">
<rect x="0" y="269.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-12">
<rect x="0" y="294.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-13">
<rect x="0" y="318.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-14">
<rect x="0" y="343.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-15">
<rect x="0" y="367.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-16">
<rect x="0" y="391.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-3339123073-line-17">
<rect x="0" y="416.3" width="976" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="511.6" rx="8"/><text class="terminal-3339123073-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">Appended&#160;metavar</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-3339123073-clip-terminal)">
<g class="terminal-3339123073-matrix">
<text class="terminal-3339123073-r1" x="0" y="20" textLength="475.8" clip-path="url(#terminal-3339123073-line-0)">$&#160;python&#160;examples/08_metavars.py&#160;--help</text><text class="terminal-3339123073-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-3339123073-line-0)">
</text><text class="terminal-3339123073-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-1)">
</text><text class="terminal-3339123073-r3" x="12.2" y="68.8" textLength="85.4" clip-path="url(#terminal-3339123073-line-2)">Usage:&#160;</text><text class="terminal-3339123073-r2" x="97.6" y="68.8" textLength="195.2" clip-path="url(#terminal-3339123073-line-2)">08_metavars.py&#160;[</text><text class="terminal-3339123073-r4" x="292.8" y="68.8" textLength="85.4" clip-path="url(#terminal-3339123073-line-2)">OPTIONS</text><text class="terminal-3339123073-r2" x="378.2" y="68.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-2)">]</text><text class="terminal-3339123073-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-2)">
</text><text class="terminal-3339123073-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-3339123073-line-3)">
</text><text class="terminal-3339123073-r1" x="0" y="117.6" textLength="976" clip-path="url(#terminal-3339123073-line-4)">&#160;My&#160;amazing&#160;tool&#160;does&#160;all&#160;the&#160;things.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-3339123073-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-3339123073-line-4)">
</text><text class="terminal-3339123073-r5" x="12.2" y="142" textLength="902.8" clip-path="url(#terminal-3339123073-line-5)">This&#160;is&#160;a&#160;minimal&#160;example&#160;based&#160;on&#160;documentation&#160;from&#160;the&#160;&#x27;click&#x27;&#160;package.</text><text class="terminal-3339123073-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-3339123073-line-5)">
</text><text class="terminal-3339123073-r5" x="12.2" y="166.4" textLength="219.6" clip-path="url(#terminal-3339123073-line-6)">You&#160;can&#160;try&#160;using&#160;</text><text class="terminal-3339123073-r6" x="231.8" y="166.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-6)">-</text><text class="terminal-3339123073-r6" x="244" y="166.4" textLength="61" clip-path="url(#terminal-3339123073-line-6)">-help</text><text class="terminal-3339123073-r5" x="305" y="166.4" textLength="561.2" clip-path="url(#terminal-3339123073-line-6)">&#160;at&#160;the&#160;top&#160;level&#160;and&#160;also&#160;for&#160;specific&#160;group&#160;</text><text class="terminal-3339123073-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-6)">
</text><text class="terminal-3339123073-r5" x="12.2" y="190.8" textLength="146.4" clip-path="url(#terminal-3339123073-line-7)">subcommands.</text><text class="terminal-3339123073-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-7)">
</text><text class="terminal-3339123073-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-3339123073-line-8)">
</text><text class="terminal-3339123073-r5" x="0" y="239.6" textLength="24.4" clip-path="url(#terminal-3339123073-line-9)">╭─</text><text class="terminal-3339123073-r5" x="24.4" y="239.6" textLength="109.8" clip-path="url(#terminal-3339123073-line-9)">&#160;Options&#160;</text><text class="terminal-3339123073-r5" x="134.2" y="239.6" textLength="817.4" clip-path="url(#terminal-3339123073-line-9)">───────────────────────────────────────────────────────────────────</text><text class="terminal-3339123073-r5" x="951.6" y="239.6" textLength="24.4" clip-path="url(#terminal-3339123073-line-9)">─╮</text><text class="terminal-3339123073-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-3339123073-line-9)">
</text><text class="terminal-3339123073-r5" x="0" y="264" textLength="12.2" clip-path="url(#terminal-3339123073-line-10)"></text><text class="terminal-3339123073-r4" x="24.4" y="264" textLength="12.2" clip-path="url(#terminal-3339123073-line-10)">-</text><text class="terminal-3339123073-r4" x="36.6" y="264" textLength="73.2" clip-path="url(#terminal-3339123073-line-10)">-debug</text><text class="terminal-3339123073-r1" x="109.8" y="264" textLength="854" clip-path="url(#terminal-3339123073-line-10)">&#160;&#160;&#160;&#160;&#160;Enable&#160;debug&#160;mode.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-3339123073-r5" x="963.8" y="264" textLength="12.2" clip-path="url(#terminal-3339123073-line-10)"></text><text class="terminal-3339123073-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-3339123073-line-10)">
</text><text class="terminal-3339123073-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-11)"></text><text class="terminal-3339123073-r4" x="24.4" y="288.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-11)">-</text><text class="terminal-3339123073-r4" x="36.6" y="288.4" textLength="85.4" clip-path="url(#terminal-3339123073-line-11)">-number</text><text class="terminal-3339123073-r1" x="122" y="288.4" textLength="841.8" clip-path="url(#terminal-3339123073-line-11)">&#160;&#160;&#160;&#160;This&#160;click&#160;choice&#160;has&#160;loads&#160;of&#160;options.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-3339123073-r5" x="963.8" y="288.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-11)"></text><text class="terminal-3339123073-r1" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-11)">
</text><text class="terminal-3339123073-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-12)"></text><text class="terminal-3339123073-r7" x="170.8" y="312.8" textLength="780.8" clip-path="url(#terminal-3339123073-line-12)">(one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|</text><text class="terminal-3339123073-r5" x="963.8" y="312.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-12)"></text><text class="terminal-3339123073-r1" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-12)">
</text><text class="terminal-3339123073-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#terminal-3339123073-line-13)"></text><text class="terminal-3339123073-r7" x="170.8" y="337.2" textLength="780.8" clip-path="url(#terminal-3339123073-line-13)">thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|tw</text><text class="terminal-3339123073-r5" x="963.8" y="337.2" textLength="12.2" clip-path="url(#terminal-3339123073-line-13)"></text><text class="terminal-3339123073-r1" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-3339123073-line-13)">
</text><text class="terminal-3339123073-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#terminal-3339123073-line-14)"></text><text class="terminal-3339123073-r7" x="170.8" y="361.6" textLength="780.8" clip-path="url(#terminal-3339123073-line-14)">enty|twenty-one|twenty-two|twenty-three|twenty-four|twenty-five|</text><text class="terminal-3339123073-r5" x="963.8" y="361.6" textLength="12.2" clip-path="url(#terminal-3339123073-line-14)"></text><text class="terminal-3339123073-r1" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-3339123073-line-14)">
</text><text class="terminal-3339123073-r5" x="0" y="386" textLength="12.2" clip-path="url(#terminal-3339123073-line-15)"></text><text class="terminal-3339123073-r7" x="170.8" y="386" textLength="780.8" clip-path="url(#terminal-3339123073-line-15)">twenty-six|twenty-seven|twenty-eight|twenty-nine|thirty)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-3339123073-r5" x="963.8" y="386" textLength="12.2" clip-path="url(#terminal-3339123073-line-15)"></text><text class="terminal-3339123073-r1" x="976" y="386" textLength="12.2" clip-path="url(#terminal-3339123073-line-15)">
</text><text class="terminal-3339123073-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-16)"></text><text class="terminal-3339123073-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-16)">-</text><text class="terminal-3339123073-r4" x="36.6" y="410.4" textLength="61" clip-path="url(#terminal-3339123073-line-16)">-help</text><text class="terminal-3339123073-r1" x="97.6" y="410.4" textLength="866.2" clip-path="url(#terminal-3339123073-line-16)">&#160;&#160;&#160;&#160;&#160;&#160;Show&#160;this&#160;message&#160;and&#160;exit.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-3339123073-r5" x="963.8" y="410.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-16)"></text><text class="terminal-3339123073-r1" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-3339123073-line-16)">
</text><text class="terminal-3339123073-r5" x="0" y="434.8" textLength="976" clip-path="url(#terminal-3339123073-line-17)">╰──────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-3339123073-r1" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-3339123073-line-17)">
</text><text class="terminal-3339123073-r1" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-3339123073-line-18)">
</text>
</g>
</g>
</svg>
docs/images/metavars_default.png

437 KiB

This diff is collapsed.
docs/images/rich_markup.png

393 KiB

<svg class="rich-terminal" viewBox="0 0 994 464.79999999999995" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-1492709630-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-1492709630-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-1492709630-r1 { fill: #c5c8c6 }
.terminal-1492709630-r2 { fill: #c5c8c6;font-weight: bold }
.terminal-1492709630-r3 { fill: #d0b344;font-weight: bold }
.terminal-1492709630-r4 { fill: #68a0b3;font-weight: bold }
.terminal-1492709630-r5 { fill: #4b4e55 }
.terminal-1492709630-r6 { fill: #868887 }
.terminal-1492709630-r7 { fill: #868887;text-decoration: underline; }
.terminal-1492709630-r8 { fill: #868887;font-style: italic; }
.terminal-1492709630-r9 { fill: #4e707b;font-weight: bold;font-style: italic; }
.terminal-1492709630-r10 { fill: #98729f;font-weight: bold }
.terminal-1492709630-r11 { fill: #d0b344 }
</style>
<defs>
<clipPath id="terminal-1492709630-clip-terminal">
<rect x="0" y="0" width="975.0" height="413.79999999999995" />
</clipPath>
<clipPath id="terminal-1492709630-line-0">
<rect x="0" y="1.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-1">
<rect x="0" y="25.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-2">
<rect x="0" y="50.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-3">
<rect x="0" y="74.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-4">
<rect x="0" y="99.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-5">
<rect x="0" y="123.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-6">
<rect x="0" y="147.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-7">
<rect x="0" y="172.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-8">
<rect x="0" y="196.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-9">
<rect x="0" y="221.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-10">
<rect x="0" y="245.5" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-11">
<rect x="0" y="269.9" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-12">
<rect x="0" y="294.3" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-13">
<rect x="0" y="318.7" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-14">
<rect x="0" y="343.1" width="976" height="24.65"/>
</clipPath>
<clipPath id="terminal-1492709630-line-15">
<rect x="0" y="367.5" width="976" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="462.8" rx="8"/><text class="terminal-1492709630-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">Rich&#160;markup&#160;example</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-1492709630-clip-terminal)">
<rect fill="#608ab1" x="268.4" y="99.1" width="195.2" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-1492709630-matrix">
<text class="terminal-1492709630-r1" x="0" y="20" textLength="512.4" clip-path="url(#terminal-1492709630-line-0)">$&#160;python&#160;examples/04_rich_markup.py&#160;--help</text><text class="terminal-1492709630-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-1492709630-line-0)">
</text><text class="terminal-1492709630-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-1)">
</text><text class="terminal-1492709630-r3" x="12.2" y="68.8" textLength="85.4" clip-path="url(#terminal-1492709630-line-2)">Usage:&#160;</text><text class="terminal-1492709630-r2" x="97.6" y="68.8" textLength="231.8" clip-path="url(#terminal-1492709630-line-2)">04_rich_markup.py&#160;[</text><text class="terminal-1492709630-r4" x="329.4" y="68.8" textLength="85.4" clip-path="url(#terminal-1492709630-line-2)">OPTIONS</text><text class="terminal-1492709630-r2" x="414.8" y="68.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-2)">]</text><text class="terminal-1492709630-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-2)">
</text><text class="terminal-1492709630-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-1492709630-line-3)">
</text><text class="terminal-1492709630-r1" x="0" y="117.6" textLength="268.4" clip-path="url(#terminal-1492709630-line-4)">&#160;My&#160;amazing&#160;tool&#160;does&#160;</text><text class="terminal-1492709630-r5" x="268.4" y="117.6" textLength="195.2" clip-path="url(#terminal-1492709630-line-4)">&#160;all&#160;the&#160;things&#160;</text><text class="terminal-1492709630-r1" x="463.6" y="117.6" textLength="512.4" clip-path="url(#terminal-1492709630-line-4)">.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1492709630-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-1492709630-line-4)">
</text><text class="terminal-1492709630-r6" x="12.2" y="142" textLength="122" clip-path="url(#terminal-1492709630-line-5)">This&#160;is&#160;a&#160;</text><text class="terminal-1492709630-r7" x="134.2" y="142" textLength="183" clip-path="url(#terminal-1492709630-line-5)">minimal&#160;example</text><text class="terminal-1492709630-r6" x="317.2" y="142" textLength="402.6" clip-path="url(#terminal-1492709630-line-5)">&#160;based&#160;on&#160;documentation&#160;from&#160;the&#160;</text><text class="terminal-1492709630-r6" x="719.8" y="142" textLength="183" clip-path="url(#terminal-1492709630-line-5)">&#x27;click&#x27;&#160;package</text><text class="terminal-1492709630-r6" x="902.8" y="142" textLength="12.2" clip-path="url(#terminal-1492709630-line-5)">.</text><text class="terminal-1492709630-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-1492709630-line-5)">
</text><text class="terminal-1492709630-r8" x="12.2" y="166.4" textLength="219.6" clip-path="url(#terminal-1492709630-line-6)">You&#160;can&#160;try&#160;using&#160;</text><text class="terminal-1492709630-r9" x="231.8" y="166.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-6)">-</text><text class="terminal-1492709630-r9" x="244" y="166.4" textLength="61" clip-path="url(#terminal-1492709630-line-6)">-help</text><text class="terminal-1492709630-r8" x="305" y="166.4" textLength="561.2" clip-path="url(#terminal-1492709630-line-6)">&#160;at&#160;the&#160;top&#160;level&#160;and&#160;also&#160;for&#160;specific&#160;group&#160;</text><text class="terminal-1492709630-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-6)">
</text><text class="terminal-1492709630-r8" x="12.2" y="190.8" textLength="146.4" clip-path="url(#terminal-1492709630-line-7)">subcommands.</text><text class="terminal-1492709630-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-7)">
</text><text class="terminal-1492709630-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-1492709630-line-8)">
</text><text class="terminal-1492709630-r6" x="0" y="239.6" textLength="24.4" clip-path="url(#terminal-1492709630-line-9)">╭─</text><text class="terminal-1492709630-r6" x="24.4" y="239.6" textLength="109.8" clip-path="url(#terminal-1492709630-line-9)">&#160;Options&#160;</text><text class="terminal-1492709630-r6" x="134.2" y="239.6" textLength="817.4" clip-path="url(#terminal-1492709630-line-9)">───────────────────────────────────────────────────────────────────</text><text class="terminal-1492709630-r6" x="951.6" y="239.6" textLength="24.4" clip-path="url(#terminal-1492709630-line-9)">─╮</text><text class="terminal-1492709630-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-1492709630-line-9)">
</text><text class="terminal-1492709630-r6" x="0" y="264" textLength="12.2" clip-path="url(#terminal-1492709630-line-10)"></text><text class="terminal-1492709630-r4" x="24.4" y="264" textLength="12.2" clip-path="url(#terminal-1492709630-line-10)">-</text><text class="terminal-1492709630-r4" x="36.6" y="264" textLength="73.2" clip-path="url(#terminal-1492709630-line-10)">-input</text><text class="terminal-1492709630-r3" x="158.6" y="264" textLength="48.8" clip-path="url(#terminal-1492709630-line-10)">PATH</text><text class="terminal-1492709630-r1" x="207.4" y="264" textLength="97.6" clip-path="url(#terminal-1492709630-line-10)">&#160;&#160;Input&#160;</text><text class="terminal-1492709630-r10" x="305" y="264" textLength="48.8" clip-path="url(#terminal-1492709630-line-10)">file</text><text class="terminal-1492709630-r1" x="353.8" y="264" textLength="24.4" clip-path="url(#terminal-1492709630-line-10)">.&#160;</text><text class="terminal-1492709630-r6" x="378.2" y="264" textLength="329.4" clip-path="url(#terminal-1492709630-line-10)">[default:&#160;a&#160;custom&#160;default]</text><text class="terminal-1492709630-r6" x="963.8" y="264" textLength="12.2" clip-path="url(#terminal-1492709630-line-10)"></text><text class="terminal-1492709630-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-1492709630-line-10)">
</text><text class="terminal-1492709630-r6" x="0" y="288.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-11)"></text><text class="terminal-1492709630-r4" x="24.4" y="288.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-11)">-</text><text class="terminal-1492709630-r4" x="36.6" y="288.4" textLength="61" clip-path="url(#terminal-1492709630-line-11)">-type</text><text class="terminal-1492709630-r3" x="158.6" y="288.4" textLength="48.8" clip-path="url(#terminal-1492709630-line-11)">TEXT</text><text class="terminal-1492709630-r1" x="207.4" y="288.4" textLength="280.6" clip-path="url(#terminal-1492709630-line-11)">&#160;&#160;Type&#160;of&#160;file&#160;to&#160;sync&#160;</text><text class="terminal-1492709630-r6" x="488" y="288.4" textLength="195.2" clip-path="url(#terminal-1492709630-line-11)">[default:&#160;files]</text><text class="terminal-1492709630-r6" x="963.8" y="288.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-11)"></text><text class="terminal-1492709630-r1" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-11)">
</text><text class="terminal-1492709630-r6" x="0" y="312.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-12)"></text><text class="terminal-1492709630-r4" x="24.4" y="312.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-12)">-</text><text class="terminal-1492709630-r4" x="36.6" y="312.8" textLength="48.8" clip-path="url(#terminal-1492709630-line-12)">-all</text><text class="terminal-1492709630-r1" x="207.4" y="312.8" textLength="756.4" clip-path="url(#terminal-1492709630-line-12)">&#160;&#160;Sync&#160;all&#160;the&#160;things?&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1492709630-r6" x="963.8" y="312.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-12)"></text><text class="terminal-1492709630-r1" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-1492709630-line-12)">
</text><text class="terminal-1492709630-r6" x="0" y="337.2" textLength="12.2" clip-path="url(#terminal-1492709630-line-13)"></text><text class="terminal-1492709630-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#terminal-1492709630-line-13)">-</text><text class="terminal-1492709630-r4" x="36.6" y="337.2" textLength="73.2" clip-path="url(#terminal-1492709630-line-13)">-debug</text><text class="terminal-1492709630-r1" x="207.4" y="337.2" textLength="134.2" clip-path="url(#terminal-1492709630-line-13)">&#160;&#160;Enable&#160;👉&#160;</text><text class="terminal-1492709630-r11" x="353.8" y="337.2" textLength="122" clip-path="url(#terminal-1492709630-line-13)">debug&#160;mode</text><text class="terminal-1492709630-r1" x="475.8" y="337.2" textLength="475.8" clip-path="url(#terminal-1492709630-line-13)">&#160;👈&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1492709630-r6" x="963.8" y="337.2" textLength="12.2" clip-path="url(#terminal-1492709630-line-13)"></text><text class="terminal-1492709630-r1" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-1492709630-line-13)">
</text><text class="terminal-1492709630-r6" x="0" y="361.6" textLength="12.2" clip-path="url(#terminal-1492709630-line-14)"></text><text class="terminal-1492709630-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#terminal-1492709630-line-14)">-</text><text class="terminal-1492709630-r4" x="36.6" y="361.6" textLength="61" clip-path="url(#terminal-1492709630-line-14)">-help</text><text class="terminal-1492709630-r1" x="207.4" y="361.6" textLength="756.4" clip-path="url(#terminal-1492709630-line-14)">&#160;&#160;Show&#160;this&#160;message&#160;and&#160;exit.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1492709630-r6" x="963.8" y="361.6" textLength="12.2" clip-path="url(#terminal-1492709630-line-14)"></text><text class="terminal-1492709630-r1" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-1492709630-line-14)">
</text><text class="terminal-1492709630-r6" x="0" y="386" textLength="976" clip-path="url(#terminal-1492709630-line-15)">╰──────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-1492709630-r1" x="976" y="386" textLength="12.2" clip-path="url(#terminal-1492709630-line-15)">
</text><text class="terminal-1492709630-r1" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-1492709630-line-16)">
</text>
</g>
</g>
</svg>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment