{"id":13518374,"url":"https://github.com/json-next/awesome-yaml","last_synced_at":"2025-03-31T09:31:29.495Z","repository":{"id":56583826,"uuid":"95691005","full_name":"json-next/awesome-yaml","owner":"json-next","description":"A Collection of Awesome YAML (Ain't Markup Language) Goodies for Structured (Meta) Data in Text","archived":false,"fork":false,"pushed_at":"2024-09-26T14:36:21.000Z","size":19,"stargazers_count":32,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-21T10:02:54.417Z","etag":null,"topics":["data","json","metadata","opendata","txt","yaml"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/json-next.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-28T16:43:20.000Z","updated_at":"2024-09-26T14:37:24.000Z","dependencies_parsed_at":"2025-02-02T06:45:12.821Z","dependency_job_id":null,"html_url":"https://github.com/json-next/awesome-yaml","commit_stats":null,"previous_names":["datatxt/awesome-yaml","datatxt/awseome-yaml"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-next%2Fawesome-yaml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-next%2Fawesome-yaml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-next%2Fawesome-yaml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-next%2Fawesome-yaml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/json-next","download_url":"https://codeload.github.com/json-next/awesome-yaml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246358259,"owners_count":20764366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","json","metadata","opendata","txt","yaml"],"created_at":"2024-08-01T05:01:44.102Z","updated_at":"2025-03-31T09:31:29.487Z","avatar_url":"https://github.com/json-next.png","language":null,"funding_links":[],"categories":["Technical"],"sub_categories":["awesome-*"],"readme":"\n``` yaml\nThe design goals for YAML:\n\n- YAML is easily readable by humans.\n- YAML data is portable between programming languages.\n- YAML matches the native data structures of agile languages.\n- YAML has a consistent model to support generic tools.\n- YAML supports one-pass processing.\n- YAML is expressive and extensible.\n- YAML is easy to implement and use.\n```\n\n\n# Awesome YAML (Ain't Markup Language)\n\nA collection of Awesome YAML (Ain't Markup Language) goodies for structured (meta) data in text.\n\n\n#### _Contributions welcome. Anything missing? Send in a pull request. Thanks._\n\n\n## Formats\n\n### \"Standard\" YAML\n\n**YAML HQ**\n\n- [`yaml.org`](http://www.yaml.org) - official YAML website by Clark C. Evans\n  - [YAML Spec v1.2](http://yaml.org/spec/1.2/spec.html) - 3rd edition, Oct 2009 \n  - [YAML Quick Reference Card](http://www.yaml.org/refcard.html) - one-page cheat sheet\n\n### \"Safe\" YAML, \"Strict\" YAML\n\n- [`strictyaml`](https://github.com/crdoconnor/strictyaml) - a type-safe YAML parser that parses and validates a restricted subset of the YAML specification\n  - [YAML Features Removed](https://hitchdev.com/strictyaml/features-removed/)\n    - NO Implicit Typing \n    - NO Direct representations of objects\n    - NO Duplicate Keys Disallowed\n    - NO Explicit tags \n    - NO Node anchors and refs\n    - NO Flow style\n\n\n### Nested Text  - YAML Simplified, YAML Evolved \n\n_\"Safer\" YAML - YAML Redux_\n\n- [`nestedtext.org`](https://nestedtext.org), [(github)](https://github.com/KenKundert/nestedtext) - a human friendly data format similar to YAML but without the complexity and risk of YAML \n\nExample:\n\n```\n# Contact information for our officers\n\npresident:\n    name: Katheryn McDaniel\n    address:\n        \u003e 138 Almond Street\n        \u003e Topeka, Kansas 20697\n    phone:\n        cell: 1-210-555-5297\n        home: 1-210-555-8470\n            # Katheryn prefers that we always call her on her cell phone.\n    email: KateMcD@aol.com\n    additional roles:\n        - board member\n```\n\n\n## Articles\n\n- [**YAML Quick Reference (Cheat Sheet) for Jekyll Data Files, Front Matter and Collections**](https://github.com/planetjekyll/quickrefs/blob/master/YAML.md), Planet Jekyll\n- [**Learn YAML in Y Minutes**](https://learnxinyminutes.com/docs/yaml), Learn X in Y minutes series, \n- [**Deep dive into TOML, JSON and YAML**](https://gohugohq.com/howto/toml-json-yaml-comparison/),  Go Hugo HQ, Dec 2016\n- [**YAML @ Wikipedia**](https://en.wikipedia.org/wiki/YAML)\n\n\n## Tips \u0026 Gotchas\n\n\n**Strings with Colons (`:`)**\n\nWhen to use quotes for your strings?\n\nIf 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:\n\n``` yaml\ntitle: \"Text Processing with Ruby: Extract Value from the Data That Surrounds You\"\ntitle: \"Sinatra: Up and Running - Ruby for the Web, Simply\"\ntitle: \"Using JRuby: Bringing Ruby to Java\"\n```\n\nNote: You can quote your strings using double quotes (`\"\"`) e.g. \"Using JRuby: Bringing Ruby to Java\" \nor single quotes(`''`) e.g. 'Using JRuby: Bringing Ruby to Java'.\n\n\n\n**No Tabs (\\t) for Indentation - Use Spaces, Period**\n\nNote: Always use spaces for indentation, period. \nMake sure no tabs (`\\t`) have somehow ended up in your datafile leading to\nunexpected results.\n\n\n\n**Predefined Boolean 'n' No Value Constants - True/False, Yes/No, On/Off, ~/Null**\n\nNote: The boolean `true` and `false` constants e.g.:\n\n```\ntrue, True, TRUE\ny, Y, yes, YES, YES\non, ON, ON\nfalse, False, FALSE\nn, N, no, No, NO\noff, Off, OFF\n```\n\nwill become boolean values e.g. `true` or `false`.  If you want end-up with a string e.g.:\n\n``` yaml\nrecommend: Yes       # note: will become =\u003e true (boolean)\n```\n\nmake sure you use a quoted version e.g.:\n\n``` yaml\nrecommend: \"Yes\"     # note: will become =\u003e \"Yes\" (string)\n```\n\n\nNote: The same holds for the no value null constants e.g.:\n\n``` yaml\n~\nnull, Null, NULL\n```\n\nwill become =\u003e `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.:\n\n``` yaml\nkey1:           # note: value will become =\u003e null (no value); same as key1: null  or key1: ~\nkey2: \"\"        # note: value will become =\u003e \"\" (string)\n```\n\n\n\n## JSON \n\n_JSON is (a subset of) YAML, that is YAML is JSON but JSON is NOT YAML ;-)_\n\nExample: Use the inline style for lists (that is, JSON arrays)\nand hashes (that is, JSON objects) for an alternative \"JSON-style\" syntax:\n\n\n``` json\n[\n  { \"title\": \"football.db - Open Football Data\",\n    \"url\":   \"https://github.com/openfootball\" \n  },\n  { \"title\": \"beer.db - Open Beer, Brewery 'n' Brewpub Data\",\n    \"url\":   \"https://github.com/openbeer\" \n  }\n]\n```\n\nis the same as:\n\n``` yaml\n- title : football.db - Open Football Data\n  url   : https://github.com/openfootball\n- title : beer.db - Open Beer, Brewery 'n' Brewpub Data\n  url   : https://github.com/openbeer\n```\n\n\n\n\n## Tools \u0026 Services\n\n- [**YAML Linter @ yamllint.com**](http://www.yamllint.com) - online YAML validator / checker\n- [**YAML Validator @ Code Beautify**](https://codebeautify.org/yaml-validator) - online YAML validator / checker\n- [**YAML Comparator @ yamline**](https://yamline.com/compare/) - online YAML comparator\n- [**Yamlinc**](https://github.com/javanile/yamlinc) - compose multiple files using $include tag / compiler\n- [**dasel (\"data-selector\")**](https://github.com/tomwright/dasel) - Query and update data structures using selectors from the command line. Comparable to [jq](https://github.com/stedlan/jq) / [yq](https://github.com/kislyuk/yq) but supports JSON, YAML, TOML and XML with zero runtime dependencies.\n\n\n## No Body Wants To Write YAML \n\n``` yaml\nNo:\n  Body:\n    Wants:\n      To:\n        Write:\n          - YAML\n```\n\n- [**`noyaml.com`**](https://noyaml.com), [(github)](https://github.com/ghuntley/noyaml) - a rant about the state of devops tooling / the infrastructure sector \n\nMandatory \"No Body Wants To Write YAML\" reading list:\n- [Today we’re going to look at some general problems with the YAML format](https://arp242.net/yaml-config.html)\n- [We replaced 1,000 lines of YAML with 10 structs and people started contributing again](https://tinyurl.com/lessons-in-over-engineering)\n- [What if you used the same language and tools you use to define your app to define your infrastructure?](https://twitter.com/ellism/status/1008728148131733504)\n- [A YAML file is almost always still 'valid' even if it is trunca](https://twitter.com/colmmacc/status/1057316977457324032)\n- [The bug was that the YAML parser ignored the negative signs ... so negative GPS coordinates became positive ones](https://twitter.com/colmmacc/status/1063470541464461312)\n- [Every YAML parser is a custom YAML parser](https://matrix.yaml.io/valid.html)\n- [There are 63 different ways to write multi-line strings in YAML](https://stackoverflow.com/a/21699210/1094085)\n\n\n\n## Misc\n\n- [**Feed.TXT**](https://feedtxt.github.io) - web feed format with meta data in YAML\n- [**YAML @ Stackoverflow**](https://stackoverflow.com/tags/yaml/info) - frequently asked questions (and answers) about YAML\n- [**Manifest**](https://manifest.build) - a complete backend in 1 YAML file \n\n\n## Meta\n\n**License**\n\n![](https://publicdomainworks.github.io/buttons/zero88x31.png)\n\nThe awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.\n\n**Questions? Comments?**\n\nPost them to the [wwwmake forum](http://groups.google.com/group/wwwmake). Thanks!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjson-next%2Fawesome-yaml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjson-next%2Fawesome-yaml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjson-next%2Fawesome-yaml/lists"}