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


    A fork of doT.js with a focus on asynchronous coroutines in templates


    custom delimiters
    runtime evaluation
    runtime interpolation
    compile-time evaluation
    partials support
    conditionals support
    array iterators
    control whitespace - strip or preserve
    streaming friendly
    use it as logic-less or with logic, it is up to you

    Docs, live playground and samples (todo: update docs with new features added in version 1.0.0)

    New in version 1.0.0

    Added parameters support in partials


    Node module now supports auto-compilation of dot templates from specified path

    var dots = require("dot").process({ path: "./views"});

    This will compile .def, .dot, .jst files found under the specified path. Details

    • It ignores sub-directories.
    • Template files can have multiple extensions at the same time.
    • Files with .def extension can be included in other files via {{}}
    • Files with .dot extension are compiled into functions with the same name and can be accessed as renderer.filename
    • Files with .jst extension are compiled into .js files. Produced .js file can be loaded as a commonJS, AMD module, or just installed into a global variable (default is set to window.render)
    • All inline defines defined in the .jst file are compiled into separate functions and are available via _render.filename.definename

    Basic usage:

           var dots = require("dot").process({path: "./views"});
           dots.mytemplate({foo:"hello world"});

    The above snippet will: * Compile all templates in views folder (.dot, .def, .jst) * Place .js files compiled from .jst templates into the same folder These files can be used with require, i.e. require("./views/mytemplate") * Return an object with functions compiled from .dot templates as its properties * Render mytemplate template

    Example for express

    Many people are using doT with express. I added an example of the best way of doing it examples/express:

    doT with express


    doU.js is here only so that legacy external tests do not break. Use doT.js.
    doT.js with doT.templateSettings.append=false provides the same performance as doU.js.


    Laura Doktorova @olado


    doT is licensed under the MIT License. (See LICENSE-DOT)

    logo by Kevin Kirchner

    Thank you @KevinKirchner for the logo.


    npm i dot-co

    Downloadslast 7 days







    last publish


    • avatar