SkillAgentSearch skills...

T.js

T - a javascript template engine

Install / Use

/learn @gcao/T.js
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

T.js - a simple & powerful template engine

DESCRIPTION

T.js is a template engine that uses simple Javascript data structure to represent html/xml data.

BASIC RULES

  • A tag is represented by an array;
  • First item is the tag name, and id and css classes if present, e.g. 'div#id.class1.class2';
  • Rest of the array contains the tag's attributes, text or child tags;
  • Attributes are stored in hash, e.g. {"name": "username", "type": "text"};
  • Text values are strings, e.g. "This is sample content";
  • Child tags are in child arrays;
  • Texts and child tags are rendered sequentially.

USAGE

  • Include T.js in HTML
<script src="PATH_TO/t.js"></script>
  • Define template
var template = ["a.edit", {href: "/edit"}, "Edit"]
  • Render
var result = T(template).toString()
  • Result is like
<a class="edit" href="/edit">Edit</a>

EXAMPLES

EXAMPLE 1: A simple template that uses data

var template = function(account){
  return ['div.account',
    ['div.header', 'Account Info'],
    ['div.label', 'Name'],
    ['div', account.name],
    ['div.label', 'Age'],
    ['div', account.age]
  ];
}
var account = {
  name: 'John Doe',
  age: 25
};
var result = T(template(account)).toString();
// result is like below (after formatted)
// <div class="account">
//   <div class="header">Account Info</div>
//   <div class="label">Name</div>
//   <div>John Doe</div>
//   <div class="label">Age</div>
//   <div>25</div>
// </div>

EXAMPLE 2: A simple TODO list

DEVELOPMENT SETUP (MAC)

$ git clone git://github.com/gcao/T.js.git
$ cd T.js

$ brew install node
$ npm install coffee-script

$ gem install bundler
$ bundle
$ guard

NOTES

  • Run with LiveReload support: thin -p 8000 start

  • Run with no external dependency: cd public && python -m SimpleHTTPServer

  • Open Demo Page: open http://localhost:8000

  • Run Jasmine tests in browser: open http://localhost:8000/spec_runner

  • Convert between html and T: bin/html2t spec/fixtures/test.html bin/html2t spec/fixtures/test.html | bin/t2html

  • Convert T to CoffeeScript (js2coffee has to be installed): bin/html2t spec/fixtures/test.html | js2coffee

  • Convert haml to html to T template to html: bundle exec bin/haml2erb spec/fixtures/test.haml | HTML_FRAGMENT=true bin/html2t | bin/t2html

  • Integrate with Jasmine Headless WebKit: Config file is located at public/javascripts/spec/jasmine.yml jasmine-headless-webkit -c -j public/javascripts/spec/jasmine.yml

CREDITS

  • I got the basic idea of T.js from LM.JS but has implemented from scratch with several additional interesting features.

COPYRIGHT

Copyright (c) 2013 Guoliang Cao. See LICENSE.txt for further details.

View on GitHub
GitHub Stars16
CategoryDevelopment
Updated2y ago
Forks3

Languages

JavaScript

Security Score

75/100

Audited on Aug 17, 2023

No findings