23 lines
1.3 KiB
Markdown
23 lines
1.3 KiB
Markdown
# Reqs
|
|
|
|
## python package managment
|
|
- Use `uv`
|
|
- Ignore `uv.lock` even if it's against the spirit; causes trouble when going cross-architecture
|
|
- app should be runnable with only `uv run svgqr <ARGS>` or `svgqr <ARGS>`
|
|
|
|
## cli options (args)
|
|
- **raw text mode**: `-t <TEXT>` or `-t "<TEXT>"` (for those including space/tabs); `-t` can be omitted as this is the default mode.
|
|
- **output path**: `-o PATH/TO/SVG`. Automatically append `.svg` suffix if absent. When whole option is absent, use input text but path-incompatible characters substituted with `_`, and filename capped at 32 chars.
|
|
- **batch mode**: `-i <FILE_OF_LINES_TO_CONVERT>` ; output automatically dumps generated svgs per line of input file under `output/`; SVG files named after input lines verbatim except that path-incompatible characters substituted with `_` (underbar), and filename capped at 32 chars. Disregard `-o`.
|
|
- **batch mode with `yaml`**: `--yaml <LINES>.yaml`; the input YAML should be of a flat structure:
|
|
```yaml
|
|
item0: text0
|
|
item1: text1
|
|
item2: text2 and there can be spaces
|
|
```
|
|
output files go under `output/` and are named `item0.svg`, `item1.svg`, etc.
|
|
Reject invalid YAML without generating output files.
|
|
|
|
## svg generation
|
|
- Generate convex paths, not weighted edges
|