a javascript native code embed template with
- clear
- powerful
- Compatible
compare with similar libs
ejs | dot | wheei | |
---|---|---|---|
javascript | √ | √ | √ |
shortcut | × | √ | √ |
debug | √ | × | √ |
{{!0}} | √ | × | √ |
mark safe | × | × | √ |
fire
<%=0%> //0
<%=false%> //
<%=true%> //true
<%=null%> //
<%-'<'%> // <
<%
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'
get template function
var func=; // function(it){...}; // 'wheei'
third argument is conf
var html=; // '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
; // you will get a `<a href="xxx">xxx</a>` text ; // you will get a link element ; // 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
wheeitplslist = ;
nodejs with express
npm install wheei --save
var wheei=;var path=; app;app;app;// if `view cache` is `true`,you have to restart server after `.whe` file changeapp;
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
likewhe/a.whe
./whe/a.whe
../index.whe