Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeanfredrik/yaml-tag
Template literal tag function for YAML in JS
https://github.com/jeanfredrik/yaml-tag
node-module yaml
Last synced: 4 months ago
JSON representation
Template literal tag function for YAML in JS
- Host: GitHub
- URL: https://github.com/jeanfredrik/yaml-tag
- Owner: jeanfredrik
- Created: 2017-06-06T14:47:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-05-06T10:11:46.000Z (almost 2 years ago)
- Last Synced: 2024-09-19T18:06:02.579Z (5 months ago)
- Topics: node-module, yaml
- Language: JavaScript
- Size: 7.81 KB
- Stars: 8
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# yaml-tag
Template literal tag function for YAML in JS β Because yaml is human-friendly and pretty awesome π## How to use
`npm install yaml-tag --save`
`yarn add yaml-tag`
Use as a tag for template literals containing yaml. Itβs parsed using `load` from [js-yaml](https://www.npmjs.com/package/js-yaml).
```js
const yaml = require('yaml-tag');const cats = yaml`
- name: Alice
age: 7
favorite food: ice cream
- name: Tom
age: 3
favorite food: potato chips
`;console.log(cats[0].name); // "Alice"
console.log(cats[1]['favorite food']); // "potato chips"
```Use js expressions where you donβt want to (or can) use plain yaml.
```js
const yaml = require('yaml-tag');const breakingNews = yaml`
title: This Just In
date: ${new Date()}
`;console.log(breakingNews.date instanceof Date); // true
```Wrap yaml in yaml for extra superpowers!
```js
const yaml = require('yaml-tag');
const { times } = require('lodash');const blog = yaml`
posts: ${times(3, (n) => yaml`
title: Lorem ipsum ${n + 1}
body: |
Lorem ipsum dolor sit amet, consectetur
adipisicing elit. Iusto numquam, tempore
culpa ipsam, voluptatibus aliquid laudantium,
nostrum quam aspernatur esse inventore qui
laboriosam eos voluptatum eligendi quas nihil
laborum blanditiis.
`)}
`;/*
{
posts: [
{
title: 'Lorem ipsum 1'
body: 'Lorem ipsum dolor sit amet, consectetur\nadipisicing elit. Iusto numquam, tempore\nculpa ipsam, voluptatibus aliquid laudantium,\nnostrum quam aspernatur esse inventore qui\nlaboriosam eos voluptatum eligendi quas nihil\nlaborum blanditiis.'
},
{
title: 'Lorem ipsum 2'
body: 'Lorem ipsum dolor sit amet, consectetur\nadipisicing elit. Iusto numquam, tempore\nculpa ipsam, voluptatibus aliquid laudantium,\nnostrum quam aspernatur esse inventore qui\nlaboriosam eos voluptatum eligendi quas nihil\nlaborum blanditiis.'
},
{
title: 'Lorem ipsum 3'
body: 'Lorem ipsum dolor sit amet, consectetur\nadipisicing elit. Iusto numquam, tempore\nculpa ipsam, voluptatibus aliquid laudantium,\nnostrum quam aspernatur esse inventore qui\nlaboriosam eos voluptatum eligendi quas nihil\nlaborum blanditiis.'
}
]
}
*/
```