Skip to content


Subversion checkout URL

You can clone with
Download ZIP
an easy to use,razor style javascript template tool
JavaScript CSS
Latest commit 4c2b24e @kinogam add require.js amd support
Failed to load latest commit information.
lib add require.js amd support
test add require.js amd support
.npmignore test
GNU-AGPL-3.0 add require.js amd support change READ.ME
demo.htm add require.js amd support
package.json Update package.json

kino.razor - an easy to use,razor style javascript template tool

How to use

use on a webpage

    <script type="text/javascript" src="kino.razor.js"></script>
    //or minjs
    <script type="text/javascript" src="kino.razor.min.js"></script>

install in node.js

    npm install razor

require js

var razor = require("razor");

you can pass two parameters to kino.razor then get a converted string:

    var str = kino.razor("Hey, @name!", { name: 'kino' });
    //result: "Hey, kino!"

pass one parameter to kino.razor() should return a template function

    var r = kino.razor("hello!@name");
    //type of r is function

and automatic handle missing parameters

    var templateStr = "Hey, @xxx";
    var str = kino.razor(templateStr, {});
    //result: "Hey, "

given a template function to kino.razor() then it should return a convented string(recommond,and get good performance)

    var tf = kino.razor("hello!@name");
    var str = kino.razor(tf, { name: 'kino' });
    //result: "hello!kino"

set javascript code block

    var templateStr = "@{var fname='kino';}this is @fname @lname";
    var str = kino.razor(templateStr, {lname:'jack'});
    //result: "this is kino jack"

use condition syntax

    var templateStr = "@if(1==0){<span>if you see this word,your test is failed</span>}";
    var str = kino.razor(templateStr, {});
    //result: ""

loop, like while and for

    var templateStr = "@for(var i = 0; i < 3; i++){<span>@i</span>}";
    var str = kino.razor(templateStr, {});
    //result: "<span>0</span><span>1</span><span>2</span>"

    templateStr = "@{var i = 3;}@while(i--){<span>@i</span>}";
    str = kino.razor(templateStr, {});
    //result: "<span>2</span><span>1</span><span>0</span>"

use @Html.escape for escape string to html

    var templateStr = "<input yyy='@Html.escape(test)' xxx=\"@Html.escape(otherAttr)\" />";
    var str = kino.razor(templateStr, { test: "kino's test", otherAttr: "\"one more test\"" });
    //result: "<input yyy='kino&#x27;s test' xxx=\"&quot;one more test&quot;\" />"

@@ and @} will be escaped as @ and }

    var templateStr = "{}";
    var str = kino.razor(templateStr, { name: 'kino' });
    //result: '{}'

use custom symbol instead of '@'

    var str = kino.razor("&name@&email", { name: "kinogam", email: "" });

    var str = kino.razor("$name@$email", { name: "kinogam", email: "" });

support style @(name):

    var str = kino.razor("Hey, zz@(name)zz!", { name: 'kino' });
    //result: "Hey, zzkinozz!"
Something went wrong with that request. Please try again.