Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

content-generator

0.0.6 • Public • Published

Content-Generator

Content-Generator is a module to handle different contents in a mongo-db.

Connection to MongoDB

This module use the mongodb-handler as sub-modul. To connect mongo-db please set follow ENV variables:

  • MDBHANDLER_CONSTRING: Defines the connectionstring to the database. Default is: 'mongodb://localhost:27017/mdbtest';

The module will store and handle all templates in collection CM_Templates. You can define your own Collection-Name with follow ENV Variable:

  • CTM_COLLECTION: Defines the name of the collection

Template Engine

This module use the great template engine where powered by mozilla.

You find the API Description here

PDF generator

  • HTML_PDF_OPTIONS: Defines the options for HTML-PDF

Usage Templatemanagement

Global Properties

This Template Manager is based in combination with the variables key and lang. All variables free to declare as string.

  • key: Defines the global key of a template
  • lang: Defines the language in combination to the key properties.

Create a template

To Create a new template use the function createTemplate:

const ctg = require('content-generator');

const obj = { html: '<div>Test</div>', lang: 'en_GB', subject: 'Test', key: 'TESTTEMPLATE' };

ctg.createTemplate(obj, (err) => {
  if (err) {
    throw err;
  }
});

Update a template

To update a template use the funciton updateTemplate:

const ctg = require('content-generator');

const obj = { html: '<div>Test</div>', lang: 'en_GB', subject: 'Test', key: 'TESTTEMPLATE' };

ctg.updateTemplate(obj, (err) => {
  if (err) {
    throw err;
  }
});

Delete a template

To delete a template use the function deleteTemplate:

const ctg = require('content-generator');

const obj = { lang: 'en_GB', key: 'TESTTEMPLATE' };

ctg.deleteTemplate(obj, (err) => {
  if (err) {
    throw err;
  }
});

Get a template

To get a template use the function getTemplate:

const ctg = require('content-generator');

const obj = { lang: 'en_GB', key: 'TESTTEMPLATE' };

ctg.getTemplate(obj, (err, template) => {
  if (err) {
    throw err;
  }

  console.log(template);
});

Get a Templateslist by key

To get a templatelist by key use the function getTemplatesByKey:

const ctg = require('content-generator');

ctg.getTemplate('TESTTEMPLATE', (err, templates) => {
  if (err) {
    throw err;
  }

  console.log(templates);
});

Get all templates from system

To get all templates from the system use the function getTemplatesList:

const ctg = require('content-generator');

ctg.getTemplatesList((err, templates) => {
  if (err) {
    throw err;
  }

  console.log(templates);
});

Usage Content Generator

Generate a html Content

This module will merge the variables from a JSON Object into the html-content:

JSON:

{
  name: {
    firstname: "Martin",
    lastname: "Wiesmüller"
  },
  address: {
    line1: "Werbas Innotec GmbH",
    line2: "Max-Eyth-Str. 42, 71088 Holzgerlingen"
  }
}

HTML:

<div>Name: {{ name.firstname }}</div>
<div>Lastname: {{ name.lastname }}</div>
<br>
<div>Adressline 1: {{ address.line1 }}</div>
<div>Adressline 2: {{ address.line2 }}</div>

TO =>

<div>Name: Martin</div>
<div>Lastname: Wiesmüller</div>
<br>
<div>Adressline 1: Werbas Innotec GmbH"</div>
<div>Adressline 2: Max-Eyth-Str. 42, 71088 Holzgerlingen</div>

Usage in Syntax:

const ctg = require('content-generator');

ctg.generateHtml(json, 'TESTTEMPLATE', 'en_GB', (err, res) => {
  if (err) {
    throw err;
  }

  // Output the html Content
  console.log(res.html);

  // Output the content as plain text
  console.log(res.plain);
});

Generate a PDF stream

To generate a PDF Stream use the function generatePdf:

const ctg = require('content-generator');

ctg.generatePdf(json, 'TESTTEMPLATE', 'en_GB', (err, res) => {
  if (err) {
    throw err;
  }

  // Output the html Content
  console.log(res.html);

  // Output the content as plain text
  console.log(res.plain);

  // Output the content as pdf stream
  res.stream.pipe(fs.createWriteStream('./foo.pdf'));
});

install

npm i content-generator

Downloadsweekly downloads

12

version

0.0.6

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar