Yaml-include
A cli tool for processing yaml with include documents through !include <path> tag.
it kinda works with json as well see data/simple/other.json
Install
cargo install yaml-include
Features
- include and parse recursively
yaml(andjson) files - include
markdownandtxttext files - include other types as
base64encoded binary data. - hint or force extension with
!include { "path": "<file_path>", "extension": "txt"} - by default handle gracefully circular references with
!circulartag
Usage
Help
yaml-include --help
A simple cli that output to stdout recursively included data from a yaml file path
Usage: yaml-include [OPTIONS] <FILE_PATH>
Arguments:
<FILE_PATH> main yaml file path to process
Options:
-o, --output-path <OUTPUT_PATH> optional output path (output to stdout if not set)
-p, --panic-on-circular panic on circular reference (default: gracefully handle circular references with !circular tag)
-h, --help Print help
-V, --version Print version
Run
Ex.:
yaml-include data/sample/main.yml > main_inlined.yml
Basically, turns this:
main.yml:
data:
- file_a.yml
- file_b.yml
-
file_a.yml:
something:
- this
- that
file_b.yml:
other:
- text: file_c.txt
- markdown: file_d.md
file_c.txt:
This is some "long" multiline
text file i don't want to edit
inline in a long yaml file
file_d.md:
- -
Into that:
data:
- something:
- this
- that
- other:
- text: |
This is some long multiline
text i don't want to edit
inline in a long yaml file
- markdown: |
# This is some markdown data
## I don't want to edit
- inline
- in a long yaml file
- |
other:
- text: !include file_c.txt
- markdown: !include file_d.md
see data/sample