National Preventative Mechanism


    1.0.1 • Public • Published


    A teeny-tiny templating engine.

    NightInk is a teeny-tiny Javascript templating engine, written as an ES6 module. While there are loads of existing templating engines out there, I couldn't find one I liked (anyone know of a comparison site? :P) - so I wrote my own (it's adding to the problem, I know!).

    Also available in PHP: NightInk.php


    Installation is done through npm:

    npm install --save nightink


    Here's a basic example:

    import { NightInk } from '../NightInk.mjs';
    // .....
    let html = NightInk(template_string, {
    	// options here

    The contents of the options object is substituted into the template string. Consider the following template:

    <p>Next launch in {{seconds}}!</p>
    <p>Rocket info: {{model}} carrying {{payload.summary}} for {{}}, totalling {{totals.weight}} tons</p>

    ...with this options object:

    	seconds: 10,
    	model: "Ariane 6",
    	payload: {
    		summary: "Sentinel-4",
    		owner: {
    			name: "Dr. Sean",
    			company: "Sean's Satellites Inc."
    	totals: {
    		weight: 450,
    		tomatoes: 56

    All the appropriate values will get extracted from the options object and substituted into the template string automagically. Under normal circumstances, values are escaped with HTML-entities before substitution (if appropriate), for security purposes (no script-injection attacks here, thank you!). If you'd like to disable this (make sure you know what you're doing!), simply use a single set of curly braces:

    <p>The rocket escaped: {{escape_me}}</p>
    <p>The launchpad did not escape {no_escaping_here}</p>

    NightInk also has support for arrays (multiple levelled nested arrays are ok too :D). This is done like so:

    <p>To go to {{place_name}}, you will need:</p> 
    	{#each list}
    	<li>{{quantity}} x {{name}}</li>
    	plane_name: "space"
    	list: [
    		{ name: "Rocket", quantity: 1 },
    		{ name: "Astronaut", quantity: 3 },
    		{ name: "Fuel Cells", quantity: 55 },
    		{ name: "Launchpad", quantity: 1 }


    NightInk is licensed under the Mozilla Public Licence 2.0. A copy of this license can be found in the LICENSE file in this repository.

    Alternatively, tldr-legal has a summarythat you may find useful.


    npm i nightink

    DownloadsWeekly Downloads






    Unpacked Size

    22.6 kB

    Total Files


    Last publish


    • sbrl