Releases: sclevine/yj
Releases · sclevine/yj
yj v5.1.0
Changes
- The
-t
flag now parses/emits TOML v1.0.0 instead of v1.0.0-rc.1. - Escaped quotes in TOML keys are now supported (#20).
- The major version is now reflected in the module path (#22).
gopkg.in/yaml.v3
is upgraded to 496545a.- TOML again uses
github.com/BurntSushi/toml
(v1.1.0), fixing several upstream bugs.
Notes
- The TOML encoder/decoder use new strategies for maintaining order (dynamic struct generation & key tracking).
Installation
Available for macOS via Homebrew:
$ brew install yj
Binaries for Linux, macOS, and Windows are attached below.
Alternatively, you may also install yj via go get
:
$ go get github.com/sclevine/yj/[email protected]
yj
is also available as a Docker image.
yj v5.0.0
Changes
- Conversions between all formats now preserve map order.
- The
-t
flag now parses/emits TOML v1.0.0-rc.1 instead of v0.4.0. - The
-v
flag now prints the version of yj (#9). - YAML conversions now parse/emit floats unambiguously (#3).
- The
-n
flag is now enabled by default when converting between formats that both supportNaN
,Inf
, etc.
Notes
- YAML now uses
gopkg.in/yaml.v3
instead ofgopkg.in/yaml.v2
. - TOML now uses
github.com/pelletier/go-toml
instead ofgithub.com/BurntSushi/toml
. - For most formats, preserving map order required manually parsing the AST of the various data format libraries. This change improved other formatting issues, such as the ambiguity of floats in YAML. However, it also increased the complexity of yj significantly -- please report bugs!
Installation
Available for macOS via Homebrew:
$ brew install yj
Binaries for Linux, macOS, and Windows are attached below.
Alternatively, you may also install yj via go get
:
$ go get github.com/sclevine/yj
yj v4.0.0
Release Notes
Features
- Add
-i
flag to indent JSON and TOML output (#4).
Breaking Changes
-
TOML output is now unindented by default. Pass
-i
to use the previous behavior.BurntSushi/toml applies more aggressive indentation compared to the examples in the TOML spec, and the TOML spec does not recommend (or recommend against) indenting. Opt-in indentation seems preferable.
yj v3.1.0
yj v3.0
yj v2.0
yj v1.0
opal:yj stephen$ yj -h
Usage: yj [-][rcjenkh]
Converts stdin from JSON/YAML to YAML/JSON.
-r Convert JSON to YAML instead of YAML to JSON
-c Use CandiedYAML parser instead of GoYAML parser
-n Do not covert Infinity, -Infinity, and NaN to/from strings
-h Show this help message
YAML to JSON options:
-e Escape HTML in JSON output (ignored for JSON to YAML)
JSON to YAML (-r) options:
-y Use a YAML decoder instead of a JSON decoder to parse JSON
-k Attempt to parse keys as JSON objects/numbers