You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/JQ_COMPATIBILITY.md
+19-21Lines changed: 19 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -461,37 +461,35 @@ query-json includes some functions not found in jq:
461
461
462
462
## Video Demos
463
463
464
-
All the examples in this guide have corresponding VHS tape demos. You can find them in [`docs/jq-compat-demos/`](./jq-compat-demos/) and generate the videos using [VHS](https://github.com/charmbracelet/vhs).
464
+
All the examples in this guide have corresponding asciinema demos. Cast recordings and GIFs are generated from scripts in [`docs/demo-scripts/jq-compat-demos/`](./demo-scripts/jq-compat-demos/).
465
465
466
466
### Available Demos
467
467
468
-
| Demo | Description |Tape File|
469
-
|------|-------------|-----------|
470
-
|**Error Messages**| Helpful error messages with context and hints |[`00-error-messages.tape`](./jq-compat-demos/00-error-messages.tape)|
471
-
|**Null Handling**| Stricter null handling catches bugs early |[`01-stricter-null-handling.tape`](./jq-compat-demos/01-stricter-null-handling.tape)|
472
-
|**fn vs def**|`fn` keyword for user-defined functions |[`02-fn-vs-def.tape`](./jq-compat-demos/02-fn-vs-def.tape)|
473
-
|**Snake_case**| Readable `snake_case` function names |[`03-snake-case-naming.tape`](./jq-compat-demos/03-snake-case-naming.tape)|
474
-
|**Clearer Naming**| Self-explanatory function names |[`04-clearer-naming.tape`](./jq-compat-demos/04-clearer-naming.tape)|
475
-
|**group_by**| Returns object instead of array of arrays |[`05-group-by-behavior.tape`](./jq-compat-demos/05-group-by-behavior.tape)|
476
-
|**keys**| Preserves insertion order |[`06-keys-insertion-order.tape`](./jq-compat-demos/06-keys-insertion-order.tape)|
477
-
|**unique**| Preserves insertion order |[`07-unique-insertion-order.tape`](./jq-compat-demos/07-unique-insertion-order.tape)|
|**Error Messages**| Helpful error messages with context and hints |`jq-compat-demos/00-error-messages`|[`00-error-messages.sh`](./demo-scripts/jq-compat-demos/00-error-messages.sh)|[`00-error-messages.gif`](./jq-compat-demos/00-error-messages.gif)|[`00-error-messages.cast`](./jq-compat-demos/00-error-messages.cast)|
471
+
|**Null Handling**| Stricter null handling catches bugs early |`jq-compat-demos/01-stricter-null-handling`|[`01-stricter-null-handling.sh`](./demo-scripts/jq-compat-demos/01-stricter-null-handling.sh)|[`01-stricter-null-handling.gif`](./jq-compat-demos/01-stricter-null-handling.gif)|[`01-stricter-null-handling.cast`](./jq-compat-demos/01-stricter-null-handling.cast)|
472
+
|**fn vs def**|`fn` keyword for user-defined functions |`jq-compat-demos/02-fn-vs-def`|[`02-fn-vs-def.sh`](./demo-scripts/jq-compat-demos/02-fn-vs-def.sh)|[`02-fn-vs-def.gif`](./jq-compat-demos/02-fn-vs-def.gif)|[`02-fn-vs-def.cast`](./jq-compat-demos/02-fn-vs-def.cast)|
473
+
|**Snake_case**| Readable `snake_case` function names |`jq-compat-demos/03-snake-case-naming`|[`03-snake-case-naming.sh`](./demo-scripts/jq-compat-demos/03-snake-case-naming.sh)|[`03-snake-case-naming.gif`](./jq-compat-demos/03-snake-case-naming.gif)|[`03-snake-case-naming.cast`](./jq-compat-demos/03-snake-case-naming.cast)|
474
+
|**Clearer Naming**| Self-explanatory function names |`jq-compat-demos/04-clearer-naming`|[`04-clearer-naming.sh`](./demo-scripts/jq-compat-demos/04-clearer-naming.sh)|[`04-clearer-naming.gif`](./jq-compat-demos/04-clearer-naming.gif)|[`04-clearer-naming.cast`](./jq-compat-demos/04-clearer-naming.cast)|
475
+
|**group_by**| Returns object instead of array of arrays |`jq-compat-demos/05-group-by-behavior`|[`05-group-by-behavior.sh`](./demo-scripts/jq-compat-demos/05-group-by-behavior.sh)|[`05-group-by-behavior.gif`](./jq-compat-demos/05-group-by-behavior.gif)|[`05-group-by-behavior.cast`](./jq-compat-demos/05-group-by-behavior.cast)|
476
+
|**keys**| Preserves insertion order |`jq-compat-demos/06-keys-insertion-order`|[`06-keys-insertion-order.sh`](./demo-scripts/jq-compat-demos/06-keys-insertion-order.sh)|[`06-keys-insertion-order.gif`](./jq-compat-demos/06-keys-insertion-order.gif)|[`06-keys-insertion-order.cast`](./jq-compat-demos/06-keys-insertion-order.cast)|
477
+
|**unique**| Preserves insertion order |`jq-compat-demos/07-unique-insertion-order`|[`07-unique-insertion-order.sh`](./demo-scripts/jq-compat-demos/07-unique-insertion-order.sh)|[`07-unique-insertion-order.gif`](./jq-compat-demos/07-unique-insertion-order.gif)|[`07-unique-insertion-order.cast`](./jq-compat-demos/07-unique-insertion-order.cast)|
|**Optional Functions**|`?` works on function calls |`jq-compat-demos/09-optional-access-functions`|[`09-optional-access-functions.sh`](./demo-scripts/jq-compat-demos/09-optional-access-functions.sh)|[`09-optional-access-functions.gif`](./jq-compat-demos/09-optional-access-functions.gif)|[`09-optional-access-functions.cast`](./jq-compat-demos/09-optional-access-functions.cast)|
480
+
|**Additional Features**| Features unique to query-json |`jq-compat-demos/10-additional-features`|[`10-additional-features.sh`](./demo-scripts/jq-compat-demos/10-additional-features.sh)|[`10-additional-features.gif`](./jq-compat-demos/10-additional-features.gif)|[`10-additional-features.cast`](./jq-compat-demos/10-additional-features.cast)|
481
+
|**All Demos**| Complete overview of all differences |`jq-compat-demos/all-demos`|[`all-demos.sh`](./demo-scripts/jq-compat-demos/all-demos.sh)|[`all-demos.gif`](./jq-compat-demos/all-demos.gif)|[`all-demos.cast`](./jq-compat-demos/all-demos.cast)|
482
482
483
483
### Generating Videos
484
484
485
-
To generate all demo videos:
485
+
To generate all demo casts and GIFs:
486
486
487
487
```bash
488
488
# Generate all demos
489
-
fortapein docs/jq-compat-demos/*.tape;do
490
-
vhs "$tape"
491
-
done
489
+
make demo-all
492
490
493
491
# Or generate a specific demo
494
-
vhs docs/jq-compat-demos/all-demos.tape
492
+
make demo FILE=jq-compat-demos/all-demos
495
493
```
496
494
497
-
The generated `.mp4` files will be placed in `docs/jq-compat-demos/`.
495
+
The generated `.cast` and `.gif` files are placed in `docs/jq-compat-demos/`.
0 commit comments