troian

1.1.20 • Public • Published

Troian

Another awesome template engine. It's small and effective to use. It really has a big potential.


Install

for install simply type this command.

npm install troian

Abilities

• Lightweight

Troian is really small. it doesn't need any big dependency.

• Developer Friendly

Developed views has simple comments. This action gives developer hints.

• Autorestart

When any file changed in view folder, troian automaticly re-compiles file.

• Fast

It has special algorithm that makes some thing faster.


Examples

You can find my example project at here

Features

Easy to Start

First you need to require troian. Call it with directory function. This function reads directory and finds recursively troian files. directory function returns object that has all files

var troian = require('troian');
var template = troian.directory(__dirname + '/views/');
template.filename(); // renders "filename.troian" file

Recursive folders

Troian has recursive folder reader. So if you need folders you can simply use access operator.

var troian = require('troian');
var template = troian.directory(__dirname + '/views/');
template.index(); // renders /views/index.troian
template.partials.header(); // renders /views/partials/header.troian
template.a.b.c.d(); // renders /views/a/b/c/d.troian

Template files

Template files designed as down below. troian tag are not required but it's highly recommended. You can give information inside of tag.

<troian>
    Info
</troian>

Code tags

If you want to specify some code, you should put it between <% and %> tags.

<troian>
    Hello this is code tags example
</troian>
<%
    console.log("hello");
%>

if you want to print some thing on screen simply use print function

<troian>
    Hello this is code tags example
</troian>
<%
    var a = 5;
    print(a);
%>

also you can use <%( and )%> tags too.

<troian>
    Hello this is code tags example
</troian>
<%
    var a = 5;
%>
<%(a)%>

they do same job.

Parametric templates

You can give parameters for templates. With parameters you can call views with variables.

var troian = require('troian');
var template = troian.directory(__dirname + '/views/');
template.index(5);
<troian params="count">
    count will be 5 and print 5
</troian>
<%(count)%>

If you want to more params you simply do like down below

<troian params="count, a, b, c">
    count will be 5 and print 5
</troian>
<%(count)%>

Another big thing about parametric template files, you can define statics.

<troian count="5" my_variable="hello">
    count will be 5 and print 5
</troian>
<%(count)%>

Static field

Static field only runs one time. You can use this field for define unchangeable things or global things... It can be really usefull. As you can see down below, we just define count in static field and we simple do count++ every request.

<troian>
    This view just counts.
    <%static
        var count = 0;
    %>
</troian>
<%(count++)%>

Template Including

if we want to include some other template we can simply use <%+( and %)> inside we just give file name and paranthesis. this parathesis needing because all templates in troian are acting like function and has parameters.

index.troian

<troian>
    This view is parent.
</troian>
<%+(child())%>

child.troian

<troian>
    This view is chield.
</troian>
Hi master.

result

Hi master.

another example


index.troian

<troian>
    This view is parent.
</troian>
parent:<%+(child(15))%>

child.troian

<troian params="a">
    This view is chield.
</troian>
child:<%(a)%>

result

parent:child:15

Template Including with Code

you can use template object for render another template.

<troian>
    This view is template including with code
</troian>
<%
    var rendered = template.another(5);
    print(rendered);
%>

Standard HTML codes for use

we developed simply html generator.. You can use them too.

Note: HTML Codes are in beta for now. They can be unstable sometime. Please if you had any trouble, contact to us.

<troian>
    This view is Standard HTML codes for use
</troian>
<%(html.a("/link", "This is a link"))%>

or

<troian>
    This view is Standard HTML codes for use
    <%static
        var link = html.a("/link", "This is a link");
    %>
</troian>
<%
    print(link);
%>

HTML Options

HTML Options can be setted as down below.

<troian>
    This view is HTML Options
    <%static
        var link = html.a("/link", {
            class: "linkClass", 
            style: {
                background_color: "red"
            }
        },"This is a link");
    %>
</troian>
<%
    print(link);
%>
<troian>
    This view is HTML Options
    <%static
        var link = html.a("/link", {
            class: "linkClass", 
            style: {
                background_color: "red"
            }
        }, "This is a link");
        
        var div = html.tag("div", {
            class: "divClass", 
            style: {
                background_color: "black",
                border: "1px solid red"
            }
        }, link);
    %>
</troian>
<%
    print(div);
%>

Package Sidebar

Install

npm i troian

Weekly Downloads

5

Version

1.1.20

License

MIT

Last publish

Collaborators

  • co3moz