- Notifications
You must be signed in to change notification settings - Fork3
A Collection of Awesome YAML (Ain't Markup Language) Goodies for Structured (Meta) Data in Text
License
json-next/awesome-yaml
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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.
A collection of Awesome YAML (Ain't Markup Language) goodies for structured (meta) data in text.
YAML HQ
yaml.org
- official YAML website by Clark C. Evans- YAML Spec v1.2 - 3rd edition, Oct 2009
- YAML Quick Reference Card - one-page cheat sheet
strictyaml
- a type-safe YAML parser that parses and validates a restricted subset of the YAML specification- YAML Features Removed
- NO Implicit Typing
- NO Direct representations of objects
- NO Duplicate Keys Disallowed
- NO Explicit tags
- NO Node anchors and refs
- NO Flow style
- YAML Features Removed
"Safer" YAML - YAML Redux
nestedtext.org
,(github) - a human friendly data format similar to YAML but without the complexity and risk of YAML
Example:
# Contact information for our officerspresident: name: Katheryn McDaniel address: > 138 Almond Street > Topeka, Kansas 20697 phone: cell: 1-210-555-5297 home: 1-210-555-8470 # Katheryn prefers that we always call her on her cell phone. email: KateMcD@aol.com additional roles: - board member
- YAML Quick Reference (Cheat Sheet) for Jekyll Data Files, Front Matter and Collections, Planet Jekyll
- Learn YAML in Y Minutes, Learn X in Y minutes series,
- Deep dive into TOML, JSON and YAML, Go Hugo HQ, Dec 2016
- YAML @ Wikipedia
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 tounexpected results.
Predefined Boolean 'n' No Value Constants - True/False, Yes/No, On/Off, ~/Null
Note: The booleantrue
andfalse
constants e.g.:
true, True, TRUEy, Y, yes, YES, YESon, ON, ONfalse, False, FALSEn, N, no, No, NOoff, Off, OFF
will become boolean values e.g.true
orfalse
. 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 anull
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 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 Dataurl:https://github.com/openfootball-title:beer.db - Open Beer, Brewery 'n' Brewpub Dataurl:https://github.com/openbeer
- YAML Linter @ yamllint.com - online YAML validator / checker
- YAML Validator @ Code Beautify - online YAML validator / checker
- YAML Comparator @ yamline - online YAML comparator
- Yamlinc - compose multiple files using $include tag / compiler
- dasel ("data-selector") - Query and update data structures using selectors from the command line. Comparable tojq /yq but supports JSON, YAML, TOML and XML with zero runtime dependencies.
No:Body:Wants:To:Write: -YAML
noyaml.com
,(github) - a rant about the state of devops tooling / the infrastructure sector
Mandatory "No Body Wants To Write YAML" reading list:
- Today we’re going to look at some general problems with the YAML format
- We replaced 1,000 lines of YAML with 10 structs and people started contributing again
- What if you used the same language and tools you use to define your app to define your infrastructure?
- A YAML file is almost always still 'valid' even if it is trunca
- The bug was that the YAML parser ignored the negative signs ... so negative GPS coordinates became positive ones
- Every YAML parser is a custom YAML parser
- There are 63 different ways to write multi-line strings in YAML
- Feed.TXT - web feed format with meta data in YAML
- YAML @ Stackoverflow - frequently asked questions (and answers) about YAML
- Manifest - a complete backend in 1 YAML file
License
The awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.
Questions? Comments?
Post them to thewwwmake forum. Thanks!
About
A Collection of Awesome YAML (Ain't Markup Language) Goodies for Structured (Meta) Data in Text