kstpl
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

KsTpl: Template Compilation Made Easy

KsTpl is a versatile and extensible Node.js library designed for seamless template compilation in various formats, including Markdown, Twig, EJS, and more. It's a part of the robust Ksike ecosystem, ensuring reliability and compatibility with a range of applications.

Key Features:

  • Format Agnostic: KsTpl supports multiple template formats, allowing you to work with your preferred syntax effortlessly.
  • Extensibility: Easily integrate new template formats by creating custom drivers. KsTpl follows a simple and intuitive driver concept.
  • Cache Management: Benefit from an efficient caching system that you can adapt to your needs, ensuring optimal performance.

This library belong to the Ksike ecosystem:

  • KsMf - Microframework (WEB, REST API, CLI, Proxy, etc)
  • Ksdp - Design Patterns Library (GoF, GRASP, IoC, DI, etc)
  • KsCryp - Cryptographic Library (RSA, JWT, x509, HEX, Base64, Hash, etc)
  • KsHook - Event Driven Library
  • KsEval - Expression Evaluator Library
  • KsWC - Web API deployment Library
  • KsTpl - Template Engine
  • KsDoc - Document Engine

Driver

Quick overview

Installation

npm install kstpl

Load the library

const KsTpl = require("kstpl");

Compile: Template Simple Format

const html = KsTpl.compile(
    "{{name}}:{{age}}", 
    { name: "Mit", age: 15 }, 
    { driver: "str" }
);

console.log(
    html === "Mit:15"
)

Compile: Template Twig Format

const html = KsTpl.compile(
    "{{name}}:{{age}}", 
    { name: "Mit", age: 15 }, 
    { driver: "twing" }
);

console.log(
    html === "Mit:15"
)

Compile: Template Ejs Format

const html = KsTpl.compile(
    '<%= people.join(","); %>', 
    { people: ['geddy', 'neil', 'alex'] }, 
    { driver: "ejs" }
);

console.log(
    html === "geddy,neil,alex"
)

Compile: Template Markdown Format

const html = KsTpl.compile(
    '# Hello, Markdown!', 
    null, 
    { driver: "markdown" }
);

console.log(
    html === "<h1>Hello, Markdown!</h1>\n"
)

Template engine format autodetection

KsTpl.configure({ 
    map: { "md": "markdown", "html": "twing", "twig": "twing", "ejs": "ejs", "htmljs": "ejs" }, 
    path: __dirname,
    ext: ""
});

const ejs2html = await KsTpl.render("simple.ejs", { user: { name: "Mit", age: 15 } });
const md2html = await KsTpl.render("linked.md", {}, { page: {}, next: "Highlight" });
const twig2html = await KsTpl.render("simple.twig", {
    list: [
        { name: "Mat", age: 3, twig: true },
        { name: "Deg", age: 4, twig: false },
        { name: "Ste", age: 5, twig: true }
    ]
});

Package Sidebar

Install

npm i kstpl

Weekly Downloads

3

Version

1.1.0

License

ISC

Unpacked Size

86.4 kB

Total Files

21

Last publish

Collaborators

  • tonykssa