Drawght Parser - JavaScript

Install:

npm install --save-dev @drawght/parser

In the JavaScript source code:

"use strict";

const drawght = require("@drawght/parser");

var template = `
# {title}

Drawght is a good tool for writing draft documents using datasets without
logical statements.

Written by {author.name} <{author.email}>, created in {creation-date},
published in {publishing date} and tagged by {tags#1}.

- [{author.networks:name}]({author.networks:url})

Follow the news on [{author.networks#1.name}]({author.networks#1.url}).

The syntax was inspired by: 

- [{references:name}]({references:url})

Tags:

- {tags} (tagged by {author.name}).
`;

var result = drawght.parse(template, {
  title: "Drawght is a very useful sketch",
  author: {
    name: "Hallison Batista",
    email: "email@hallison.dev.br",
    networks: [
      {
        name: "Dev.to",
        url: "//dev.to/hallison"
      }, {
        name: "Github",
        url: "//github.com/hallison"
      }, {
        name: "Twitter",
        url: "//twitter.com/hallison"
      }
    ]
  },
  "creation-date": "2021-06-28",
  "publishing date": "2021-07-01",
  references: [
    {
      name: "JSON Template",
      url: "//code.google.com/archive/p/json-template"
    }, {
      name: "Mustache",
      url: "//mustache.github.io"
    } , {
      name: "Handlebars",
      url: "//handlebarsjs.com"
    }
  ],
  tags: [
    "Template",
    "Draft"
  ]
});

console.log(result);

/** Result output:
 *
 * # Drawght is a very useful sketch
 * 
 * Drawght is a good tool for writing draft documents using datasets without
 * logical statements.
 * 
 * Written by Hallison Batista <email@hallison.dev.br>, created in 2021-06-28,
 * published in 2021-07-01 and tagged by Template.
 * 
 * - [Dev.to](//dev.to/hallison)
 * - [Github](//github.com/hallison)
 * - [Twitter](//twitter.com/hallison)
 * 
 * Follow the news on [Dev.to](//dev.to/hallison).
 * 
 * The syntax was inspired by:
 * 
 * - [JSON Template](//code.google.com/archive/p/json-template)
 * - [Mustache](//mustache.github.io)
 * - [Handlebars](//handlebarsjs.com)
 * 
 * Tags:
 * 
 * - Template (tagged by Hallison Batista).
 * - Draft (tagged by Hallison Batista).
 */

The next source code, the dataset was written in JSON file dataset.json and template was written template.md.in file.

"use strict";

const fs = require("fs");
const drawght = require("@drawght/parser");
const data = require("./dataset.json");
const inputFile = "./template.md.in";

console.log("Dataset", data);
fs.readFile(inputFile, "utf8", function(fail, template) {
  if (fail) {
    return console.error(fail);
  }
  console.log(drawght.parse(template, data));
});