GithubHelp home page GithubHelp logo

isabella232 / templation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pillarjs/templation

0.0 0.0 0.0 151 KB

[ON HOLD] an asynchronous, extensible view system

License: MIT License

JavaScript 100.00%

templation's Introduction

templation

NPM version Build status Test coverage Dependency Status License Downloads

A node.js view system similar to what you're used to with Express' res.render(). Inspired by co-views and consolidate.js.

  • First-class async support. .render() always returns a Promise.
  • Streams are supported.
  • Template adapters are integrated, but are retrieved lazily to avoid code bloat.
  • Easier plugin system for custom renderers.

Install

$ npm install templation

API

var Templation = require('templation')
var views = new Templation()

views.use('html', Templation.engines.html)

var views = new Templation(options)

Create a new view system. Options are:

  • cache - whether to cache the templates. Defaults to true in production.
  • root - the root folder to look for templates. Defaults to process.cwd(), so you should set this.

views.use(extension, engine)

Use a custom view engine. extension is a file extension to map this engine to. engine is an object with the following methods:

  • .compile(filename, options) - it should return (optionally via promise) a "compiled template". The "compiled template" must be an object or function. This gets cached when cache: true!
  • .render(compiled, options) - compiled is whatever is compiled from .compile(). It should return (optionally via promise) a String, Buffer, or Stream

views.render(name, options)

Render the template name, which resolves against root. Returns a promise, which then returns a String, Buffer, or Stream.

views.cache

Enable or disable the caching system. (true / false)

Templation.engines

A list of included engines. Generally, the API usage is:

views.use('html', Templation.engines.html)

Included adapters are:

Examples

var Templation = require('templation')
var views = new Templation()
views.use('html', Templation.engines.html)

http.createServer(function (req, res) {
  views.render('home').then(function (html) {
    // assuming html is a string
    res.setHeader('Content-Length', Buffer.byteLength(html))
    res.setHeader('Content-Type', 'text/html')
    res.end(html)
  }, function (err) {
    res.statusCode = err.status || 500
    res.end('Internal Server Error')
  })
})

License (MIT)

templation's People

Contributors

fishrock123 avatar jonathanong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.