A Mimosa 2.0 module for Jade to HTML client template compiling
JavaScript
Switch branches/tags
Clone or download
Pull request Compare This branch is 6 commits ahead, 7 commits behind dbashford:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
.npmignore
README.md
mimosa-config.js
package.json

README.md

mimosa-jade-static

Overview

This is a Jade to HTML compiler for the Mimosa build tool. This module is for use with Mimosa 2.0+.

For more information regarding Mimosa, see http://mimosa.io

Usage

Add 'jade-static' to your list of modules. That's all! Mimosa will install the module for you when you start mimosa watch or mimosa build.

After that, start creating your .jade files in the app/template folder. This files will be converted to HTML strings which are available on client-side through the templates object — the same as with other templating modules.

Functionality

This module will compile Jade files to HTML during mimosa watch and mimosa build.

This module utilizes all of the built-in template behavior that comes with Mimosa's basic template compiler. See the mimosa website for more information about how templates are treated or check out the various template configuration options.

Default Config

jade:
  lib: undefined
  extensions: [ "jade" ]
  context: null
  • lib: You may want to use this module but may not be ready to use the latest version of Jade. Using the lib property you can provide a specific version of Jade if the one being used by this module isn't to your liking. To provide a specific version, you must have it npm installed into your project and then provide it to lib. For instance: lib: require('jade').
  • extensions: an array of strings, the extensions of your Jade files.
  • context: an object passed to the compiled template function when generating HTML. If context is a function itself, it's being executed and the result is used as a context for the template.

How is it different from X?

There are several similar modules for Mimosa, let's see how do they differ from each other:

  • mimosa-html-templates takes the assets/javascripts/app/template/fileName.template HTML file and makes its content available as a string templates['fileName'].
  • mimosa-jade takes the assets/javascripts/app/template/fileName.jade Jade file and makes its content available as a function templates['fileName']. You can then call this function from your client-side code.
  • mimosa-client-jade-static takes the assets/javascripts/app/template/fileName.html.jade Jade file and transforms it to public/javascripts/app/template/fileName.html file.
  • mimosa-jade-static (this module) takes the assets/javascripts/app/template/fileName.jade Jade file and makes its content available as an HTML string templates['fileName'].

So, this module is basically the same as mimosa-html-templates, but allowing you to write you code in Jade.

Sample Use-Case

One particular use-case is when your framework allows programmatically passing chunks of HTML (potentially containing some client-side Mustache or EJS-like template instructions). For example, Angular allows you to pass HTML for custom components, and for "partials" — see official examples "Javascript Projects" and "Todo", correspondingly.

A full-featured sample project using Mimosa, Angular, RequireJS and this module can be found here.