Skip to content

A Collection of Awesome YAML (Ain't Markup Language) Goodies for Structured (Meta) Data in Text

License

Notifications You must be signed in to change notification settings

TomWright/awseome-yaml

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

The design goals for YAML:

- YAML is easily readable by humans.
- YAML data is portable between programming languages.
- YAML matches the native data structures of agile languages.
- YAML has a consistent model to support generic tools.
- YAML supports one-pass processing.
- YAML is expressive and extensible.
- YAML is easy to implement and use.

Awesome YAML (Ain't Markup Language)

A collection of Awesome YAML (Ain't Markup Language) goodies for structured (meta) data in text.

Contributions welcome. Anything missing? Send in a pull request. Thanks.

Formats

"Standard" YAML

YAML HQ

"Safe" YAML

Articles

Tips & Gotchas

Strings with Colons (:)

When to use quotes for your strings?

If your string includes a colon (:) followed by a space you MUST quote your string. Otherwise, the colon is interpreted as a key/value separator (e.g. key: value). Example:

title: "Text Processing with Ruby: Extract Value from the Data That Surrounds You"
title: "Sinatra: Up and Running - Ruby for the Web, Simply"
title: "Using JRuby: Bringing Ruby to Java"

Note: You can quote your strings using double quotes ("") e.g. "Using JRuby: Bringing Ruby to Java" or single quotes('') e.g. 'Using JRuby: Bringing Ruby to Java'.

No Tabs (\t) for Indentation - Use Spaces, Period

Note: Always use spaces for indentation, period. Make sure no tabs (\t) have somehow ended up in your datafile leading to unexpected results.

Predefined Boolean 'n' No Value Constants - True/False, Yes/No, On/Off, ~/Null

Note: The boolean true and false constants e.g.:

true, True, TRUE
y, Y, yes, YES, YES
on, ON, ON
false, False, FALSE
n, N, no, No, NO
off, Off, OFF

will become boolean values e.g. true or false. If you want end-up with a string e.g.:

recommend: Yes       # note: will become => true (boolean)

make sure you use a quoted version e.g.:

recommend: "Yes"     # note: will become => "Yes" (string)

Note: The same holds for the no value null constants e.g.:

~
null, Null, NULL

will become => null (no value). Note: A key without a value will end-up with a null value (and not an empty string, for example). To get an empty string use "" e.g.:

key1:           # note: value will become => null (no value); same as key1: null  or key1: ~
key2: ""        # note: value will become => "" (string)

JSON

JSON is (a subset of) YAML, that is YAML is JSON but JSON is NOT YAML ;-)

Example: Use the inline style for lists (that is, JSON arrays) and hashes (that is, JSON objects) for an alternative "JSON-style" syntax:

[
  { "title": "football.db - Open Football Data",
    "url":   "https://github.com/openfootball" 
  },
  { "title": "beer.db - Open Beer, Brewery 'n' Brewpub Data",
    "url":   "https://github.com/openbeer" 
  }
]

is the same as:

- title : football.db - Open Football Data
  url   : https://github.com/openfootball
- title : beer.db - Open Beer, Brewery 'n' Brewpub Data
  url   : https://github.com/openbeer

Tools & Services

  • YAML Linter @ yamllint.com - online YAML validator / checker
  • YAML Validator @ Code Beautify - online YAML validator / checker
  • Yamlinc - compose multiple files using $include tag / compiler
  • dasel - Query and update data structures using selectors from the command line. Comparable to jq / yq but supports JSON, YAML, TOML and XML with zero runtime dependencies.

Misc

Meta

License

The awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.

Questions? Comments?

Post them to the wwwmake forum. Thanks!

About

A Collection of Awesome YAML (Ain't Markup Language) Goodies for Structured (Meta) Data in Text

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published