#yaml #lib #cli #include #binary-data #document

bin+lib yaml-include

用于递归解析 yaml 文件中 "!include" 数据的库和 CLI 工具

5 个版本 (破坏性更新)

0.7.0 2023年7月4日
0.6.0 2023年6月21日
0.5.0 2023年6月21日
0.4.1 2023年6月9日
0.3.0 2023年6月8日

#2190编码

Download history 38/week @ 2024-03-14 42/week @ 2024-03-21 41/week @ 2024-03-28 109/week @ 2024-04-04 70/week @ 2024-04-11 56/week @ 2024-04-18 192/week @ 2024-04-25 63/week @ 2024-05-02 117/week @ 2024-05-09 108/week @ 2024-05-16 73/week @ 2024-05-23 106/week @ 2024-05-30 137/week @ 2024-06-06 144/week @ 2024-06-13 125/week @ 2024-06-20 73/week @ 2024-06-27

每月499 次下载

GPL-3.0 许可证

24KB
199

Yaml-include

一个通过 !include <path> 标签处理带有包含文档的 yaml 的 CLI 工具。

它也可以与 json 一起工作,请参见 data/simple/other.json

安装

cargo install yaml-include

特性

  • 递归包含和解析 yaml(和 json)文件
  • 包含 markdowntxt 文本文件
  • base64 编码的二进制数据包含其他类型。
  • 默认情况下,使用 !circular 标签优雅地处理循环引用

用法

帮助

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

运行

示例

yaml-include data/sample/main.yml > main_inlined.yml

基本上,将这个

main.yml:

data:
    - !include file_a.yml
    - !include file_b.yml

file_a.yml:

something:
    - this
    - that

file_b.yml:

other:
    - text: !include file_c.txt
    - markdown: !include 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:

# This is some markdown data

## I don't want to edit

- inline
- in a long yaml file

转换为这个

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

请参阅 data/sample

依赖项

~5.5–7.5MB
~139K SLoC