Skip to content
/ wheei Public

a javascript native code embed template for browser and express with clear powerful Compatible

Notifications You must be signed in to change notification settings

p2world/wheei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

a javascript native code embed template with

  • clear
  • powerful
  • Compatible

Website and Documentation

compare with similar libs

ejs dot wheei
javascript
shortcut ×
debug ×
{{!0}} ×
mark safe × ×

fire

<%=0%>      //0
<%=false%>  //
<%=true%>   //true
<%=null%>   //

<%-'<'%>    // &lt;


<%
var a=0;
%>


<% if(a===1){ %>

<% }else if(a===2){ %>

<% }else{ %>

<% } %>


// shortcut:

<%? a===1 %>     // if(a===1){

<%?? a===2 %>    // }else if(a===2){

<%??%>           // }else{

<%?%>            // }


<%var arr=['a','b','c'];if(arr)for(var i=0;i<arr.length){var v=arr[i];%>
    <%-i%> <%-v%>,      // 0 a,1 b,2 c,
<%}%>

// shortcut:

<%~['a','b','c'] i,v%>
    <%-i%> <%-v%>,      // 0 a,1 b,2 c,
<%~%>

<%~['a','b','c'] v%>
    <%-v%>,             // a,b,c
<%~%>

// comment

<%*
this is a comment
this is a comment
this is a comment
this is a comment
%>

// jsonify

<%${id:1,name:'wheei'}%>  // {id:1,name:'wheei'}
<%$'</script>'%>    // '<\/script>'
<%$'null'%>    // null


render html

var html=wheei('<h1><%-it.title%></h1>',{title:'wheei'}); // 'wheei'

get template function

var func=wheei('<h1><%-it.title%></h1>');         // function(it){...}
func({title:'wheei'});                            // 'wheei'

third argument is conf

var html=wheei('<%-data%>','ok',{argName:data}); // 'ok'
  • open <%
  • close %>
  • argName it
  • strip false strip white-space between line and line

the globel default is wheei.conf

  • wheei is a global variable (because template function will access it)

beyond

mark safe

    wheei('<%-it%>','<a href="xxx">xxx</a>'); // you will get a `<a href="xxx">xxx</a>` text
    wheei('<%-it%>',wheei.markSafe('<a href="xxx">xxx</a>')); // you will get a link element
    wheei('<%=it%>',wheei.markSafe('<a href="xxx">xxx</a>')); // you will get a link element too

inner template

<%#list data , a%>
    <%~data item%>
        <li><%-item%></li>
    <%~%>
    <%=a%>
<%#%>
<%=list(['first','second'],'aaa')%>

same to

<%function list(data , a){var __out='';%>
    <%~data item%>
        <li><%-item%></li>
    <%~%>
    <%=a%>
<%return __out;} %>
<%=list(['first','second'],'aaa')%>

include template

<script type="text/plain" id="list">
    <%~data item%>
        <li><%-item%></li>
    <%~%>
</script>
wheei.tpls.list = wheei(document.getElementById('list').innerHTML);
<script type="text/plain" id="page">
    <h1>in page</h1>
    <%=wheei.tpls.list(['first','second'])%>
</script>

nodejs with express

npm install wheei --save

var wheei=require('wheei');
var path=require('path');

app.engine('whe',wheei.__express);
app.set('view engine', 'whe');
app.set('views', path.join(__dirname,'views'));
// if `view cache` is `true`,you have to restart server after `.whe` file change
app.set('view cache', true||false);

include

index.whe:

index.whe
<%@ 'whe/a.whe','hello'%>
index.whe

whe/a.whe:

a.whe:<%=it%>

result is:

index.whe
a.whe:hello
index.whe

about the path

just like linux cd

  • the root is app.set('views', path.join(__dirname,'views'))
  • absolute start with /,like /index.whe
  • relative like whe/a.whe ./whe/a.whe ../index.whe

About

a javascript native code embed template for browser and express with clear powerful Compatible

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published