Skip to content

Instantly share code, notes, and snippets.

@scripting
Last active September 23, 2018 00:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save scripting/6d97390fe1f7a03567d96eb4776c82f8 to your computer and use it in GitHub Desktop.
Save scripting/6d97390fe1f7a03567d96eb4776c82f8 to your computer and use it in GitHub Desktop.
Convert between YAML and JSON and vice versa
const utils = require ("daveutils");
const yaml = require ("js-yaml");
function yamlIze (jsontext) {
var jstruct = JSON.parse (jsontext);
const delimiter = "---\n";
var text = jstruct.text;
delete jstruct.text;
var s = delimiter + yaml.safeDump (jstruct) + delimiter + text;
return (s);
}
function deYamlIze (data) {
const delimiter = "---\n";
var filetext = data.toString ();
if (utils.beginsWith (filetext, delimiter)) {
var frontmatter = utils.stringNthField (filetext, delimiter, 2);
var remainingtext = utils.stringDelete (filetext, 1, frontmatter.length + (2 * delimiter.length));
if (frontmatter.length > 0) {
var jstruct = yaml.safeLoad (frontmatter);
jstruct.text = remainingtext;
return (utils.jsonStringify (jstruct));
}
return (filetext);
}
return (filetext);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment