Add readme
This commit is contained in:
parent
dfdd66b021
commit
ab78733b9b
88
README.md
Normal file
88
README.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# JSONEdit
|
||||||
|
|
||||||
|
This is an editor for JSON files, that also supports YAML.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Interactive terminal TUI application
|
||||||
|
- Makes use of Unicode glyphs in 16 magnificent colors!
|
||||||
|
- Handles array, objects and values
|
||||||
|
- Folding of array and object keys
|
||||||
|
- Core edit operations: insert, edit, delete
|
||||||
|
- A minimum of dependencies
|
||||||
|
- ~300KB executable PHAR
|
||||||
|
|
||||||
|
## Installing
|
||||||
|
|
||||||
|
The recommended way to install and run JSONEdit is by grabbing the PHAR from
|
||||||
|
the latest release:
|
||||||
|
|
||||||
|
- [https://dev.noccylabs.info/noccy/jsonedit/releases](https://dev.noccylabs.info/noccy/jsonedit/releases)
|
||||||
|
|
||||||
|
You can also clone the respository and use [Box](https://box-project.github.io/box/)
|
||||||
|
to build the .phar yourself:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone https://dev.noccylabs.info/noccy/jsonedit
|
||||||
|
$ cd jsonedit
|
||||||
|
$ composer install
|
||||||
|
$ box compile
|
||||||
|
$ mv bin/jsonedit.phar ~/bin/jsonedit
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using
|
||||||
|
|
||||||
|
JSONEdit is controlled using hotkeys. The essential keys are always displayed
|
||||||
|
at the bottom of the screen.
|
||||||
|
|
||||||
|
### Creating a document from scratch
|
||||||
|
|
||||||
|
1. Run `jsonedit` from your shell.
|
||||||
|
2. Press **I** to insert a new key. Select "Object" in the menu. Enter "services" and press enter.
|
||||||
|
3. Select the newly created "services" key and press **I** to insert another object. Enter "nginx" and press enter.
|
||||||
|
4. Select the newly created "nginx" key. Press **i** to insert a value. Enter "image" for key and "nginx" for value.
|
||||||
|
5. Press **I** and select "Array". Enter "ports" and press enter.
|
||||||
|
6. Select the "ports" key and press **i**. Enter "80:80" and press enter.
|
||||||
|
7. Press **^W** to save the file. Enter "compose.yaml" and press enter.
|
||||||
|
8. Press **^X** to exit.
|
||||||
|
|
||||||
|
You should now have a `compose.yaml` file that spins up a completely useless
|
||||||
|
unconfigured nginx container.
|
||||||
|
|
||||||
|
### Editing a document
|
||||||
|
|
||||||
|
1. Run `jsonedit <filename>` from your shell.
|
||||||
|
2. Find the value you want to edit and press **e**.
|
||||||
|
3. Enter the value usng valid JSON value encoding, for example `"1234"` for the
|
||||||
|
string 1234, and `1234` for the integer 1234. Unparsable JSON will be used
|
||||||
|
as a verbatim string.
|
||||||
|
4. Make any additional edits, including using **i** and **I** to insert new
|
||||||
|
keys and values, and **D** to delete values.
|
||||||
|
5. Press **^W** to save the file. Enter the filename to write and press enter.
|
||||||
|
6. Press **^X** to exit.
|
||||||
|
|
||||||
|
### Folding
|
||||||
|
|
||||||
|
To fold and unfold keys, use the following keys:
|
||||||
|
|
||||||
|
- **+** - Toggle folding of current key
|
||||||
|
- **-** - Collapse all nodes but the first
|
||||||
|
- **←** - Collapse current key, or go to parent if a value or already collapsed
|
||||||
|
- **→** - Expand current key
|
||||||
|
|
||||||
|
### Customizing JSONEdit
|
||||||
|
|
||||||
|
Use the following keys to customize the appearance of JSONEdit. The settings
|
||||||
|
will be persisted for the next session if the directory `~/.config/jsonedit`
|
||||||
|
exists.
|
||||||
|
|
||||||
|
- **g** - Toggle indentation guides
|
||||||
|
- **t** - Toggle tail line guide
|
||||||
|
- **b** - Toggle icons before keys
|
||||||
|
- **c** - Toggle compact mode
|
||||||
|
|
||||||
|
## Caveats
|
||||||
|
|
||||||
|
- **YAML comments/formatting is not preserved** - When reading YAML, comments are
|
||||||
|
not preserved, and YAML formatting is not preserved when writing YAML.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user