Giter VIP home page Giter VIP logo

jst-generator's Introduction

JST Generator

A gem for automatically generating a jst.js file full of compiled templates.

Currently supports Handlebars and Underscore out of the box, with more to come.

Installation

Add this line to your application's Gemfile:

gem 'jstgenerator'

And then execute:

$ bundle

Usage

Within a Ruby app (such as Sinatra)

Within a Ruby app, you can do something like this:

# or JstGenerator::Underscore.new for Underscore templates
JstGenerator::Handlebars.new({
    :dir_glob => "path/to/templates/*.hb",
    :jst_path => "output/jst.js"
}).generate

This will:

  • create output/jst.js that creates a window.JST object
  • loop through each file the dir_glob matches
  • and add that to window.JST

An example jst.js file looks like so:

window.JST = {};
window.JST["test"] = Handlebars.compile("My template {{title}}")

You can then load in jst.js and compile that template:

var html = window.JST["test"]({ title: "Hello World" });

The advantage being the compilation step (Handlebars.compile) is only run once and that you can keep your templates in their own file, rather than within some HTML.

###Without a Ruby app (command line)

  $ gem install jstgenerator
  $ jstgenerator [type] [glob] [output]

For example:

  $ jstgenerator handlebars "views/templates/**/*.hb" lib/js/jst.js

Make sure you quote the glob string, else your shell may well expand it for you, which you don't want in this case.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Changelist

0.1.0

  • added CLI tool

0.0.1

  • initial release

jst-generator's People

Contributors

jackfranklin avatar

Watchers

 avatar James Cloos avatar  avatar

jst-generator's Issues

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.